Merge remote-tracking branch 'upstream/feature/manual-layout' into feature/manual-layout

This commit is contained in:
Ronan Le Tiec 2020-05-09 14:48:43 +02:00
commit 3fc0924887
19 changed files with 668 additions and 391 deletions

View File

@ -85,6 +85,7 @@
- Fix dialog for tool Point along perpendicular. No memory of line color settings. - Fix dialog for tool Point along perpendicular. No memory of line color settings.
- Fix crash after uniting three pieces in sequence. - Fix crash after uniting three pieces in sequence.
- Incorrect conversion to newer curve format. - Incorrect conversion to newer curve format.
- Elide a variable description in the formula wizard.
# Version 0.6.1 October 23, 2018 # Version 0.6.1 October 23, 2018
- [#885] Regression. Broken support for multi size measurements. - [#885] Regression. Broken support for multi size measurements.

View File

@ -54,7 +54,7 @@
<name>ChangeGroupOptions</name> <name>ChangeGroupOptions</name>
<message> <message>
<source>rename group</source> <source>rename group</source>
<translation type="unfinished"></translation> <translation>Přejmenovat skupinu</translation>
</message> </message>
</context> </context>
<context> <context>
@ -691,11 +691,11 @@
</message> </message>
<message> <message>
<source>Approximation scale:</source> <source>Approximation scale:</source>
<translation>Stupnice přibližnosti:</translation> <translation>Měřítko přibližnosti:</translation>
</message> </message>
<message> <message>
<source>Set approximation scale for this curve, 0 - use global value</source> <source>Set approximation scale for this curve, 0 - use global value</source>
<translation>Nastavit stupnici přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation> <translation>Nastavit měřítko přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation>
</message> </message>
</context> </context>
<context> <context>
@ -806,11 +806,11 @@
</message> </message>
<message> <message>
<source>Approximation scale:</source> <source>Approximation scale:</source>
<translation>Stupnice přibližnosti:</translation> <translation>Měřítko přibližnosti:</translation>
</message> </message>
<message> <message>
<source>Set approximation scale for this curve, 0 - use global value</source> <source>Set approximation scale for this curve, 0 - use global value</source>
<translation>Nastavit stupnici přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation> <translation>Nastavit měřítko přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation>
</message> </message>
</context> </context>
<context> <context>
@ -988,11 +988,11 @@
</message> </message>
<message> <message>
<source>Approximation Scale:</source> <source>Approximation Scale:</source>
<translation>Stupnice přibližnosti:</translation> <translation>Měřítko přibližnosti:</translation>
</message> </message>
<message> <message>
<source>Set approximation scale for this curve, 0 - use global value</source> <source>Set approximation scale for this curve, 0 - use global value</source>
<translation>Nastavit stupnici přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation> <translation>Nastavit měřítko přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1031,11 +1031,11 @@
</message> </message>
<message> <message>
<source>Approximation scale:</source> <source>Approximation scale:</source>
<translation>Stupnice přibližnosti:</translation> <translation>Měřítko přibližnosti:</translation>
</message> </message>
<message> <message>
<source>Set approximation scale for this curve, 0 - use global value</source> <source>Set approximation scale for this curve, 0 - use global value</source>
<translation>Nastavit stupnici přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation> <translation>Nastavit měřítko přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation>
</message> </message>
<message> <message>
<source>Cannot find point with id %1</source> <source>Cannot find point with id %1</source>
@ -2456,11 +2456,11 @@
</message> </message>
<message> <message>
<source>Enable to create a visibility gropup from original objects</source> <source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation> <translation>Povolit vytvoření skupiny viditelnosti z původních předmětů</translation>
</message> </message>
<message> <message>
<source>Visibility Group</source> <source>Visibility Group</source>
<translation type="unfinished"></translation> <translation>Skupina viditelnosti</translation>
</message> </message>
<message> <message>
<source>Name:</source> <source>Name:</source>
@ -2472,15 +2472,15 @@
</message> </message>
<message> <message>
<source>Tags:</source> <source>Tags:</source>
<translation type="unfinished"></translation> <translation>Značky:</translation>
</message> </message>
<message> <message>
<source>Separate each tag with comma.</source> <source>Separate each tag with comma.</source>
<translation type="unfinished"></translation> <translation>Oddělit každou značku čárkou.</translation>
</message> </message>
<message> <message>
<source>Add tags</source> <source>Add tags</source>
<translation type="unfinished"></translation> <translation>Přidat značky</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2523,11 +2523,11 @@
</message> </message>
<message> <message>
<source>Enable to create a visibility gropup from original objects</source> <source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation> <translation>Povolit vytvoření skupiny viditelnosti z původních předmětů</translation>
</message> </message>
<message> <message>
<source>Visibility Group</source> <source>Visibility Group</source>
<translation type="unfinished"></translation> <translation>Skupina viditelnosti</translation>
</message> </message>
<message> <message>
<source>Name:</source> <source>Name:</source>
@ -2539,15 +2539,15 @@
</message> </message>
<message> <message>
<source>Tags:</source> <source>Tags:</source>
<translation type="unfinished"></translation> <translation>Značky:</translation>
</message> </message>
<message> <message>
<source>Separate each tag with comma.</source> <source>Separate each tag with comma.</source>
<translation type="unfinished"></translation> <translation>Oddělit každou značku čárkou.</translation>
</message> </message>
<message> <message>
<source>Add tags</source> <source>Add tags</source>
<translation type="unfinished"></translation> <translation>Přidat značky</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2574,15 +2574,15 @@
</message> </message>
<message> <message>
<source>Tags:</source> <source>Tags:</source>
<translation type="unfinished"></translation> <translation>Značky:</translation>
</message> </message>
<message> <message>
<source>Separate each tag with comma.</source> <source>Separate each tag with comma.</source>
<translation type="unfinished"></translation> <translation>Oddělit každou značku čárkou.</translation>
</message> </message>
<message> <message>
<source>Add tags</source> <source>Add tags</source>
<translation type="unfinished"></translation> <translation>Přidat značky</translation>
</message> </message>
</context> </context>
<context> <context>
@ -3127,7 +3127,7 @@
<name>DialogLayoutScale</name> <name>DialogLayoutScale</name>
<message> <message>
<source>Layout scale</source> <source>Layout scale</source>
<translation type="unfinished"></translation> <translation>Měřítko rozvržení</translation>
</message> </message>
<message> <message>
<source>Margins</source> <source>Margins</source>
@ -3155,15 +3155,15 @@
</message> </message>
<message> <message>
<source>Scale</source> <source>Scale</source>
<translation type="unfinished"></translation> <translation>Měřítko</translation>
</message> </message>
<message> <message>
<source>Horizontal:</source> <source>Horizontal:</source>
<translation type="unfinished"></translation> <translation>Vodorovná:</translation>
</message> </message>
<message> <message>
<source>Vertical:</source> <source>Vertical:</source>
<translation type="unfinished"></translation> <translation>Svislá:</translation>
</message> </message>
</context> </context>
<context> <context>
@ -3461,7 +3461,7 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Prefer one sheet solution</source> <source>Prefer one sheet solution</source>
<translation type="unfinished"></translation> <translation>Upřednostnit jednolistové řešení</translation>
</message> </message>
<message> <message>
<source> min</source> <source> min</source>
@ -3470,7 +3470,7 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Enable this option to prefer getting one sheet solutions.</source> <source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation> <translation>Povolit tuto volbu, aby se upřednostňovalo získání jednolistového řešení.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -3886,11 +3886,11 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Enable to create a visibility gropup from original objects</source> <source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation> <translation>Povolit vytvoření skupiny viditelnosti z původních předmětů</translation>
</message> </message>
<message> <message>
<source>Visibility Group</source> <source>Visibility Group</source>
<translation type="unfinished"></translation> <translation>Skupina viditelnosti</translation>
</message> </message>
<message> <message>
<source>Name:</source> <source>Name:</source>
@ -3902,15 +3902,15 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Tags:</source> <source>Tags:</source>
<translation type="unfinished"></translation> <translation>Značky:</translation>
</message> </message>
<message> <message>
<source>Separate each tag with comma.</source> <source>Separate each tag with comma.</source>
<translation type="unfinished"></translation> <translation>Oddělit každou značku čárkou.</translation>
</message> </message>
<message> <message>
<source>Add tags</source> <source>Add tags</source>
<translation type="unfinished"></translation> <translation>Přidat značky</translation>
</message> </message>
</context> </context>
<context> <context>
@ -4843,7 +4843,7 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Select main path objects, &lt;b&gt;%1&lt;/b&gt; - reverse direction curve, &lt;b&gt;%2&lt;/b&gt; - finish creation</source> <source>Select main path objects, &lt;b&gt;%1&lt;/b&gt; - reverse direction curve, &lt;b&gt;%2&lt;/b&gt; - finish creation</source>
<translation type="unfinished"></translation> <translation>Vybrat hlavní cestu předmětů, &lt;b&gt;%1&lt;/b&gt; - obrátit směr křivky, &lt;b&gt;%2&lt;/b&gt; - dokončit vytvoření</translation>
</message> </message>
<message> <message>
<source>Manual length</source> <source>Manual length</source>
@ -5584,11 +5584,11 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Enable to create a visibility gropup from original objects</source> <source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation> <translation>Povolit vytvoření skupiny viditelnosti z původních předmětů</translation>
</message> </message>
<message> <message>
<source>Visibility Group</source> <source>Visibility Group</source>
<translation type="unfinished"></translation> <translation>Skupina viditelnosti</translation>
</message> </message>
<message> <message>
<source>Name:</source> <source>Name:</source>
@ -5596,15 +5596,15 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Tags:</source> <source>Tags:</source>
<translation type="unfinished"></translation> <translation>Značky:</translation>
</message> </message>
<message> <message>
<source>Separate each tag with comma.</source> <source>Separate each tag with comma.</source>
<translation type="unfinished"></translation> <translation>Oddělit každou značku čárkou.</translation>
</message> </message>
<message> <message>
<source>Add tags</source> <source>Add tags</source>
<translation type="unfinished"></translation> <translation>Přidat značky</translation>
</message> </message>
</context> </context>
<context> <context>
@ -5715,15 +5715,15 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Scale</source> <source>Scale</source>
<translation type="unfinished"></translation> <translation>Měřítko</translation>
</message> </message>
<message> <message>
<source>Horizontal:</source> <source>Horizontal:</source>
<translation type="unfinished"></translation> <translation>Vodorovná:</translation>
</message> </message>
<message> <message>
<source>Vertical:</source> <source>Vertical:</source>
<translation type="unfinished"></translation> <translation>Svislá:</translation>
</message> </message>
</context> </context>
<context> <context>
@ -5806,7 +5806,7 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>tiled</source> <source>tiled</source>
<translation type="unfinished"></translation> <translation>dlážděný</translation>
</message> </message>
<message> <message>
<source>Numerical control</source> <source>Numerical control</source>
@ -6029,7 +6029,7 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Select main path objects clockwise, &lt;b&gt;%1&lt;/b&gt; - reverse direction curve, &lt;b&gt;%2&lt;/b&gt; - finish creation</source> <source>Select main path objects clockwise, &lt;b&gt;%1&lt;/b&gt; - reverse direction curve, &lt;b&gt;%2&lt;/b&gt; - finish creation</source>
<translation type="unfinished"></translation> <translation>Vybrat hlavní cestu předmětů po směru hodinových ručiček (doprava), &lt;b&gt;%1&lt;/b&gt; - obrátit směr křivky, &lt;b&gt;%2&lt;/b&gt; - dokončit vytvoření</translation>
</message> </message>
<message> <message>
<source>Circle</source> <source>Circle</source>
@ -6314,11 +6314,11 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Approximation scale:</source> <source>Approximation scale:</source>
<translation>Stupnice přibližnosti:</translation> <translation>Měřítko přibližnosti:</translation>
</message> </message>
<message> <message>
<source>Set approximation scale for this curve, 0 - use global value</source> <source>Set approximation scale for this curve, 0 - use global value</source>
<translation>Nastavit stupnici přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation> <translation>Nastavit měřítko přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation>
</message> </message>
</context> </context>
<context> <context>
@ -6457,11 +6457,11 @@ Přesto použít nastavení?</translation>
</message> </message>
<message> <message>
<source>Approximation scale:</source> <source>Approximation scale:</source>
<translation>Stupnice přibližnosti:</translation> <translation>Měřítko přibližnosti:</translation>
</message> </message>
<message> <message>
<source>Set approximation scale for this curve, 0 - use global value</source> <source>Set approximation scale for this curve, 0 - use global value</source>
<translation>Nastavit stupnici přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation> <translation>Nastavit měřítko přibližnosti pro tuto křivku, 0 - použít celkovou hodnotu</translation>
</message> </message>
<message> <message>
<source>Cannot find point with id %1</source> <source>Cannot find point with id %1</source>
@ -6484,10 +6484,10 @@ Přesto použít nastavení?</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<source>Followed %n option(s) require restart to take effect: %1.</source> <source>Followed %n option(s) require restart to take effect: %1.</source>
<translation type="unfinished"> <translation>
<numerusform>Následována %n volba, vyžaduje opětovné spuštění, aby se projevilo: %1.</numerusform> <numerusform>Sledováno %n volba vyžaduje opětovné spuštění, aby se projevila %1.</numerusform>
<numerusform>Následovány %n volby, vyžaduje opětovné spuštění, aby se projevilo: %1.</numerusform> <numerusform>Sledováno %n volby vyžaduje opětovné spuštění, aby se projevily %1.</numerusform>
<numerusform>Následováno %n voleb, vyžaduje opětovné spuštění, aby se projevilo: %1.</numerusform> <numerusform>Sledováno %n voleb vyžaduje opětovné spuštění, aby se projevilo %1.</numerusform>
</translation> </translation>
</message> </message>
</context> </context>
@ -8341,15 +8341,15 @@ Chcete uložit své změny?</translation>
</message> </message>
<message> <message>
<source>Select path objects, &lt;b&gt;%1&lt;/b&gt; - reverse direction curve</source> <source>Select path objects, &lt;b&gt;%1&lt;/b&gt; - reverse direction curve</source>
<translation type="unfinished"></translation> <translation>Vyberte předměty cesty, &lt;b&gt;%1&lt;/b&gt; - obrátitkřivku směru</translation>
</message> </message>
<message> <message>
<source>Select one or more objects, hold &lt;b&gt;%1&lt;/b&gt; - for multiple selection, &lt;b&gt;%2&lt;/b&gt; - finish creation</source> <source>Select one or more objects, hold &lt;b&gt;%1&lt;/b&gt; - for multiple selection, &lt;b&gt;%2&lt;/b&gt; - finish creation</source>
<translation type="unfinished"></translation> <translation>Vyberte jeden nebo více předmětů, podržet &lt;b&gt;%1&lt;/b&gt; - pro vícenásobný výběr, &lt;b&gt;%2&lt;/b&gt; - dokončit vytvoření</translation>
</message> </message>
<message> <message>
<source>Select one or more objects, hold &lt;b&gt;%1&lt;/b&gt; - for multiple selection, &lt;b&gt;%2&lt;/b&gt; - confirm selection</source> <source>Select one or more objects, hold &lt;b&gt;%1&lt;/b&gt; - for multiple selection, &lt;b&gt;%2&lt;/b&gt; - confirm selection</source>
<translation type="unfinished"></translation> <translation>Vyberte jeden nebo více předmětů, podržet &lt;b&gt;%1&lt;/b&gt; - pro vícenásobný výběr, &lt;b&gt;%2&lt;/b&gt; - potvrdit výběr</translation>
</message> </message>
<message> <message>
<source>Point of intersection circle and segment</source> <source>Point of intersection circle and segment</source>
@ -8972,7 +8972,7 @@ Chcete uložit své změny?</translation>
</message> </message>
<message> <message>
<source>Scale scrolling sensitivity for mouse with sensor</source> <source>Scale scrolling sensitivity for mouse with sensor</source>
<translation>Citlivost rozsahu posunování pro myš s čidlem</translation> <translation>Citlivost posunování měřítka pro myš s čidlem</translation>
</message> </message>
<message> <message>
<source>Wheel:</source> <source>Wheel:</source>
@ -8981,7 +8981,7 @@ Chcete uložit své změny?</translation>
</message> </message>
<message> <message>
<source>Scale scrolling sensitivity for mouse with wheel</source> <source>Scale scrolling sensitivity for mouse with wheel</source>
<translation>Citlivost rozsahu posunování pro myš s kolečkem</translation> <translation>Citlivost posunování měřítka pro myš s kolečkem</translation>
</message> </message>
<message> <message>
<source>Acceleration:</source> <source>Acceleration:</source>
@ -9155,7 +9155,7 @@ Chcete uložit své změny?</translation>
</message> </message>
<message> <message>
<source>Set default curve approximation scale</source> <source>Set default curve approximation scale</source>
<translation>Nastavit stupnici přibližnosti výchozí křivky</translation> <translation>Nastavit výchozí měřítko přibližnosti křivky</translation>
</message> </message>
<message> <message>
<source>Bold line width</source> <source>Bold line width</source>
@ -9527,11 +9527,11 @@ Tato volba se projeví po opětovném spuštění.</translation>
</message> </message>
<message> <message>
<source>Empty list of nodes for tool with id &apos;%1&apos;.</source> <source>Empty list of nodes for tool with id &apos;%1&apos;.</source>
<translation type="unfinished"></translation> <translation>Prázdný seznam uzlů pro nástroj s ID &apos;%1&apos;.</translation>
</message> </message>
<message> <message>
<source>Invalid formula &apos;%1&apos; for tool with id &apos;%2&apos;. %3.</source> <source>Invalid formula &apos;%1&apos; for tool with id &apos;%2&apos;. %3.</source>
<translation type="unfinished"></translation> <translation>Neplatný vzorec &apos;%1&apos; pro nástroj s ID &apos;%2&apos;. %3.</translation>
</message> </message>
<message> <message>
<source>Can&apos;t convert toInt parameter</source> <source>Can&apos;t convert toInt parameter</source>
@ -9760,7 +9760,7 @@ Tato volba se projeví po opětovném spuštění.</translation>
<name>RenameGroup</name> <name>RenameGroup</name>
<message> <message>
<source>rename group</source> <source>rename group</source>
<translation type="unfinished"></translation> <translation>Přejmenovat skupinu</translation>
</message> </message>
</context> </context>
<context> <context>
@ -11541,7 +11541,7 @@ Chcete uložit změny?</translation>
</message> </message>
<message> <message>
<source>Visibility group</source> <source>Visibility group</source>
<translation type="unfinished"></translation> <translation>Skupina viditelnosti</translation>
</message> </message>
</context> </context>
<context> <context>
@ -12233,19 +12233,19 @@ Chcete uložit změny?</translation>
</message> </message>
<message> <message>
<source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source> <source>Set horizontal scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation> <translation>Nastavit vodorovné měřítko od 0.01 do 3.0 (výchozí = 1.0, režim vyvedení).</translation>
</message> </message>
<message> <message>
<source>Horizontal scale</source> <source>Horizontal scale</source>
<translation type="unfinished"></translation> <translation>Vodorovné měřítko</translation>
</message> </message>
<message> <message>
<source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source> <source>Set vertical scale factor from 0.01 to 3.0 (default = 1.0, export mode).</source>
<translation type="unfinished"></translation> <translation>Nastavit svislé měřítko od 0.01 do 3.0 (výchozí = 1.0, režim vyvedení).</translation>
</message> </message>
<message> <message>
<source>Vertical scale</source> <source>Vertical scale</source>
<translation type="unfinished"></translation> <translation>Svislé měřítko</translation>
</message> </message>
<message> <message>
<source>Prefer one sheet layout solution (export mode).</source> <source>Prefer one sheet layout solution (export mode).</source>
@ -13945,7 +13945,7 @@ Chcete uložit změny?</translation>
</message> </message>
<message> <message>
<source>Approximation scale:</source> <source>Approximation scale:</source>
<translation>Stupnice přibližnosti:</translation> <translation>Měřítko přibližnosti:</translation>
</message> </message>
<message> <message>
<source>Rotation origin point:</source> <source>Rotation origin point:</source>
@ -15810,11 +15810,11 @@ Chcete uložit změny?</translation>
</message> </message>
<message> <message>
<source>Tags:</source> <source>Tags:</source>
<translation type="unfinished"></translation> <translation>Značky:</translation>
</message> </message>
<message> <message>
<source>Separate each tag with comma.</source> <source>Separate each tag with comma.</source>
<translation type="unfinished"></translation> <translation>Oddělit každou značku čárkou.</translation>
</message> </message>
<message> <message>
<source>Filter by tags</source> <source>Filter by tags</source>

View File

@ -3165,22 +3165,6 @@
<source>Vertical:</source> <source>Vertical:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>%</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="obsolete">...</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:16pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLayoutSettings</name> <name>DialogLayoutSettings</name>
@ -3487,10 +3471,6 @@ Einstellungen trotzdem anwenden?</translation>
<source>Enable this option to prefer getting one sheet solutions.</source> <source>Enable this option to prefer getting one sheet solutions.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Enable this option to prefer getting one sheet solutions. </source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogLine</name> <name>DialogLine</name>

View File

@ -1656,7 +1656,7 @@
<name>DialogDuplicateDetail</name> <name>DialogDuplicateDetail</name>
<message> <message>
<source>Dialog duplicate detail</source> <source>Dialog duplicate detail</source>
<translation type="unfinished"></translation> <translation>Strumento duplica dettaglio</translation>
</message> </message>
<message> <message>
<source>Click to place duplicate</source> <source>Click to place duplicate</source>
@ -4715,7 +4715,7 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Select if need designate the corner point as a passmark. Show only left passmark.</source> <source>Select if need designate the corner point as a passmark. Show only left passmark.</source>
<translation type="unfinished"></translation> <translation>Seleziona se vuoi impostare un punto ad angolo come tacca. Mostra solo tacca a sinistra dell&apos;angolo.</translation>
</message> </message>
<message> <message>
<source>Intersection (only left)</source> <source>Intersection (only left)</source>
@ -4723,7 +4723,7 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Select if need designate the corner point as a passmark. Show only right passmark.</source> <source>Select if need designate the corner point as a passmark. Show only right passmark.</source>
<translation type="unfinished"></translation> <translation>Seleziona se vuoi impostare un punto ad angolo come tacca. Mostra solo tacca a destra dell&apos;angolo.</translation>
</message> </message>
<message> <message>
<source>Intersection (only right)</source> <source>Intersection (only right)</source>
@ -4739,7 +4739,7 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Create a formula that regulates visibility. Values different from &quot;0&quot; make a path visible.</source> <source>Create a formula that regulates visibility. Values different from &quot;0&quot; make a path visible.</source>
<translation type="unfinished"></translation> <translation>Crea una formula che regola la visibilità. Valori differenti da 0 rendono un tracciato visibile.</translation>
</message> </message>
<message> <message>
<source>1</source> <source>1</source>
@ -4791,7 +4791,7 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>The path is a cut contour. Use to control export to DXF-AAMA</source> <source>The path is a cut contour. Use to control export to DXF-AAMA</source>
<translation type="unfinished"></translation> <translation>Il tracciato e una linea di ritaglio. Usa per regolare l&apos;esportazione nel formato DXF-AAMA</translation>
</message> </message>
<message> <message>
<source>The list of pieces is empty. Please, first create at least one piece for current pattern piece.</source> <source>The list of pieces is empty. Please, first create at least one piece for current pattern piece.</source>
@ -4862,7 +4862,7 @@ Applicare la configurazione comunque?</translation>
<name>DialogPin</name> <name>DialogPin</name>
<message> <message>
<source>Pin tool</source> <source>Pin tool</source>
<translation type="unfinished"></translation> <translation>Strumento spillo</translation>
</message> </message>
<message> <message>
<source>Point:</source> <source>Point:</source>
@ -4874,7 +4874,7 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Pin</source> <source>Pin</source>
<translation type="unfinished"></translation> <translation>Spillo</translation>
</message> </message>
<message> <message>
<source>The list of pieces is empty. Please, first create at least one piece for current pattern piece.</source> <source>The list of pieces is empty. Please, first create at least one piece for current pattern piece.</source>
@ -4985,7 +4985,7 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Create a formula that regulates visibility. Values different from &quot;0&quot; make a path visible.</source> <source>Create a formula that regulates visibility. Values different from &quot;0&quot; make a path visible.</source>
<translation type="unfinished"></translation> <translation>Crea una formula che regola la visibilità. Valori differenti da 0 rendono un tracciato visibile.</translation>
</message> </message>
<message> <message>
<source>1</source> <source>1</source>
@ -5571,6 +5571,30 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>This point cannot be origin point. Please, select another origin point</source> <source>This point cannot be origin point. Please, select another origin point</source>
<translation>Questo non può essere il punto di origine. Selezionane un altro, grazie</translation>
</message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation>Nome:</translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -5908,11 +5932,11 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Pins</source> <source>Pins</source>
<translation type="unfinished"></translation> <translation>Spilli</translation>
</message> </message>
<message> <message>
<source>no pin</source> <source>no pin</source>
<translation type="unfinished"></translation> <translation>Nessuno spillo</translation>
</message> </message>
<message> <message>
<source>Labels</source> <source>Labels</source>
@ -5960,7 +5984,7 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>Workpiece tool</source> <source>Workpiece tool</source>
<translation type="unfinished"></translation> <translation>Strumento crea dettaglio</translation>
</message> </message>
<message> <message>
<source>Segment</source> <source>Segment</source>
@ -6541,19 +6565,19 @@ Applicare la configurazione comunque?</translation>
</message> </message>
<message> <message>
<source>by first edge symmetry</source> <source>by first edge symmetry</source>
<translation type="unfinished"></translation> <translation>Secondo simmetria del primo contorno</translation>
</message> </message>
<message> <message>
<source>by second edge symmetry</source> <source>by second edge symmetry</source>
<translation type="unfinished"></translation> <translation>Secondo la simmetria del secondo contorno</translation>
</message> </message>
<message> <message>
<source>by first edge right angle</source> <source>by first edge right angle</source>
<translation type="unfinished"></translation> <translation>Secondo l&apos;angolo destro del primo contorno</translation>
</message> </message>
<message> <message>
<source>by second edge right angle</source> <source>by second edge right angle</source>
<translation type="unfinished"></translation> <translation>Seguendo l&apos;angolo destro del secondo contorno</translation>
</message> </message>
</context> </context>
<context> <context>
@ -8139,11 +8163,11 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>Pin tool</source> <source>Pin tool</source>
<translation type="unfinished"></translation> <translation>Strumento spillo</translation>
</message> </message>
<message> <message>
<source>Select pin point</source> <source>Select pin point</source>
<translation type="unfinished"></translation> <translation>Selezionare punto per spillo</translation>
</message> </message>
<message> <message>
<source>Insert node tool</source> <source>Insert node tool</source>
@ -8183,7 +8207,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>You can&apos;t use Layout mode yet. Please, include at least one detail in layout.</source> <source>You can&apos;t use Layout mode yet. Please, include at least one detail in layout.</source>
<translation type="unfinished"></translation> <translation>Non puoi ancora usare la modalità Layout. Seleziona almeno un dettaglio per il layout, grazie.</translation>
</message> </message>
<message> <message>
<source>You can&apos;t use Layout mode yet.</source> <source>You can&apos;t use Layout mode yet.</source>
@ -8227,7 +8251,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>Workpiece tool</source> <source>Workpiece tool</source>
<translation type="unfinished"></translation> <translation>Strumento crea dettaglio</translation>
</message> </message>
<message> <message>
<source>Internal path tool</source> <source>Internal path tool</source>
@ -8884,7 +8908,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>With OS options</source> <source>With OS options</source>
<translation type="unfinished"></translation> <translation>Come da opzioni del Sistema Operativo</translation>
</message> </message>
<message> <message>
<source>Centimeters</source> <source>Centimeters</source>
@ -8916,7 +8940,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>Double click calls Zoom fit best for current pattern piece</source> <source>Double click calls Zoom fit best for current pattern piece</source>
<translation type="unfinished"></translation> <translation>Doppio clic per zoom migliore adattamento per l&apos;attuale pezzo del modello</translation>
</message> </message>
<message> <message>
<source>Scrolling</source> <source>Scrolling</source>
@ -8949,7 +8973,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>Mouse scale</source> <source>Mouse scale</source>
<translation type="unfinished"></translation> <translation>Scala mouse</translation>
</message> </message>
<message> <message>
<source>Sensor:</source> <source>Sensor:</source>
@ -8971,7 +8995,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>Acceleration:</source> <source>Acceleration:</source>
<translation type="unfinished"></translation> <translation>Accelerazione:</translation>
</message> </message>
<message> <message>
<source>User Interface</source> <source>User Interface</source>
@ -9030,7 +9054,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>My Templates</source> <source>My Templates</source>
<translation type="unfinished"></translation> <translation>I miei Modelli</translation>
</message> </message>
<message> <message>
<source>My label templates</source> <source>My label templates</source>
@ -9077,7 +9101,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>By default hide the main path if the seam allowance was enabled</source> <source>By default hide the main path if the seam allowance was enabled</source>
<translation type="unfinished"></translation> <translation>Nasconde automaticamente il tracciato principale se il margine di cucitura è abilitato</translation>
</message> </message>
<message> <message>
<source>Hide main path</source> <source>Hide main path</source>
@ -9149,7 +9173,7 @@ Vuoi salvare i cambiamenti?</translation>
</message> </message>
<message> <message>
<source>Line width:</source> <source>Line width:</source>
<translation type="unfinished"></translation> <translation>Spessore linea:</translation>
</message> </message>
<message> <message>
<source>Millimiters</source> <source>Millimiters</source>
@ -9417,15 +9441,15 @@ Questa opzione sarà effettiva dopo il riavvio del programma.</translation>
</message> </message>
<message> <message>
<source>Error in internal path &apos;%1&apos;. There is no intersection of first point with cutting countour</source> <source>Error in internal path &apos;%1&apos;. There is no intersection of first point with cutting countour</source>
<translation type="unfinished"></translation> <translation>Errore nel tracciato interno &apos;%1&apos;. Non c&apos;è intersezione tra il primo punto e il contorno di ritaglio</translation>
</message> </message>
<message> <message>
<source>Error in internal path &apos;%1&apos;. There is no intersection of last point with cutting countour</source> <source>Error in internal path &apos;%1&apos;. There is no intersection of last point with cutting countour</source>
<translation type="unfinished"></translation> <translation>Errore nel tracciato interno &apos;%1&apos;. Non c&apos;è intersezione tra l&apos;ultimo punto e il contorno di ritaglio</translation>
</message> </message>
<message> <message>
<source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Seam allowance is empty.</source> <source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Seam allowance is empty.</source>
<translation type="unfinished"></translation> <translation>Impossibile calcolare una tacca per il punto &apos;%1&apos; nel pezzo &apos;%2&apos;. Il margine di cucitura non è ancora stato stabilito.</translation>
</message> </message>
<message> <message>
<source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Cannot find position for a notch.</source> <source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Cannot find position for a notch.</source>
@ -9433,15 +9457,15 @@ Questa opzione sarà effettiva dopo il riavvio del programma.</translation>
</message> </message>
<message> <message>
<source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Unable to fix a notch position.</source> <source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Unable to fix a notch position.</source>
<translation type="unfinished"></translation> <translation>Impossibile calcolare una tacca per il punto &apos;%1&apos; nel pezzo &apos;%2&apos;. Impossibile trovare una posizione per la tacca.</translation>
</message> </message>
<message> <message>
<source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Notch collapse.</source> <source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Notch collapse.</source>
<translation type="unfinished"></translation> <translation>Impossibile calcolare una tacca per il punto &apos;%1&apos; nel pezzo &apos;%2&apos;. La tacca collassa.</translation>
</message> </message>
<message> <message>
<source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Cannot find intersection.</source> <source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;. Cannot find intersection.</source>
<translation type="unfinished"></translation> <translation>Impossibile calcolare una tacca per il punto &apos;%1&apos; nel pezzo &apos;%2&apos;. Impossibile trovare un&apos;intersezione.</translation>
</message> </message>
<message> <message>
<source>Cannot get tokens from formula &apos;%1&apos;. Parser error: %2.</source> <source>Cannot get tokens from formula &apos;%1&apos;. Parser error: %2.</source>
@ -10453,7 +10477,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Export from multisize measurements is not supported.</source> <source>Export from multisize measurements is not supported.</source>
<translation type="unfinished"></translation> <translation>Esportazione da misure multitaglia non supportata.</translation>
</message> </message>
<message> <message>
<source>Customer name:</source> <source>Customer name:</source>
@ -10477,7 +10501,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Measurement name in is empty.</source> <source>Measurement name in is empty.</source>
<translation type="unfinished"></translation> <translation>Nome della misura mancante.</translation>
</message> </message>
<message> <message>
<source>Merasurement &apos;%1&apos; doesn&apos;t match regex pattern.</source> <source>Merasurement &apos;%1&apos; doesn&apos;t match regex pattern.</source>
@ -10497,7 +10521,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Error in row %1.</source> <source>Error in row %1.</source>
<translation type="unfinished"></translation> <translation>Errore nella riga %1.</translation>
</message> </message>
<message> <message>
<source>Multisize measurements require at least 4 columns.</source> <source>Multisize measurements require at least 4 columns.</source>
@ -10521,7 +10545,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Error in row %1. Measurement name is empty.</source> <source>Error in row %1. Measurement name is empty.</source>
<translation type="unfinished"></translation> <translation>Errore nella riga %1. Nome misura mancante.</translation>
</message> </message>
<message> <message>
<source>Cannot save settings. Access denied.</source> <source>Cannot save settings. Access denied.</source>
@ -10659,7 +10683,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Detail label visible</source> <source>Detail label visible</source>
<translation type="unfinished">Dettaglio etichetta visibile</translation> <translation>Attiva/Disattiva Etichetta del Dettaglio</translation>
</message> </message>
<message> <message>
<source>Width:</source> <source>Width:</source>
@ -10703,7 +10727,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Pattern label visible</source> <source>Pattern label visible</source>
<translation type="unfinished">Modello etichetta visibile</translation> <translation>Attiva/Disattiva Etichetta del Modello</translation>
</message> </message>
<message> <message>
<source>Label template:</source> <source>Label template:</source>
@ -10731,7 +10755,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>A text field to add comments in</source> <source>A text field to add comments in</source>
<translation type="unfinished"></translation> <translation>Uno spazio di testo per aggiungere commenti</translation>
</message> </message>
<message> <message>
<source>Orientation:</source> <source>Orientation:</source>
@ -10751,11 +10775,11 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Edit piece label template</source> <source>Edit piece label template</source>
<translation type="unfinished"></translation> <translation>Modifica modello di etichetta</translation>
</message> </message>
<message> <message>
<source>Options to control position a detail label. &lt;b&gt;Not available if a detail label template is empty&lt;/b&gt;.</source> <source>Options to control position a detail label. &lt;b&gt;Not available if a detail label template is empty&lt;/b&gt;.</source>
<translation type="unfinished"></translation> <translation>Opzione per regolare la visibilità e posizione dell&apos;etichetta. &lt;b&gt;Non disponibile se il modello etichetta non è stato caricato&lt;/b&gt;.</translation>
</message> </message>
<message> <message>
<source>Options to control position a pattern label. &lt;b&gt;Not available if a pattern label template is empty&lt;/b&gt;.</source> <source>Options to control position a pattern label. &lt;b&gt;Not available if a pattern label template is empty&lt;/b&gt;.</source>
@ -10822,7 +10846,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Select if need designate the corner point as a passmark. Show only left passmark.</source> <source>Select if need designate the corner point as a passmark. Show only left passmark.</source>
<translation type="unfinished"></translation> <translation>Seleziona se vuoi impostare un punto ad angolo come tacca. Mostra solo tacca a sinistra dell&apos;angolo.</translation>
</message> </message>
<message> <message>
<source>Intersection (only left)</source> <source>Intersection (only left)</source>
@ -10830,7 +10854,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Select if need designate the corner point as a passmark. Show only right passmark.</source> <source>Select if need designate the corner point as a passmark. Show only right passmark.</source>
<translation type="unfinished"></translation> <translation>Seleziona se vuoi impostare un punto ad angolo come tacca. Mostra solo tacca a destra dell&apos;angolo.</translation>
</message> </message>
<message> <message>
<source>Intersection (only right)</source> <source>Intersection (only right)</source>
@ -11253,7 +11277,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>With OS options</source> <source>With OS options</source>
<translation type="unfinished"></translation> <translation>Come da opzioni del Sistema Operativo</translation>
</message> </message>
<message> <message>
<source>User Interface</source> <source>User Interface</source>
@ -11304,7 +11328,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>My Templates</source> <source>My Templates</source>
<translation type="unfinished"></translation> <translation>I miei Modelli</translation>
</message> </message>
<message> <message>
<source>My Patterns</source> <source>My Patterns</source>
@ -11399,10 +11423,29 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Invalid version. Minimum supported format version is %1</source> <source>Invalid version. Minimum supported format version is %1</source>
<translation type="unfinished"></translation> <translation>Versione non valida. La versione minima supportata è %1</translation>
</message> </message>
<message> <message>
<source>Invalid version. Maximum supported format version is %1</source> <source>Invalid version. Maximum supported format version is %1</source>
<translation>Versione non valida. La versione massima supportata è %1</translation>
</message>
<message>
<source>Can&apos;t open file %1:
%2.</source>
<translation>Impossibile aprire file %1:
%2.</translation>
</message>
<message>
<source>Can&apos;t open schema file %1:
%2.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Could not load schema file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Validation error file %3 in line %1 column %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -11692,6 +11735,21 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Invalid notch.</source> <source>Invalid notch.</source>
<translation>Tacca non valida.</translation>
</message>
</context>
<context>
<name>VBank</name>
<message>
<source>Preparing data for layout error: Detail &apos;%1&apos; square &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: Layout paper sheet &lt;= 0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Preparing data for layout error: List of details is empty</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -11990,7 +12048,7 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>Export text as paths.</source> <source>Export text as paths.</source>
<translation type="unfinished"></translation> <translation>Esporta testo come tracciato.</translation>
</message> </message>
<message> <message>
<source>Export only details. Export details as they positioned in the details mode. Any layout related options will be ignored.</source> <source>Export only details. Export details as they positioned in the details mode. Any layout related options will be ignored.</source>
@ -12488,19 +12546,19 @@ Vuoi salvare le tue modifiche?</translation>
</message> </message>
<message> <message>
<source>by first edge symmetry</source> <source>by first edge symmetry</source>
<translation type="unfinished"></translation> <translation>Secondo simmetria del primo contorno</translation>
</message> </message>
<message> <message>
<source>by second edge symmetry</source> <source>by second edge symmetry</source>
<translation type="unfinished"></translation> <translation>Secondo la simmetria del secondo contorno</translation>
</message> </message>
<message> <message>
<source>by first edge right angle</source> <source>by first edge right angle</source>
<translation type="unfinished"></translation> <translation>Secondo l&apos;angolo destro del primo contorno</translation>
</message> </message>
<message> <message>
<source>by second edge right angle</source> <source>by second edge right angle</source>
<translation type="unfinished"></translation> <translation>Seguendo l&apos;angolo destro del secondo contorno</translation>
</message> </message>
<message> <message>
<source>Passmark</source> <source>Passmark</source>
@ -12898,7 +12956,7 @@ Vuoi salvare le tue modifiche?</translation>
<name>VPiece</name> <name>VPiece</name>
<message> <message>
<source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;.</source> <source>Cannot calculate a notch for point &apos;%1&apos; in piece &apos;%2&apos;.</source>
<translation type="unfinished"></translation> <translation>Impossibile calcolare una tacca per il punto &apos;%1&apos; nel pezzo &apos;%2&apos;.</translation>
</message> </message>
<message> <message>
<source>Notch for point &apos;%1&apos; in piece &apos;%2&apos; will be disabled. Manual length is less than allowed value.</source> <source>Notch for point &apos;%1&apos; in piece &apos;%2&apos; will be disabled. Manual length is less than allowed value.</source>

View File

@ -5606,30 +5606,6 @@ Apply settings anyway?</source>
<source>Add tags</source> <source>Add tags</source>
<translation>Добавить категории</translation> <translation>Добавить категории</translation>
</message> </message>
<message>
<source>Enable to create a visibility gropup from original objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Visibility Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tags:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Separate each tag with comma.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add tags</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>DialogSaveLAyout</name> <name>DialogSaveLAyout</name>
@ -13005,14 +12981,6 @@ Do you want to save your changes?</source>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source> <source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reading final measurements error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value for final measurtement &apos;%1&apos; is infinite or NaN. Please, check your calculations.</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>VPiece</name> <name>VPiece</name>
@ -14049,7 +14017,7 @@ Do you want to save your changes?</source>
</message> </message>
<message> <message>
<source>rotate</source> <source>rotate</source>
<translation type="unfinished"></translation> <translation>поворот</translation>
</message> </message>
</context> </context>
<context> <context>

View File

@ -28,7 +28,7 @@
#include "vpiececarrousellayer.h" #include "vpiececarrousellayer.h"
#include "vpiececarrousel.h" #include "vpiececarrousel.h"
#include "../vmisc/backport/qoverload.h"
#include <QVBoxLayout> #include <QVBoxLayout>

View File

@ -100,7 +100,7 @@ void VPuzzlePiece::SetSeamLine(const QVector<QPointF> &seamLine)
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool VPuzzlePiece::GetShowSeamLine() bool VPuzzlePiece::GetShowSeamLine() const
{ {
return m_showSeamline; return m_showSeamline;
} }
@ -114,7 +114,7 @@ void VPuzzlePiece::SetShowSeamLine(bool value)
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool VPuzzlePiece::GetPieceMirrored() bool VPuzzlePiece::GetPieceMirrored() const
{ {
return m_mirrorPiece; return m_mirrorPiece;
} }

View File

@ -93,7 +93,7 @@ public:
* @brief GetShowSeamLine returns wether the seam line of the piece has to be shown or not * @brief GetShowSeamLine returns wether the seam line of the piece has to be shown or not
* @return true if the seamline has to be shown * @return true if the seamline has to be shown
*/ */
bool GetShowSeamLine(); bool GetShowSeamLine() const;
/** /**
* @brief SetShowSeamLine sets wether the seam line of the piece has to be shown or not * @brief SetShowSeamLine sets wether the seam line of the piece has to be shown or not
@ -105,7 +105,7 @@ public:
* @brief GetMirrorPiece returns wether the piece is mirrored or not * @brief GetMirrorPiece returns wether the piece is mirrored or not
* @return true if the piece is mirrored * @return true if the piece is mirrored
*/ */
bool GetPieceMirrored(); bool GetPieceMirrored() const;
/** /**
* @brief SetMirrorPiece sets wether the piece is mirrored or not * @brief SetMirrorPiece sets wether the piece is mirrored or not

View File

@ -343,7 +343,10 @@ void VWidgetGroups::FillTable(QMap<quint32, VGroupData> groups)
item = new QTableWidgetItem(data.name); item = new QTableWidgetItem(data.name);
item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter); item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
item->setToolTip(tr("Categories: %1.").arg(data.tags.join(", "))); if (not data.tags.isEmpty())
{
item->setToolTip(tr("Categories: %1.").arg(data.tags.join(", ")));
}
if(doc->GroupIsEmpty(i.key())) if(doc->GroupIsEmpty(i.key()))
{ {

View File

@ -34,26 +34,22 @@
// (de)serialize enums into QDataStream // (de)serialize enums into QDataStream
// It is very important to use exactly the same way across all Qt versions we need to support. Otherwise, it will break
// interchange between Valentina versions built on different Qt versions.
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) #if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
//a function that can serialize any enum into QDataStream template <typename T>
//it stores the enum in a qint64 typename std::enable_if<std::is_enum<T>::value, QDataStream &>::type&
template<typename Enum, operator<<(QDataStream &s, const T &t)
typename = typename std::enable_if<std::is_enum<Enum>::value>::type>
inline QDataStream& operator<<(QDataStream& stream, const Enum& e)
{ {
return stream << static_cast<qint64>(e); return s << static_cast<typename std::underlying_type<T>::type>(t);
} }
//a function that can deserialize any enum from QDataStream template <typename T>
//it reads the enum as if it was stored in qint64 typename std::enable_if<std::is_enum<T>::value, QDataStream &>::type&
template<typename Enum, operator>>(QDataStream &s, T &t)
typename = typename std::enable_if<std::is_enum<Enum>::value>::type>
inline QDataStream& operator>>(QDataStream& stream, Enum& e)
{ {
qint64 v; return s >> reinterpret_cast<typename std::underlying_type<T>::type &>(t);
stream >> v;
e = static_cast<Enum>(v);
return stream;
} }
#endif #endif

View File

@ -9,8 +9,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>448</width> <width>542</width>
<height>478</height> <height>481</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -23,7 +23,7 @@
<property name="modal"> <property name="modal">
<bool>true</bool> <bool>true</bool>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_5">
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<item alignment="Qt::AlignLeft"> <item alignment="Qt::AlignLeft">
@ -172,34 +172,173 @@
</property> </property>
</widget> </widget>
<widget class="QWidget" name=""> <widget class="QWidget" name="">
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_4" stretch="3,1">
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_2">
<item> <item>
<widget class="QLabel" name="label_8"> <layout class="QVBoxLayout" name="verticalLayout_3">
<property name="sizePolicy"> <item>
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <widget class="QLabel" name="label_8">
<horstretch>0</horstretch> <property name="sizePolicy">
<verstretch>0</verstretch> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
</sizepolicy> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
<property name="text"> </sizepolicy>
<string>Input data</string> </property>
<property name="text">
<string>Input data</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonStandardTable">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Measurements</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonIncrements">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Increments</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonPC">
<property name="text">
<string>Preview calculations</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonLengthLine">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Length of lines</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonLengthSpline">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Length of curves</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonAngleLine">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Angle of lines</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonRadiusesArcs">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Radius of arcs</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonAnglesCurves">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Angles of curves</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonCLength">
<property name="text">
<string>Lengths to control points</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonFunctions">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Functions</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLineEdit" name="filterFormulaInputs">
<property name="placeholderText">
<string>Filter list by keyword</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QRadioButton" name="radioButtonStandardTable"> <widget class="QCheckBox" name="checkBoxHideEmpty">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text"> <property name="text">
<string>Measurements</string> <string>Hide empty measurements</string>
</property> </property>
<property name="checked"> <property name="checked">
<bool>true</bool> <bool>true</bool>
@ -207,117 +346,26 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QRadioButton" name="radioButtonIncrements"> <widget class="QTableWidget" name="tableWidget">
<property name="sizePolicy"> <property name="minimumSize">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <size>
<horstretch>0</horstretch> <width>0</width>
<verstretch>0</verstretch> <height>0</height>
</sizepolicy> </size>
</property> </property>
<property name="text"> <property name="cursor" stdset="0">
<string>Increments</string> <cursorShape>PointingHandCursor</cursorShape>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonPC">
<property name="text">
<string>Preview calculations</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonLengthLine">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Length of lines</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonLengthSpline">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Length of curves</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonAngleLine">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Angle of lines</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonRadiusesArcs">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Radius of arcs</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonAnglesCurves">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Angles of curves</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonCLength">
<property name="text">
<string>Lengths to control points</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonFunctions">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Functions</string>
</property> </property>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<column>
<property name="text">
<string>Full name</string>
</property>
</column>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -325,63 +373,25 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout"> <widget class="VElidedLabel" name="labelDescription">
<item> <property name="sizePolicy">
<widget class="QLineEdit" name="filterFormulaInputs"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<property name="placeholderText"> <horstretch>0</horstretch>
<string>Filter list by keyword</string> <verstretch>0</verstretch>
</property> </sizepolicy>
</widget> </property>
</item> <property name="frameShape">
<item> <enum>QFrame::NoFrame</enum>
<widget class="QCheckBox" name="checkBoxHideEmpty"> </property>
<property name="text"> <property name="frameShadow">
<string>Hide empty measurements</string> <enum>QFrame::Raised</enum>
</property> </property>
<property name="checked"> </widget>
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="cursor" stdset="0">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<column>
<property name="text">
<string>Full name</string>
</property>
</column>
</widget>
</item>
</layout>
</item> </item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
</item> </item>
<item>
<widget class="QLabel" name="labelDescription">
<property name="text">
<string/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation"> <property name="orientation">
@ -400,6 +410,12 @@
<extends>QPlainTextEdit</extends> <extends>QPlainTextEdit</extends>
<header location="global">vplaintextedit.h</header> <header location="global">vplaintextedit.h</header>
</customwidget> </customwidget>
<customwidget>
<class>VElidedLabel</class>
<extends>QFrame</extends>
<header location="global">velidedlabel.h</header>
<container>1</container>
</customwidget>
</customwidgets> </customwidgets>
<tabstops> <tabstops>
<tabstop>toolButtonPutHere</tabstop> <tabstop>toolButtonPutHere</tabstop>

View File

@ -226,9 +226,8 @@ void VToolFlippingByAxis::SaveDialog(QDomElement &domElement, QList<quint32> &ol
doc->SetAttribute(domElement, AttrAxisType, QString().setNum(static_cast<int>(dialogTool->GetAxisType()))); doc->SetAttribute(domElement, AttrAxisType, QString().setNum(static_cast<int>(dialogTool->GetAxisType())));
doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix()); doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix());
// Save for later use. // Save visibility data for later use
hasLinkedGroup = dialogTool->HasLinkedVisibilityGroup(); SaveVisibilityGroupData(dialogTool);
groupName = dialogTool->GetVisibilityGroupName();
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -213,9 +213,8 @@ void VToolFlippingByLine::SaveDialog(QDomElement &domElement, QList<quint32> &ol
doc->SetAttribute(domElement, AttrP2Line, QString().setNum(dialogTool->GetSecondLinePointId())); doc->SetAttribute(domElement, AttrP2Line, QString().setNum(dialogTool->GetSecondLinePointId()));
doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix()); doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix());
// Save for later use. // Save visibility data for later use
hasLinkedGroup = dialogTool->HasLinkedVisibilityGroup(); SaveVisibilityGroupData(dialogTool);
groupName = dialogTool->GetVisibilityGroupName();
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -156,6 +156,9 @@ protected:
template <typename T> template <typename T>
void SetDialogVisibilityGroupData(QPointer<T> dialogTool); void SetDialogVisibilityGroupData(QPointer<T> dialogTool);
template <typename T>
void SaveVisibilityGroupData(QPointer<T> dialogTool);
void InitCurve(quint32 id, VContainer *data, GOType curveType, SceneObject sceneType); void InitCurve(quint32 id, VContainer *data, GOType curveType, SceneObject sceneType);
template <typename T> template <typename T>
@ -197,6 +200,18 @@ void VAbstractOperation::SetDialogVisibilityGroupData(QPointer<T> dialogTool)
} }
} }
//---------------------------------------------------------------------------------------------------------------------
template<typename T>
void VAbstractOperation::SaveVisibilityGroupData(QPointer<T> dialogTool)
{
SCASSERT(not dialogTool.isNull())
// Save for later use.
hasLinkedGroup = dialogTool->HasLinkedVisibilityGroup();
groupName = dialogTool->GetVisibilityGroupName();
groupTags = dialogTool->GetVisibilityGroupTags();
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
template <typename T> template <typename T>
void VAbstractOperation::ShowToolVisualization(bool show) void VAbstractOperation::ShowToolVisualization(bool show)

View File

@ -482,9 +482,8 @@ void VToolMove::SaveDialog(QDomElement &domElement, QList<quint32> &oldDependenc
doc->SetAttribute(domElement, AttrCenter, QString().setNum(dialogTool->GetRotationOrigPointId())); doc->SetAttribute(domElement, AttrCenter, QString().setNum(dialogTool->GetRotationOrigPointId()));
doc->SetAttribute(domElement, AttrRotationAngle, dialogTool->GetRotationAngle()); doc->SetAttribute(domElement, AttrRotationAngle, dialogTool->GetRotationAngle());
// Save for later use. // Save visibility data for later use
hasLinkedGroup = dialogTool->HasLinkedVisibilityGroup(); SaveVisibilityGroupData(dialogTool);
groupName = dialogTool->GetVisibilityGroupName();
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -362,9 +362,8 @@ void VToolRotation::SaveDialog(QDomElement &domElement, QList<quint32> &oldDepen
doc->SetAttribute(domElement, AttrAngle, dialogTool->GetAngle()); doc->SetAttribute(domElement, AttrAngle, dialogTool->GetAngle());
doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix()); doc->SetAttribute(domElement, AttrSuffix, dialogTool->GetSuffix());
// Save for later use. // Save visibility data for later use
hasLinkedGroup = dialogTool->HasLinkedVisibilityGroup(); SaveVisibilityGroupData(dialogTool);
groupName = dialogTool->GetVisibilityGroupName();
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -0,0 +1,152 @@
/************************************************************************
**
** @file velidedlabel.cpp
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 8 5, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#include "velidedlabel.h"
#include <QPainter>
#include <QTextLayout>
#include <ciso646>
//---------------------------------------------------------------------------------------------------------------------
VElidedLabel::VElidedLabel(QWidget *parent)
: QFrame(parent)
{
// reserve size for one line of text
setMinimumHeight(fontMetrics().lineSpacing());
}
//---------------------------------------------------------------------------------------------------------------------
VElidedLabel::VElidedLabel(const QString &text, QWidget *parent)
: QFrame(parent),
m_content(text)
{
// reserve size for one line of text
setMinimumHeight(fontMetrics().lineSpacing());
}
//---------------------------------------------------------------------------------------------------------------------
void VElidedLabel::setText(const QString &text)
{
m_content = text;
update();
}
//---------------------------------------------------------------------------------------------------------------------
void VElidedLabel::paintEvent(QPaintEvent *event)
{
QFrame::paintEvent(event);
QPainter painter(this);
bool didElide = false;
int y = 0;
// QTextLayout works with paragraphs
QStringList paragraphs = m_content.split('\n');
for (int i = 0; i < paragraphs.size(); ++i)
{
if (not DrawParagraph(painter, paragraphs.at(i), y, didElide))
{
// It text has empty strings a user will not see elided string, but we still want to show a tooltip.
if (i != paragraphs.size()-1 && !didElide)
{
didElide = true;
}
break;
}
}
if (didElide != m_elided)
{
m_elided = didElide;
if (m_showElided)
{
if (m_elided)
{
// Show a tooltip in case we cannot show a whole text in the widget
// Use dumb html tag to separate paragraphs.
QString toolTip;
for(int i = 0; i < paragraphs.size(); ++i)
{
if (i != 0)
{
toolTip.append(QString("<br>"));
}
toolTip.append(QString("<font>%1</font>").arg(paragraphs.at(i)));
}
setToolTip(toolTip);
}
else
{
setToolTip(QString());
}
}
emit ElisionChanged(didElide);
}
}
//---------------------------------------------------------------------------------------------------------------------
bool VElidedLabel::DrawParagraph(QPainter &painter, const QString& paragraph, int &y, bool &didElide)
{
QFontMetrics fontMetrics = painter.fontMetrics();
int lineSpacing = fontMetrics.lineSpacing();
bool ok = true;
QTextLayout textLayout(paragraph, painter.font());
textLayout.beginLayout();
forever
{
QTextLine line = textLayout.createLine();
if (!line.isValid())
{
break;
}
line.setLineWidth(width());
int nextLineY = y + lineSpacing;
if (height() >= nextLineY + lineSpacing)
{
line.draw(&painter, QPoint(0, y));
y = nextLineY;
}
else
{
QString lastLine = paragraph.mid(line.textStart());
QString elidedLastLine = fontMetrics.elidedText(lastLine, Qt::ElideRight, width());
painter.drawText(QPoint(0, y + fontMetrics.ascent()), elidedLastLine);
y = nextLineY;
ok = false;
didElide = lastLine != elidedLastLine;
break;
}
}
textLayout.endLayout();
return ok;
}

View File

@ -0,0 +1,90 @@
/************************************************************************
**
** @file velidedlabel.h
** @author Roman Telezhynskyi <dismine(at)gmail.com>
** @date 8 5, 2020
**
** @brief
** @copyright
** This source code is part of the Valentina project, a pattern making
** program, whose allow create and modeling patterns of clothing.
** Copyright (C) 2020 Valentina project
** <https://gitlab.com/smart-pattern/valentina> All Rights Reserved.
**
** Valentina is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Valentina is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Valentina. If not, see <http://www.gnu.org/licenses/>.
**
*************************************************************************/
#ifndef VELIDEDLABEL_H
#define VELIDEDLABEL_H
#include <QFrame>
class VElidedLabel : public QFrame
{
Q_OBJECT
Q_PROPERTY(QString text READ text WRITE setText)
Q_PROPERTY(bool IsElided READ IsElided)
Q_PROPERTY(bool showElided READ ShowElided WRITE SetShowElided)
public:
explicit VElidedLabel(QWidget *parent = nullptr);
explicit VElidedLabel(const QString &text, QWidget *parent = nullptr);
void setText(const QString &text);
const QString& text() const;
bool IsElided() const;
bool ShowElided() const;
void SetShowElided(bool showElided);
protected:
virtual void paintEvent(QPaintEvent *event) override;
signals:
void ElisionChanged(bool m_elided);
private:
Q_DISABLE_COPY(VElidedLabel)
bool m_elided{false};
bool m_showElided{true};
QString m_content{};
bool DrawParagraph(QPainter &painter, const QString& paragraph, int &y, bool &didElide);
};
//---------------------------------------------------------------------------------------------------------------------
inline const QString &VElidedLabel::text() const
{
return m_content;
}
//---------------------------------------------------------------------------------------------------------------------
inline bool VElidedLabel::IsElided() const
{
return m_elided;
}
//---------------------------------------------------------------------------------------------------------------------
inline bool VElidedLabel::ShowElided() const
{
return m_showElided;
}
//---------------------------------------------------------------------------------------------------------------------
inline void VElidedLabel::SetShowElided(bool showElided)
{
m_showElided = showElided;
}
#endif // VELIDEDLABEL_H

View File

@ -3,6 +3,7 @@
SOURCES += \ SOURCES += \
$$PWD/vcomboboxdelegate.cpp \ $$PWD/vcomboboxdelegate.cpp \
$$PWD/velidedlabel.cpp \
$$PWD/vmaingraphicsscene.cpp \ $$PWD/vmaingraphicsscene.cpp \
$$PWD/vmaingraphicsview.cpp \ $$PWD/vmaingraphicsview.cpp \
$$PWD/vwidgetpopup.cpp \ $$PWD/vwidgetpopup.cpp \
@ -32,6 +33,7 @@ SOURCES += \
HEADERS += \ HEADERS += \
$$PWD/stable.h \ $$PWD/stable.h \
$$PWD/vcomboboxdelegate.h \ $$PWD/vcomboboxdelegate.h \
$$PWD/velidedlabel.h \
$$PWD/vmaingraphicsscene.h \ $$PWD/vmaingraphicsscene.h \
$$PWD/vmaingraphicsview.h \ $$PWD/vmaingraphicsview.h \
$$PWD/vwidgetpopup.h \ $$PWD/vwidgetpopup.h \