diff --git a/TODO b/TODO deleted file mode 100644 index 47c86be2e..000000000 --- a/TODO +++ /dev/null @@ -1,27 +0,0 @@ -Valentina TODO file. -For more information see https://bitbucket.org/dismine/valentina/issues - -(c) Valentina Team 2013 - - * Rotate details. - * Reflection details. - * Label on detail. - * Checking integrity of file. - * Description of pattern. - * Type of lines. - * Tuck transfer. - * Сonditions. - * Standard table of measurements. - * Window "Option". - * Undo/redo functionality in applications. - * Checking file integrity. - * Sketch drawing. - * Graduation card. - * Individual mode of construction pattern. - * Description about pattern in SVG file. - * Visualization. - - - - - diff --git a/Valentina.pri b/Valentina.pri index d2b58ce0a..5dc56db0c 100644 --- a/Valentina.pri +++ b/Valentina.pri @@ -20,3 +20,22 @@ defineTest(minQtVersion) { } return(false) } + +# Copies the given files to the destination directory +defineTest(copyToDestdir) { + files = $$1 + DDIR = $$2 + mkpath($$DDIR) + + for(FILE, files) { + + # Replace slashes in paths with backslashes for Windows + win32{ + FILE ~= s,/,\\,g + DDIR ~= s,/,\\,g + } + QMAKE_POST_LINK += $$QMAKE_COPY $$quote($$FILE) $$quote($$DDIR) $$escape_expand(\\n\\t) + } + + export(QMAKE_POST_LINK) +} diff --git a/scripts/alphabets.py b/scripts/alphabets.py new file mode 100755 index 000000000..460029cf9 --- /dev/null +++ b/scripts/alphabets.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import codecs +import sys +#Alphabets was taken from website http://www.alphabet-letters.com/ + +#Use this script if you want get all unique symbols from all alphabets. +#This unique symbols need for math parser. +#Example: +# ցЀĆЈVӧĎАғΕĖӅИқΝĞơРңњΥĦШҫ̆جگĮаҳѕεشԶиһνԾрυلՆӝшËՎҔPÓՖXӛӟŞӣզhëծpóӞնxßվāŁЃֆĉЋCŬđҐГΒęҘЛΚŘġҠУGاհЫدԱҰгβطԹõлκKՁÀуςهՉÈыvیՑÐSOřӘћաőcӐթèkàѓżűðsķչøӥӔĀփїІĈЎґĐΗЖҙĘȚ +# ΟОҡĠآΧЦتЮұİزηжԸغοоÁՀقχцÉՈيюÑՐђӋіәťӆўáŠĺѐfөըnñŰӤӨӹոľЁրăЉŭċБӸēłΔҖЙŤěΜӜDСձģΤӰЩīņحҮбưԳصδHйԻŇμӲӴсՃمτƠщՋєLQŹՓŕÖYśÞaգĽæiŽիӓîqճöyջþĂօЄӦĊЌΑĒДҗјΙȘĚМΡéĵĢФūӚΩبĪЬүќ +# αذԲдҷιظԺмρՂфÇωوՊьÏՒTŚĻJբdçժlïӪղtպӫAւąЇčŃЏĕӯЗΖEțŮĝПΞأĥĹЧΦثÆӳЯIسŲԵзζԽпξكՅÄчφNMՍӌяӢՕÔWÎŝÜџёźեägխoӒյôwĶBžսüЂĄև̈ЊČƏљΓВҕĔӮΛКĜΣТҥĤکЪƯخγвŅԴŪضλкԼĴσтÅՄنъÍՌRӕ +# ՔZÝŜbåդﻩjíլļrӵմzýռپêЅքćچЍďӱҒЕůėژșΘØҚНğńءΠFҢХħΨҪЭųįҶرҲеԷňعθҺнԿفπÂхՇψÊэšՏÒUəÚѝŻşҤӑâeէŐımկòuշÕúտŔ + +RUSSIAN_ALPHABET = set(u'абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ') #RUSSIAN ALPHABET +ENGLISH_ALPHABET = set(u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') #ENGLISH ALPHABET +AZERBAIJANI_ALPHABET = set(u'abcçdeəfgğhxıijkqlmnoöprsştuüvyzABCÇDEƏFGĞHXIİJKQLMNOÖPRSŞTUÜVYZ') #AZERBAIJANI ALPHABET +ALBANIAN_ALPHABET = set(u'abcçddheëfggjhijklllmnnjopqrrrsshtthuvxxhyzzhABCÇDDhEËFGGjHIJKLLlMNNjOPQRRrSShTThUVXXhYZZh') #ALBANIAN ALPHABET +ARABIC_ALPHABET = set(u'أبجدوﻩزحطيكلمنسعفصقرشتثخذضظغ') #ARABIC ALPHABET +ARMENIAN_ALPHABET = set(u'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքեւօֆԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔԵվևՕՖ') #ARMENIAN ALPHABET +AFRIKAANS_ALPHABET = set(u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') #AFRIKAANS ALPHABET +BASQUE_ALPHABET = set(u'аbdefghijklmnñoprstuxzАBDEFGHIJKLMNÑOPRSTUXZ') #BASQUE ALPHABET +BASHKIR_ALPHABET = set(u'абвгғдҙеёжзийкҡлмнңоөпрсҫтуүфхһцчшщъыьэәюяАБВГҒДҘЕЁЖЗИЙКҠЛМНҢОӨПРСҪТУҮФХҺЦЧШЩЪЫЬЭӘЮЯ') #BASHKIR ALPHABET +BELORUSSIAN_ALPHABET = set(u'абвгддждзеёжзійклмнопрстуўфхцчшыьэюяАБВГДДжДзЕЁЖЗІЙКЛМНОПРСТУЎФХЦЧШЫЬЭЮЯ') #BELORUSSIAN ALPHABET +BULGARIAN_ALPHABET = set(u'абвгдежзийклмнопрстуфхцчшщъьюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ') #BULGARIAN ALPHABET +BURYATIAN_ALPHABET = set(u'абвгдеёжзийклмноөпрстуүфхһцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОӨПРСТУҮФХҺЦЧШЩЪЫЬЭЮЯ') #BURYATIAN ALPHABET +WELSH_ALPHABET = set(u'abcchdddefffgnghilllmnopphrrhstthuwyABCCHDDDEFFFGNGHILLLMNOPPHRRHSTTHUWY') #WELSH ALPHABET +HUNGARIAN_ALPHABET = set(u'aábccsddzdzseéfggyhiíjkllymnnyoóöőprsszttyuúüűvzzsqwxyAÁBCCsDDzDzsEÉFGGyHIÍJKLLyMNNyOÓÖŐPRSSzTTyUÚÜŰVZZsQWXY') #HUNGARIAN ALPHABET +VIETNAMESE_ALPHABET = set(u'aăâbcdđeêghiklmnoôơpqrstuưvxyAĂÂBCDĐEÊGHIKLMNOÔƠPQRSTUƯVXY') #VIETNAMESE ALPHABET +HAITIAN_ALPHABET = set(u'aanbchdeèenfghijklmnngoòonouounprstuivwyzAAnBChDEèEnFGHIJKLMNNgOòOnOuOunPRSTUiVWYZ') #HAITIAN ALPHABET +GALICIAN_ALPHABET = set(u'abcdefghilmnñopqrstuvxzABCDEFGHILMNÑOPQRSTUVXZ') #GALICIAN ALPHABET +DUTCH_ALPHABET = set(u'abcdefghijklmnopqrstuvwxijyzABCDEFGHIJKLMNOPQRSTUVWXIJYZ') #DUTCH ALPHABET +GREEK_ALPHABET = set(u'αβγδεζηθικλμνξοπρσςτυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ') #GREEK ALPHABET +DANISH_ALPHABET = set(u'аbcdefghijklmnopqrstuvwxyzæøåАBCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ') #DANISH ALPHABET +INDONESIAN_ALPHABET = set(u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') #INDONESIAN ALPHABET +IRISH_ALPHABET = set(u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') #IRISH ALPHABET +ICELANDIC_ALPHABET = set(u'aábdðeéfghiíjklmnoóprstuúvxyýþæöAÁBDÐEÉFGHIÍJKLMNOÓPRSTUÚVXYÝÞÆÖ') #ICELANDIC ALPHABET +SPANISH_ALPHABET = set(u'abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ') #SPANISH ALPHABET +ITALIAN_ALPHABET = set(u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') #ITALIAN ALPHABET +KAZAKH_ALPHABET = set(u'аәбвгғдеёжзийкқлмнңоөпрстуұүфхһцчшщъыіьэюяАӘБВГҒДЕЁЖЗИЙКҚЛМНҢОӨПРСТУҰҮФХҺЦЧШЩЪЫІЬЭЮЯ') #KAZAKH ALPHABET +KALMYK_ALPHABET = set(u'аəбвгһдеёжҗзийклмнңоөпрстуүфхцчшщыьэюяАƏБВГҺДЕЁЖҖЗИЙКЛМНҢОӨПРСТУҮФХЦЧШЩЫЬЭЮЯ') #KALMYK ALPHABET +KARAKALPAK_ALPHABET = set(u'аәбвгғдеёжзийкқлмнңоөпрстуүўфхҳцчшщъыьэюяАӘБВГҒДЕЁЖЗИЙКҚЛМНҢОӨПРСТУҮЎФХҲЦЧШЩЪЫЬЭЮЯ') #KARAKALPAK ALPHABET +KARELIAN_ALPHABET = set(u'abčdefghijklmnoprsšzžtuvyäöABČDEFGHIJKLMNOPRSŠZŽTUVYÄÖ') #KARELIAN ALPHABET +CATALAN_ALPHABET = set(u'aàbcçdeéèfghiíïjklmnoóòpqrstuúüvwxyzAÀBCÇDEÉÈFGHIÍÏJKLMNOÓÒPQRSTUÚÜVWXYZ') #CATALAN ALPHABET +KYRGYZ_ALPHABET = set(u'абвгдеёжзийклмнңоөпрстуүфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНҢОӨПРСТУҮФХЦЧШЩЪЫЬЭЮЯ') #KYRGYZ ALPHABET +LATIN_ALPHABET = set(u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') #LATIN ALPHABET +LATVIAN_ALPHABET = set(u'aābcčdeēfgģhiījkķlļmnņoprsštuūvzžAĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽ') #LATVIAN ALPHABET +LITHUANIAN_ALPHABET = set(u'aąbcčdeęėfghiįyjklmnoprsštuųūvzžAĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽ') #LITHUANIAN ALPHABET +MACEDONIAN_ALPHABET = set(u'абвгдѓеѐжзѕиѝјклљмнњопрстќуфхцчџшАБВГДЃЕЀЖЗЅИЍЈКЛЉМНЊОПРСТЌУФХЦЧЏШ') #MACEDONIAN ALPHABET +MALTESE_ALPHABET = set(u'abċdefġggħhħiiejklmnopqrstuvwxzżABĊDEFĠGGĦHĦIIEJKLMNOPQRSTUVWXZŻ') #MALTESE ALPHABET +MARI_ALPHABET = set(u'аӓбвгдеёжзийклмноӧпрстуӱфхцчшщъыӹьэюяАӒБВГДЕЁЖЗИЙКЛМНОӦПРСТУӰФХЦЧШЩЪЫӸЬЭЮЯ') #MARI ALPHABET +MOLDAVIAN_ALPHABET = set(u'aăâbcdefghiîjklmnopqrsștțuvwxyzAĂÂBCDEFGHIÎJKLMNOPQRSȘTȚUVWXYZ') #MOLDAVIAN ALPHABET +MONGOLIAN_ALPHABET = set(u'абвгдеёжзийклмноөпрстуүфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОӨПРСТУҮФХЦЧШЩЪЫЬЭЮЯ') #MONGOLIAN ALPHABET +GERMAN_ALPHABET = set(u'aäbcdefghijklmnoöpqrstuüvwxyzAÄBCDEFGHIJKLMNOÖPQRSßTUÜVWXYZ') #GERMAN ALPHABET +NORWEGIAN_ALPHABET = set(u'abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ') #NORWEGIAN ALPHABET +OSETIAN_ALPHABET = set(u'аӕбвггъддзджеёжзийккълмноппърсттъуфххъццъччъшщъыьэюяАӔБВГГъДДзДжЕЁЖЗИЙККъЛМНОППъРСТТъУФХХъЦЦъЧЧъШЩъЫьЭЮЯ') #OSETIAN ALPHABET +POLISH_ALPHABET = set(u'aąbcćdeęfghijklłmnńoóprsśtuwyzźżAĄBCĆDEĘFGHIJKLŁMNŃOÓPRSŚTUWYZŹŻ') #POLISH ALPHABET +PORTUGUESE_ALPHABET = set(u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') #PORTUGUESE ALPHABET +ROMANIAN_ALPHABET = set(u'aăâbcdefghiîjklmnopqrsștțuvwxyzAĂÂBCDEFGHIÎJKLMNOPQRSȘTȚUVWXYZ') #ROMANIAN ALPHABET +SERBIAN_ALPHABET = set(u'абвгдђежзијклљмнњопрстћуфхцчџшАБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ') #SERBIAN ALPHABET +SLOVAK_ALPHABET = set(u'aáäbcčdďdzdžeéfghchiíjklĺľmnňoóôpqrŕsštťuúvwxyýzžAÁÄBCČDĎDzDžEÉFGHChIÍJKLĹĽMNŇOÓÔPQRŔSŠTŤUÚVWXYÝZŽ') #SLOVAK ALPHABET +SLOVENIAN_ALPHABET = set(u'abcčddžefghijklljmnnjoprsštuvzžABCČDDžEFGHIJKLLjMNNjOPRSŠTUVZŽ') #SLOVENIAN ALPHABET +TAJIK_ALPHABET = set(u'абвгғдеёжзийӣкқлмнопрстуӯфхҳчҷшъэюяАБВГҒДЕЁЖЗИЙӢКҚЛМНОПРСТУӮФХҲЧҶШЪЭЮЯ') #TAJIK ALPHABET +TATAR_ALPHABET = set(u'аәбвгдеёжҗзийклмнңоөпрстуүфхһцчшщъыьэюяАӘБВГДЕЁЖҖЗИЙКЛМНҢОӨПРСТУҮФХҺЦЧШЩЪЫЬЭЮ') #TATAR ALPHABET +TUVIN_ALPHABET = set(u'абвгдёжӝзийклмнңоӧпрстуӱхчшыАБВГДЁЖӜЗИЙКЛМНҢОӦПРСТУӰХЧШЫ') #TUVIN ALPHABET +TURKISH_ALPHABET = set(u'abcçdefgğhiıjklmnoöpqrsştuüvwxyzABCÇDEFGĞHIIJKLMNOÖPQRSŞTUÜVWXYZ') #TURKISH ALPHABET +UDMURT_ALPHABET = set(u'абвгдеёжӝзӟиӥйклмноӧпрстуфхцчӵшщъыьэюяАБВГДЕЁЖӜЗӞИӤЙКЛМНОӦПРСТУФХЦЧӴШЩЪЫЬЭЮЯ') #UDMURT ALPHABET +UZBEK_ALPHABET = set(u'абвгғдеёжзийкқлмнопрстуўфхҳцчшъьэюяАБВГҒДЕЁЖЗИЙКҚЛМНОПРСТУЎФХҲЦЧШЪЬЭЮЯ') #UZBEK ALPHABET +UKRAINIAN_ALPHABET = set(u'абвгґдежзіїийклмнопрстуфхцчшщьєюяАБВГҐДЕЖЗІЇИЙКЛМНОПРСТУФХЦЧШЩЬЄЮЯ') #UKRAINIAN ALPHABET +FARSI_ALPHABET = set(u'ءاآبپتثجچحخدذرزژسشصضطظعغفقكکگلمنوهيی') #FARSI ALPHABET +PHILIPPINES_ALPHABET = set(u'abcdefghijklmnñngoprstuvwxyzABCDEFGHIJKLMNÑNgOPRSTUVWXYZ') #PHILIPPINES ALPHABET +FINNISH_ALPHABET = set(u'abcdefghijklmnopqrsštuvwxyzžåäöABCDEFGHIJKLMNOPQRSŠTUVWXYZŽÅÄÖ') #FINNISH ALPHABET +FRENCH_ALPHABET = set(u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') #FRENCH ALPHABET +HAKASS_ALPHABET = set(u'абвгғдеёжзиiйклмнңoӧпрстуӱфхцчӌшщъыьэюяАБВГҒДЕЁЖЗИIЙКЛМНҢOӦПРСТУӰФХЦЧӋШЩЪЫЬЭЮЯ') #HAKASS ALPHABET +HANTY_ALPHABET = set(u'аӓӑбвгдеёәӛжзийкқлӆмнңн̆оӧөӫпрстуӱўфхҳцчҷшщъыьэєє̈юю̆яя̆АӒӐБВГДЕЁӘӚЖЗИЙКҚЛӅМНҢН̆ОӦӨӪПРСТУӰЎФХҲЦЧҶШЩЪЫЬЭЄЄ̈ЮЮ̆ЯЯ̆') #HANTY ALPHABET +CROATIAN_ALPHABET = set(u'abcčćddžðefghijklljmnnjoprsštuvzžABCČĆDDžÐEFGHIJKLLjMNNjOPRSŠTUVZŽ') #CROATIAN ALPHABET +CZECH_ALPHABET = set(u'aábcčdďeéěfghchiíjklmnňoópqrřsštťuúůvwxyýzžAÁBCČDĎEÉĚFGHChIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ') #CZECH ALPHABET +CHUVASH_ALPHABET = set(u'аăбвгдеёĕжзийклмнопрсçтуӳфхцчшщьыъэюяАĂБВГДЕЁĔЖЗИЙКЛМНОПРСÇТУӲФХЦЧШЩЬЫЪЭЮЯ') #CHUVASH ALPHABET +SWEDISH_ALPHABET = set(u'aåäbcdefghijklmnoöpqrstuvwxyzAÅÄBCDEFGHIJKLMNOÖPQRSTUVWXYZ') #SWEDISH ALPHABET +ESPERANTO_ALPHABET = set(u'abcĉdefgĝhĥijĵklmnoprsŝtuŭvzABCĈDEFGĜHĤIJĴKLMNOPRSŜTUŬVZ') #ESPERANTO ALPHABET +ESTONIAN_ALPHABET = set(u'abcdefghijklmnopqrsšzžtuvwõäöüxyABCDEFGHIJKLMNOPQRSŠZŽTUVWÕÄÖÜXY') #ESTONIAN ALPHABET +YAKUTIAN_ALPHABET = set(u'абвгҕддьеёжзийклмнҥньоөпрсһтуүфхцчшщъыьэАБВГҔДДьЕЁЖЗИЙКЛМНҤНьОӨПРСҺТУҮФХЦЧШЩЪЫЬЭ') #YAKUTIAN ALPHABET + +UTF8Writer = codecs.getwriter('utf8') +sys.stdout = UTF8Writer(sys.stdout) + +SYMBOLS = set(RUSSIAN_ALPHABET) +SYMBOLS.update(RUSSIAN_ALPHABET, ENGLISH_ALPHABET, AZERBAIJANI_ALPHABET, ALBANIAN_ALPHABET, ARABIC_ALPHABET, ARMENIAN_ALPHABET, AFRIKAANS_ALPHABET, BASQUE_ALPHABET, BASHKIR_ALPHABET, +BELORUSSIAN_ALPHABET, BULGARIAN_ALPHABET, BURYATIAN_ALPHABET, WELSH_ALPHABET, HUNGARIAN_ALPHABET, VIETNAMESE_ALPHABET, HAITIAN_ALPHABET, GALICIAN_ALPHABET, DUTCH_ALPHABET, GREEK_ALPHABET, +DANISH_ALPHABET, INDONESIAN_ALPHABET, IRISH_ALPHABET, ICELANDIC_ALPHABET, SPANISH_ALPHABET, ITALIAN_ALPHABET, KAZAKH_ALPHABET, KALMYK_ALPHABET, KARAKALPAK_ALPHABET, KARELIAN_ALPHABET, +CATALAN_ALPHABET, KYRGYZ_ALPHABET, LATIN_ALPHABET, LATVIAN_ALPHABET, LITHUANIAN_ALPHABET, MACEDONIAN_ALPHABET, MALTESE_ALPHABET, MARI_ALPHABET, MOLDAVIAN_ALPHABET, MONGOLIAN_ALPHABET, +GERMAN_ALPHABET, NORWEGIAN_ALPHABET, OSETIAN_ALPHABET, POLISH_ALPHABET, PORTUGUESE_ALPHABET, ROMANIAN_ALPHABET, SERBIAN_ALPHABET, SLOVAK_ALPHABET, SLOVENIAN_ALPHABET, TAJIK_ALPHABET, TATAR_ALPHABET, +TUVIN_ALPHABET, TURKISH_ALPHABET, UDMURT_ALPHABET, UZBEK_ALPHABET, UKRAINIAN_ALPHABET, FARSI_ALPHABET, PHILIPPINES_ALPHABET, FINNISH_ALPHABET, FRENCH_ALPHABET, HAKASS_ALPHABET,HANTY_ALPHABET, +CROATIAN_ALPHABET, CZECH_ALPHABET, CHUVASH_ALPHABET, SWEDISH_ALPHABET, ESPERANTO_ALPHABET, ESTONIAN_ALPHABET, YAKUTIAN_ALPHABET) + +L = list(SYMBOLS) +print ''.join(L) + diff --git a/src/app/app.pro b/src/app/app.pro index f302a0b2b..909719a1e 100644 --- a/src/app/app.pro +++ b/src/app/app.pro @@ -6,6 +6,8 @@ # Use out-of-source builds (shadow builds) +include(../../Valentina.pri) + QT += core gui widgets xml svg printsupport xmlpatterns TEMPLATE = app @@ -45,7 +47,8 @@ SOURCES += \ mainwindow.cpp \ tablewindow.cpp \ stable.cpp \ - version.cpp + version.cpp \ + options.cpp HEADERS += \ mainwindow.h \ @@ -62,7 +65,8 @@ RESOURCES += \ share/resources/icon.qrc \ share/resources/cursor.qrc \ share/resources/theme.qrc \ - share/resources/schema.qrc + share/resources/schema.qrc \ + share/resources/measurements.qrc OTHER_FILES += \ share/resources/valentina.rc \ @@ -75,7 +79,9 @@ TRANSLATIONS += share/translations/valentina.ts \ share/translations/valentina_de.ts \ share/translations/valentina_cs.ts \ share/translations/valentina_he_IL.ts \ - share/translations/valentina_fr.ts + share/translations/valentina_fr.ts \ + share/translations/valentina_it.ts \ + share/translations/valentina_nl.ts unix { QMAKE_CXX = ccache g++ @@ -94,8 +100,8 @@ CONFIG(debug, debug|release){ *-g++{ QMAKE_CXXFLAGS += -isystem "/usr/include/qt5" -isystem "/usr/include/qt5/QtWidgets" \ -isystem "/usr/include/qt5/QtXml" -isystem "/usr/include/qt5/QtGui" \ - -isystem "/usr/include/qt5/QtCore" -isystem "$${UI_DIR}" -isystem "$${MOC_DIR}" \ - -isystem "$${RCC_DIR}" \ + -isystem "/usr/include/qt5/QtCore" -isystem "/usr/include/qt5/QtXmlPatterns" \ + -isystem "$${UI_DIR}" -isystem "$${MOC_DIR}" -isystem "$${RCC_DIR}" \ -O0 -Wall -Wextra -pedantic -Weffc++ -Woverloaded-virtual -Wctor-dtor-privacy \ -Wnon-virtual-dtor -Wold-style-cast -Wconversion -Winit-self -Wstack-protector \ -Wunreachable-code -Wcast-align -Wcast-qual -Wdisabled-optimization -Wfloat-equal \ @@ -153,16 +159,15 @@ QMAKE_DISTCLEAN += $${DESTDIR}/* \ $${RCC_DIR}/* \ $$PWD/share/translations/valentina_*.qm -INSTALL_TRANSLATIONS += share/translations/valentina_ru.qm \ - share/translations/valentina_uk.qm \ - share/translations/valentina_de.qm \ - share/translations/valentina_cs.qm \ - share/translations/valentina_he_IL.qm \ - share/translations/valentina_fr.qm +INSTALL_TRANSLATIONS += \ + share/translations/valentina_ru.qm \ + share/translations/valentina_uk.qm \ + share/translations/valentina_de.qm \ + share/translations/valentina_cs.qm \ + share/translations/valentina_he_IL.qm \ + share/translations/valentina_fr.qm -INSTALL_STANDARD_MEASHUREMENTS += share/tables/standard/GOST_man_ru.vst - -INSTALL_INDIVIDUAL_MEASHUREMENTS += share/tables/individual/indivindual_ru.vit +INSTALL_STANDARD_MEASHUREMENTS += share/resources/tables/standard/GOST_man_ru.vst unix { #VARIABLES @@ -182,14 +187,12 @@ translations.path = $$DATADIR/$${TARGET}/translations/ translations.files = $$INSTALL_TRANSLATIONS standard.path = $$DATADIR/$${TARGET}/tables/standard/ standard.files = $$INSTALL_STANDARD_MEASHUREMENTS -individual.path = $$DATADIR/$${TARGET}/tables/individual/ -individual.files = $$INSTALL_INDIVIDUAL_MEASHUREMENTS -INSTALLS += target \ +INSTALLS += \ + target \ desktop \ pixmaps \ translations \ - standard \ - individual + standard } !isEmpty(TRANSLATIONS): { @@ -200,25 +203,6 @@ INSTALLS += target \ } } -# Copies the given files to the destination directory -defineTest(copyToDestdir) { - files = $$1 - DDIR = $$2 - mkpath($$DDIR) - - for(FILE, files) { - - # Replace slashes in paths with backslashes for Windows - win32{ - FILE ~= s,/,\\,g - DDIR ~= s,/,\\,g - } - QMAKE_POST_LINK += $$QMAKE_COPY $$quote($$FILE) $$quote($$DDIR) $$escape_expand(\\n\\t) - } - - export(QMAKE_POST_LINK) -} - for(DIR, INSTALL_TRANSLATIONS) { #add these absolute paths to a variable which #ends up as 'mkcommands = path1 path2 path3 ...' @@ -235,14 +219,6 @@ for(DIR, INSTALL_STANDARD_MEASHUREMENTS) { copyToDestdir($$st_path, $$shell_path($$OUT_PWD/$$DESTDIR/tables/standard)) -for(DIR, INSTALL_INDIVIDUAL_MEASHUREMENTS) { - #add these absolute paths to a variable which - #ends up as 'mkcommands = path1 path2 path3 ...' - ind_path += $$PWD/$$DIR -} - -copyToDestdir($$ind_path, $$shell_path($$OUT_PWD/$$DESTDIR/tables/individual)) - win32:CONFIG(release, debug|release): LIBS += -L../libs/qmuparser/bin -lqmuparser2 else:win32:CONFIG(debug, debug|release): LIBS += -L../libs/qmuparser/bin -lqmuparser2 else:unix: LIBS += -L../libs/qmuparser/bin -lqmuparser diff --git a/src/app/container/calculator.cpp b/src/app/container/calculator.cpp index 39d1700dd..5dd5666b3 100644 --- a/src/app/container/calculator.cpp +++ b/src/app/container/calculator.cpp @@ -28,15 +28,9 @@ #include "calculator.h" #include +#include "../widgets/vapplication.h" -#define DELIMITER 1 -#define VARIABLE 2 -#define NUMBER 3 -#define COMMAND 4 -#define STRING 5 -#define QUOTE 6 -#define FINISHED 10 -#define EOL 9 +int Calculator::iVal = -1; //--------------------------------------------------------------------------------------------------------------------- /** @@ -44,433 +38,309 @@ * @param data pointer to a variable container. */ Calculator::Calculator(const VContainer *data) - :errorMsg(nullptr), token(QString()), tok(0), token_type(0), prog(QString()), index(0), data(data), - debugFormula(QString()) -{} + :QmuParser(), vVarVal(nullptr) +{ + InitCharacterSets(); + + // Add variables + InitVariables(data); + + // Add unary operators + DefinePostfixOprt(cm_Oprt, CmUnit); + DefinePostfixOprt(mm_Oprt, MmUnit); + DefinePostfixOprt(in_Oprt, InchUnit); +} + +//--------------------------------------------------------------------------------------------------------------------- +Calculator::Calculator(const QString &formula, bool fromUser) + :QmuParser(), vVarVal(nullptr) +{ + InitCharacterSets(); + SetVarFactory(AddVariable, this); + + // Add unary operators + if(fromUser) + { + DefinePostfixOprt(qApp->PostfixOperator(cm_Oprt), CmUnit); + DefinePostfixOprt(qApp->PostfixOperator(mm_Oprt), MmUnit); + DefinePostfixOprt(qApp->PostfixOperator(in_Oprt), InchUnit); + + QLocale loc = QLocale(); + SetDecSep(loc.decimalPoint().toLatin1()); + SetThousandsSep(loc.groupSeparator().toLatin1()); + SetArgSep(';'); + } + else + { + DefinePostfixOprt(cm_Oprt, CmUnit); + DefinePostfixOprt(mm_Oprt, MmUnit); + DefinePostfixOprt(in_Oprt, InchUnit); + } + + SetExpr(formula); + try + { + Eval();//Need run for making tokens + } + catch(qmu::QmuParserError &e) + { + return;//Ignore all warnings + } +} + +Calculator::~Calculator() +{ + delete [] vVarVal; + Calculator::iVal = -1; +} //--------------------------------------------------------------------------------------------------------------------- /** * @brief eval calculate formula. - * @param prog string of formula. - * @param errorMsg keep error message. + * @param formula string of formula. * @return value of formula. */ -qreal Calculator::eval(QString prog, QString *errorMsg) +qreal Calculator::EvalFormula(const QString &formula) { - this->errorMsg = errorMsg; - this->errorMsg->clear(); - debugFormula.clear(); - this->prog = prog; - //qDebug()<<"Formula: "<patternType() == Pattern::Standard) { - serror(2); - return 0; + num +=2; } - level2(&result); - putback(); - return result; -} -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief level2 method of addition and subtraction of two terms. - * @param result result of operation. - */ -void Calculator::level2(qreal *result) -{ - QChar op; - qreal hold; + const QHash *lengthLines = data->DataLengthLines(); + num += lengthLines->size(); - level3(result); - while ((op=token[0]) == '+' || op == '-') + const QHash *lengthSplines = data->DataLengthSplines(); + num += lengthSplines->size(); + + const QHash *lengthArcs = data->DataLengthArcs(); + num += lengthArcs->size(); + + const QHash *lineAngles = data->DataLineAngles(); + num += lineAngles->size(); + + const QHash *measurements = data->DataMeasurements(); + num += measurements->size(); + + const QHash *increments = data->DataIncrements(); + num += increments->size(); + + vVarVal = new qreal[num]; + int j = 0; + + if (qApp->patternType() == Pattern::Standard) { - get_token(); - level3(&hold); - arith(op, result, &hold); + vVarVal[j] = data->size(); + DefineVar(data->SizeName(), &vVarVal[j]); + ++j; + + vVarVal[j] = data->height(); + DefineVar(data->HeightName(), &vVarVal[j]); + ++j; } -} -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief level3 method of multiplication, division, finding percent. - * @param result result of operation. - */ -void Calculator::level3(qreal *result) -{ - QChar op; - qreal hold; - - level4(result); - - while ((op = token[0]) == '*' || op == '/' || op == '%') { - get_token(); - level4(&hold); - arith(op, result, &hold); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief level4 method of degree two numbers. - * @param result result of operation. - */ -void Calculator::level4(qreal *result) -{ - qreal hold; - - level5(result); - if (token[0] == '^') - { - get_token(); - level4(&hold); - arith('^', result, &hold); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief level5 method for finding unary plus or minus. - * @param result result of operation. - */ -void Calculator::level5(qreal *result) -{ - QChar op; - - op = '\0'; - if ((token_type==DELIMITER) && (token[0]=='+' || token[0]=='-')) - { - op = token[0]; - get_token(); - } - level6(result); - if (op != '\0') - { - unary(op, result); - } -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief level6 processing method of the expression in brackets. - * @param result result of operation. - */ -void Calculator::level6(qreal *result) -{ - if ((token[0] == '(') && (token_type == DELIMITER)) - { - get_token(); - level2(result); - if (token[0] != ')') + QHash::const_iterator i = lengthLines->constBegin(); + while (i != lengthLines->constEnd()) { - serror(1); + vVarVal[j] = i.value(); + DefineVar(i.key(), &vVarVal[j]); + ++j; + ++i; } - get_token(); - } else - primitive(result); -} + } -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief primitive method of determining the value of a variable by its name. - * @param result result of operation. - */ -void Calculator::primitive(qreal *result) -{ - QString str; - switch (token_type) { - case VARIABLE: - *result = find_var(token); - str = QString("%1").arg(*result, 0, 'f', 3); - debugFormula.append(str); - get_token(); - return; - case NUMBER: - *result = token.toDouble(); - str = QString("%1").arg(*result, 0, 'f', 3); - debugFormula.append(str); - get_token(); - return; - default: - serror(0); + QHash::const_iterator i = lengthSplines->constBegin(); + while (i != lengthSplines->constEnd()) + { + vVarVal[j] = i.value(); + DefineVar(i.key(), &vVarVal[j]); + ++j; + ++i; + } + } + + { + QHash::const_iterator i = lengthArcs->constBegin(); + while (i != lengthArcs->constEnd()) + { + vVarVal[j] = i.value(); + DefineVar(i.key(), &vVarVal[j]); + ++j; + ++i; + } + } + + { + QHash::const_iterator i = lineAngles->constBegin(); + while (i != lineAngles->constEnd()) + { + vVarVal[j] = i.value(); + DefineVar(i.key(), &vVarVal[j]); + ++j; + ++i; + } + } + + { + QHash::const_iterator i = measurements->constBegin(); + while (i != measurements->constEnd()) + { + if (qApp->patternType() == Pattern::Standard) + { + vVarVal[j] = i.value().GetValue(data->size(), data->height()); + DefineVar(i.key(), &vVarVal[j]); + ++j; + } + else + { + vVarVal[j] = i.value().GetValue(); + DefineVar(i.key(), &vVarVal[j]); + ++j; + } + ++i; + } + } + + { + QHash::const_iterator i = increments->constBegin(); + while (i != increments->constEnd()) + { + if (qApp->patternType() == Pattern::Standard) + { + vVarVal[j] = i.value().GetValue(data->size(), data->height()); + DefineVar(i.key(), &vVarVal[j]); + ++j; + } + else + { + vVarVal[j] = i.value().GetValue(); + DefineVar(i.key(), &vVarVal[j]); + ++j; + } + ++i; + } } } -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief arith perform the specified arithmetic. The result is written to the first element. - * @param o sign of operation. - * @param r first element. - * @param h second element. - */ -void Calculator::arith(QChar o, qreal *r, qreal *h) +void Calculator::InitCharacterSets() { - qreal t;//, ex; + //String with all unique symbols for supported alpabets. + // See script alphabets.py for generation and more information. + const QString symbols = QStringLiteral("ցЀĆЈVӧĎАғΕĖӅИқΝĞơРңњΥĦШҫ̆جگĮаҳѕεشԶиһνԾрυلՆӝшËՎҔPÓՖXӛӟŞӣզhëծpóӞնxßվāŁЃֆĉЋCŬđ" + "ҐГΒęҘЛΚŘġҠУGاհЫدԱҰгβطԹõлκKՁÀуςهՉÈыvیՑÐSOřӘћաőcӐթèkàѓżűðsķչøӥӔĀփїІĈЎґĐΗЖҙĘȚ" + "ΟОҡĠآΧЦتЮұİزηжԸغοоÁՀقχцÉՈيюÑՐђӋіәťӆўáŠĺѐfөըnñŰӤӨӹոľЁրăЉŭċБӸēłΔҖЙŤěΜӜDСձģΤӰ" + "ЩīņحҮбưԳصδHйԻŇμӲӴсՃمτƠщՋєLQŹՓŕÖYśÞaգĽæiŽիӓîqճöyջþĂօЄӦĊЌΑĒДҗјΙȘĚМΡéĵĢФūӚΩبĪ" + "ЬүќαذԲдҷιظԺмρՂфÇωوՊьÏՒTŚĻJբdçժlïӪղtպӫAւąЇčŃЏĕӯЗΖEțŮĝПΞأĥĹЧΦثÆӳЯIسŲԵзζԽпξكՅ" + "ÄчφNMՍӌяӢՕÔWÎŝÜџёźեägխoӒյôwĶBžսüЂĄև̈ЊČƏљΓВҕĔӮΛКĜΣТҥĤکЪƯخγвŅԴŪضλкԼĴσтÅՄنъÍՌR" + "ӕՔZÝŜbåդﻩjíլļrӵմzýռپêЅքćچЍďӱҒЕůėژșΘØҚНğńءΠFҢХħΨҪЭųįҶرҲеԷňعθҺнԿفπÂхՇψÊэšՏÒU" + "əÚѝŻşҤӑâeէŐımկòuշÕúտŔ"); - switch (o.toLatin1()) + // Defining identifier character sets + DefineNameChars(QStringLiteral("0123456789_") + symbols); + DefineOprtChars(symbols + QStringLiteral("+-*^/?<>=#!$%&|~'_")); +} + +//--------------------------------------------------------------------------------------------------------------------- +qreal Calculator::CmUnit(qreal val) +{ + qreal unit = val; + switch(qApp->patternUnit()) { - case '-': - *r = *r-*h; + case Valentina::Mm: + unit = val * 10.0; break; - case '+': - *r = *r+*h; + case Valentina::Cm: break; - case '*': - *r = *r * *h; - break; - case '/': - *r = (*r)/(*h); - break; - case '%': - t = (*r)/(*h); - *r = *r-(t*(*h)); - break; - case '^': - *r = pow(*r, *h); + case Valentina::Inch: + unit = val / 2.54; break; default: break; } + + return unit; } //--------------------------------------------------------------------------------------------------------------------- -/** - * @brief unary method changes the sign. - * @param o sign of symbol. - * @param r element. - */ -void Calculator::unary(QChar o, qreal *r) +qreal Calculator::MmUnit(qreal val) { - if (o=='-') + qreal unit = val; + switch(qApp->patternUnit()) { - *r = -(*r); + case Valentina::Mm: + break; + case Valentina::Cm: + unit = val / 10.0; + break; + case Valentina::Inch: + unit = val / 25.4; + break; + default: + break; } + + return unit; } //--------------------------------------------------------------------------------------------------------------------- -/** - * @brief find_var method is finding variable by name. - * @param s name of variable. - * @return value of variable. - */ -qreal Calculator::find_var(QString s) +qreal Calculator::InchUnit(qreal val) { - bool ok = false; - qreal value = data->FindVar(s, &ok); - if (ok == false) + qreal unit = val; + switch(qApp->patternUnit()) { - qDebug()<=99) { - "Syntax error", - "Parentheses do not match", - "This is not the expression", - "Assumed the equality symbol", - "Do not a variable" - }; - errorMsg->clear(); - *errorMsg = e[error]; - qDebug()</*%^=()", c) || c=='\n' || c=='\r' || c=='\0') - { - return true; - } - return false; -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief iswhite checks whether c space or tab. - * @param c character. - * @return true - space or tab, false - don't space and don't tab. - */ -bool Calculator::iswhite(QChar c) -{ - if (c==' ' || c=='\t') - { - return true; + throw qmu::QmuParserError( "Variable buffer overflow." ); } else { - return false; + return &afValBuf[iVal]; } } - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief get_token return next token. - */ -void Calculator::get_token() -{ - QString *temp; - - token_type=0; tok=0; - token.clear(); - temp=&token; - - if (prog[index]=='\0') - { /* end of file */ - token="\0"; - tok=FINISHED; - token_type=DELIMITER; - return; - } - - while (iswhite(prog[index])) - { - ++index; /* skip spaces */ - } - - if (prog[index]=='\r') - { /* crtl */ - ++index; ++index; - tok= EOL; token='\r'; - token.append('\n');token.append("\0"); - token_type = DELIMITER; - return; - } - - if (StrChr("+-*^/%=;(),><", prog[index])) - { /* delimiter */ - *temp=prog[index]; - index++; /* jump to the next position */ - temp->append("\0"); - token_type=DELIMITER; - debugFormula.append(token); - return; - } - if (prog[index]=='"') - { /* quoted string */ - index++; - while (prog[index] != '"' && prog[index] != '\r') - { - temp->append(prog[index]); - index++; - } - if (prog[index]=='\r') - { - serror(1); - } - index++;temp->append("\0"); - token_type=QUOTE; - return; - } - if (prog[index].isDigit()) - { /* number */ - while (isdelim(prog[index]) == false) - { - temp->append(prog[index]); - index++; - } - temp->append('\0'); - token_type = NUMBER; - return; - } - - if (prog[index].isPrint()) - { /* variable or command */ - while (isdelim(prog[index]) == false) - { - temp->append(prog[index]); - index++; - } - token_type=STRING; - } - temp->append("\0"); - - /* Seen if there is a command line or a variable */ - if (token_type==STRING) - { - tok=look_up(token); - if (tok == false) - { - token_type = VARIABLE; - } - else - { - token_type = COMMAND; /* It is command */ - } - } - return; -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief StrChr checks whether the character belongs to the line. - * @param string string with formula - * @param c character. - * @return true - belongs to the line, false - don't belongs to the line. - */ -bool Calculator::StrChr(QString string, QChar c) -{ - return string.contains(c, Qt::CaseInsensitive); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief putback returns the readout token back into the flow. - */ -void Calculator::putback() -{ - QString t; - t = token; - index = index - t.size(); -} diff --git a/src/app/container/calculator.h b/src/app/container/calculator.h index 51e074865..2961f6498 100644 --- a/src/app/container/calculator.h +++ b/src/app/container/calculator.h @@ -31,67 +31,26 @@ #include "vcontainer.h" -/** - * @brief The Calculator class calculate formulas of pattern. Support operation +,-,/,* and braces. - * Can replace name of variables her value. - */ -class Calculator +#include "../../libs/qmuparser/qmuparser.h" +using namespace qmu; + +class Calculator:public QmuParser { public: - explicit Calculator(const VContainer *data); - qreal eval(QString prog, QString *errorMsg); + Calculator(const VContainer *data); + Calculator(const QString &formula, bool fromUser = true); + ~Calculator(); + qreal EvalFormula(const QString &formula); private: Q_DISABLE_COPY(Calculator) - /** - * @brief errorMsg keeps error message of calculation. - */ - QString *errorMsg; - /** - * @brief token теперішня лексема. - */ - QString token; - /** - * @brief tok internal representation of token. - */ - qint32 tok; - /** - * @brief token_type type of token. - */ - qint32 token_type; - /** - * @brief prog string where keeps formula. - */ - QString prog; - /** - * @brief index number character in string of formula. - */ - qint32 index; - /** - * @brief data container with data container of all variables. - */ - const VContainer *data; - /** - * @brief debugFormula decoded string of formula. - */ - QString debugFormula; - qreal get_exp(); - void get_token(); - static bool StrChr(QString string, QChar c); - void putback(); - void level2(qreal *result); - void level3(qreal *result); - void level4(qreal *result); - void level5(qreal *result); - void level6(qreal *result); - void primitive(qreal *result); - static void arith(QChar o, qreal *r, qreal *h); - static void unary(QChar o, qreal *r); - qreal find_var(QString s); - // cppcheck-suppress functionStatic - void serror(qint32 error); - static char look_up(QString s); - static bool isdelim(QChar c); - static bool iswhite(QChar c); + qreal *vVarVal; + static int iVal; + void InitVariables(const VContainer *data); + void InitCharacterSets(); + static qreal CmUnit(qreal val); + static qreal MmUnit(qreal val); + static qreal InchUnit(qreal val); + static qreal* AddVariable(const QString &a_szName, void *a_pUserData); }; #endif // CALCULATOR_H diff --git a/src/app/container/vcontainer.cpp b/src/app/container/vcontainer.cpp index 3ec01bc55..7cf541dc1 100644 --- a/src/app/container/vcontainer.cpp +++ b/src/app/container/vcontainer.cpp @@ -35,14 +35,22 @@ quint32 VContainer::_id = 0; //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief VContainer create empty container + */ VContainer::VContainer() - :_size(50), sizeName("Сг"), _height(176), heightName("P"), gObjects(QHash()), + :_size(50), sizeName(size_M), _height(176), heightName(height_M), gObjects(QHash()), measurements(QHash()), increments(QHash()), lengthLines(QHash()), lineAngles(QHash()), lengthSplines(QHash()), lengthArcs(QHash()), details(QHash()) {} //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief operator = copy constructor + * @param data container + * @return copy container + */ VContainer &VContainer::operator =(const VContainer &data) { setData(data); @@ -50,8 +58,12 @@ VContainer &VContainer::operator =(const VContainer &data) } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief VContainer create container from another container + * @param data container + */ VContainer::VContainer(const VContainer &data) - :_size(50), sizeName("Сг"), _height(176), heightName("P"), gObjects(QHash()), + :_size(50), sizeName(size_M), _height(176), heightName(height_M), gObjects(QHash()), measurements(QHash()), increments(QHash()), lengthLines(QHash()), lineAngles(QHash()), lengthSplines(QHash()), lengthArcs(QHash()), details(QHash()) @@ -67,6 +79,10 @@ VContainer::~VContainer() } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief setData copy data from container + * @param data container + */ void VContainer::setData(const VContainer &data) { _size = data.size(); @@ -111,6 +127,11 @@ void VContainer::setData(const VContainer &data) } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetGObject returns a point by id + * @param id id of point + * @return point + */ // cppcheck-suppress unusedFunction const VGObject *VContainer::GetGObject(quint32 id)const { @@ -118,6 +139,12 @@ const VGObject *VContainer::GetGObject(quint32 id)const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetObject return object from container + * @param obj container + * @param id id of object + * @return Object + */ template const val VContainer::GetObject(const QHash &obj, key id) const { @@ -132,6 +159,12 @@ const val VContainer::GetObject(const QHash &obj, key id) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetObject return object from container + * @param obj container + * @param id id of object + * @return Object + */ template val VContainer::GetVariable(const QHash &obj, key id) const { @@ -146,6 +179,11 @@ val VContainer::GetVariable(const QHash &obj, key id) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetMeasurement return measurement by name + * @param name short measurement name + * @return measurement + */ const VMeasurement VContainer::GetMeasurement(const QString &name) const { Q_ASSERT(name.isEmpty()==false); @@ -153,6 +191,11 @@ const VMeasurement VContainer::GetMeasurement(const QString &name) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetIncrement return increment table row by name + * @param name name of increment table row + * @return increment + */ const VIncrement VContainer::GetIncrement(const QString& name) const { Q_ASSERT(name.isEmpty()==false); @@ -160,6 +203,11 @@ const VIncrement VContainer::GetIncrement(const QString& name) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetLine return length of line by name + * @param name name of line + * @return length of line in mm + */ qreal VContainer::GetLine(const QString &name) const { Q_ASSERT(name.isEmpty()==false); @@ -167,6 +215,11 @@ qreal VContainer::GetLine(const QString &name) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetLengthArc return length of arc by name + * @param name name of arc + * @return length of arc in mm + */ qreal VContainer::GetLengthArc(const QString &name) const { Q_ASSERT(name.isEmpty()==false); @@ -174,6 +227,11 @@ qreal VContainer::GetLengthArc(const QString &name) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetLengthSpline return length of spline by name + * @param name name of spline + * @return length of spline in mm + */ qreal VContainer::GetLengthSpline(const QString &name) const { Q_ASSERT(name.isEmpty()==false); @@ -181,6 +239,11 @@ qreal VContainer::GetLengthSpline(const QString &name) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetLineAngle return angle of line + * @param name name of line angle + * @return angle in degree + */ qreal VContainer::GetLineAngle(const QString &name) const { Q_ASSERT(name.isEmpty()==false); @@ -188,18 +251,33 @@ qreal VContainer::GetLineAngle(const QString &name) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetDetail return detail by id + * @param id id of detail + * @return detail + */ const VDetail VContainer::GetDetail(quint32 id) const { return GetVariable(details, id); } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddPoint add new point to container + * @param point new point + * @return return id of new point in container + */ quint32 VContainer::AddGObject(VGObject *obj) { return AddObject(gObjects, obj); } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddDetail add new detail to container + * @param detail new detail + * @return return id of new detail in container + */ quint32 VContainer::AddDetail(VDetail detail) { quint32 id = getNextId(); @@ -208,12 +286,21 @@ quint32 VContainer::AddDetail(VDetail detail) } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddIncrement add new row of increment table + * @param name name of new row of increment table + * @param row new row of increment table + */ void VContainer::AddIncrement(const QString &name, VIncrement incr) { increments[name] = incr; } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief getNextId generate next unique id + * @return next unique id + */ quint32 VContainer::getNextId() { _id++; @@ -221,6 +308,10 @@ quint32 VContainer::getNextId() } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief UpdateId update id. If new id bigger when current save new like current. + * @param newId id + */ void VContainer::UpdateId(quint32 newId) { if (newId > _id) @@ -230,6 +321,12 @@ void VContainer::UpdateId(quint32 newId) } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief UpdateObject update object in container + * @param obj container + * @param id id of existing object + * @param point object + */ template void VContainer::UpdateObject(QHash &obj, const quint32 &id, val point) { @@ -246,6 +343,11 @@ void VContainer::UpdateObject(QHash &obj, const quint32 &id, val p } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddLengthSpline add length of spline to container + * @param name name of spline + * @param value length of spline + */ void VContainer::AddLengthSpline(const QString &name, const qreal &value) { Q_ASSERT(name.isEmpty() == false); @@ -253,6 +355,10 @@ void VContainer::AddLengthSpline(const QString &name, const qreal &value) } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddLengthArc add length of arc to container + * @param id id of arc + */ void VContainer::AddLengthArc(const quint32 &id) { const VArc * arc = GeometricObject(id); @@ -260,6 +366,11 @@ void VContainer::AddLengthArc(const quint32 &id) } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddLineAngle add angle of line to container + * @param name name of line angle + * @param value angle in degree + */ void VContainer::AddLineAngle(const QString &name, const qreal &value) { Q_ASSERT(name.isEmpty() == false); @@ -267,6 +378,11 @@ void VContainer::AddLineAngle(const QString &name, const qreal &value) } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetValueStandardTableRow return value of measurement by name + * @param name name of measurement + * @return value in measurement units + */ qreal VContainer::GetValueStandardTableRow(const QString& name) const { const VMeasurement m = GetMeasurement(name); @@ -281,6 +397,11 @@ qreal VContainer::GetValueStandardTableRow(const QString& name) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetValueIncrementTableRow return value of increment table row by name + * @param name name of row + * @return value of row in mm + */ qreal VContainer::GetValueIncrementTableRow(const QString& name) const { const VIncrement icr = GetIncrement(name); @@ -295,6 +416,9 @@ qreal VContainer::GetValueIncrementTableRow(const QString& name) const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief Clear clear data in container. Id will be 0. + */ void VContainer::Clear() { _id = 0; @@ -309,6 +433,9 @@ void VContainer::Clear() } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief ClearObject points, splines, arcs, spline paths will be cleared. + */ void VContainer::ClearGObjects() { if (gObjects.size()>0) @@ -337,6 +464,12 @@ void VContainer::ClearCalculationGObjects() } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief FindVar return value of variable by name + * @param name name of variable + * @param ok false if can't find variable + * @return value of variable + */ qreal VContainer::FindVar(const QString &name, bool *ok)const { if (sizeName == name) @@ -384,6 +517,12 @@ qreal VContainer::FindVar(const QString &name, bool *ok)const } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddLine add line to container + * @param firstPointId id of first point of line + * @param secondPointId id of second point of line + * @param mode mode of line + */ void VContainer::AddLine(const quint32 &firstPointId, const quint32 &secondPointId) { QString nameLine = GetNameLine(firstPointId, secondPointId); @@ -395,6 +534,12 @@ void VContainer::AddLine(const quint32 &firstPointId, const quint32 &secondPoint } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddObject add object to container + * @param obj container + * @param value object + * @return id of object in container + */ template quint32 VContainer::AddObject(QHash &obj, val value) { @@ -406,30 +551,52 @@ quint32 VContainer::AddObject(QHash &obj, val value) } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetNameLine return name of line + * @param firstPoint id of first point of line + * @param secondPoint id of second point of line + * @return name of line + */ QString VContainer::GetNameLine(const quint32 &firstPoint, const quint32 &secondPoint) const { const VPointF *first = GeometricObject(firstPoint); const VPointF *second = GeometricObject(secondPoint); - return QString("Line_%1_%2").arg(first->name(), second->name()); + return QString(line_+"%1_%2").arg(first->name(), second->name()); } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief GetNameLineAngle return name of line angle + * @param firstPoint id of first point of line + * @param secondPoint id of second point of line + * @return name of angle of line + */ QString VContainer::GetNameLineAngle(const quint32 &firstPoint, const quint32 &secondPoint) const { const VPointF *first = GeometricObject(firstPoint); const VPointF *second = GeometricObject(secondPoint); - return QString("AngleLine_%1_%2").arg(first->name(), second->name()); + return QString(angleLine_+"%1_%2").arg(first->name(), second->name()); } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief UpdatePoint update point by id + * @param id id of existing point + * @param point point + */ void VContainer::UpdateGObject(quint32 id, VGObject* obj) { UpdateObject(gObjects, id, obj); } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief UpdateDetail update detail by id + * @param id id of existing detail + * @param detail detail + */ void VContainer::UpdateDetail(quint32 id, const VDetail &detail) { Q_ASSERT_X(id > 0, Q_FUNC_INFO, "id <= 0"); @@ -438,6 +605,11 @@ void VContainer::UpdateDetail(quint32 id, const VDetail &detail) } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddLengthLine add length of line to container + * @param name name of line + * @param value length of line + */ void VContainer::AddLengthLine(const QString &name, const qreal &value) { Q_ASSERT(name.isEmpty() == false); diff --git a/src/app/container/vcontainer.h b/src/app/container/vcontainer.h index be55c15f9..94ce7ded4 100644 --- a/src/app/container/vcontainer.h +++ b/src/app/container/vcontainer.h @@ -45,20 +45,8 @@ class VContainer { Q_DECLARE_TR_FUNCTIONS(VContainer) public: - /** - * @brief VContainer create empty container - */ VContainer(); - /** - * @brief operator = copy constructor - * @param data container - * @return copy container - */ VContainer &operator=(const VContainer &data); - /** - * @brief VContainer create container from another container - * @param data container - */ VContainer(const VContainer &data); ~VContainer(); template @@ -67,11 +55,7 @@ public: T *obj = new T(*data.GeometricObject(id)); UpdateGObject(id, obj); } - /** - * @brief setData copy data from container - * @param data container - */ - void setData(const VContainer &data); + void setData(const VContainer &data); template const T GeometricObject(const quint32 &id) const { @@ -100,288 +84,65 @@ public: return nullptr; } - /** - * @brief GetGObject returns a point by id - * @param id id of point - * @return point - */ - const VGObject *GetGObject(quint32 id) const; - /** - * @brief GetMeasurement return measurement by name - * @param name short measurement name - * @return measurement - */ - const VMeasurement GetMeasurement(const QString& name) const; - /** - * @brief GetIncrement return increment table row by name - * @param name name of increment table row - * @return increment - */ - const VIncrement GetIncrement(const QString& name) const; - /** - * @brief GetLine return length of line by name - * @param name name of line - * @return length of line in mm - */ - qreal GetLine(const QString &name) const; - /** - * @brief GetLengthArc return length of arc by name - * @param name name of arc - * @return length of arc in mm - */ - qreal GetLengthArc(const QString &name) const; - /** - * @brief GetLengthSpline return length of spline by name - * @param name name of spline - * @return length of spline in mm - */ - qreal GetLengthSpline(const QString &name) const; - /** - * @brief GetLineAngle return angle of line - * @param name name of line angle - * @return angle in degree - */ - qreal GetLineAngle(const QString &name) const; - /** - * @brief GetDetail return detail by id - * @param id id of detail - * @return detail - */ - const VDetail GetDetail(quint32 id) const; - /** - * @brief getId return current id - * @return current id - */ - static quint32 getId() {return _id;} - /** - * @brief AddPoint add new point to container - * @param point new point - * @return return id of new point in container - */ - quint32 AddGObject(VGObject *obj); - /** - * @brief AddDetail add new detail to container - * @param detail new detail - * @return return id of new detail in container - */ - quint32 AddDetail(VDetail detail); - /** - * @brief AddMeasurement add new measurement - * @param name short measurement name - * @param row measurement - */ - void AddMeasurement(const QString& name, const VMeasurement &m); - /** - * @brief AddIncrement add new row of increment table - * @param name name of new row of increment table - * @param row new row of increment table - */ - void AddIncrement(const QString& name, VIncrement incr); - /** - * @brief AddLengthLine add length of line to container - * @param name name of line - * @param value length of line - */ - void AddLengthLine(const QString &name, const qreal &value); - /** - * @brief AddLengthSpline add length of spline to container - * @param name name of spline - * @param value length of spline - */ - void AddLengthSpline(const QString &name, const qreal &value); - /** - * @brief AddLengthArc add length of arc to container - * @param id id of arc - */ - void AddLengthArc(const quint32 &id); - /** - * @brief AddLineAngle add angle of line to container - * @param name name of line angle - * @param value angle in degree - */ - void AddLineAngle(const QString &name, const qreal &value); - /** - * @brief AddLine add line to container - * @param firstPointId id of first point of line - * @param secondPointId id of second point of line - * @param mode mode of line - */ - void AddLine(const quint32 &firstPointId, const quint32 &secondPointId); - /** - * @brief GetNameLine return name of line - * @param firstPoint id of first point of line - * @param secondPoint id of second point of line - * @return name of line - */ + const VGObject *GetGObject(quint32 id) const; + const VMeasurement GetMeasurement(const QString& name) const; + const VIncrement GetIncrement(const QString& name) const; + qreal GetLine(const QString &name) const; + qreal GetLengthArc(const QString &name) const; + qreal GetLengthSpline(const QString &name) const; + qreal GetLineAngle(const QString &name) const; + const VDetail GetDetail(quint32 id) const; + static quint32 getId(){return _id;} + quint32 AddGObject(VGObject *obj); + quint32 AddDetail(VDetail detail); + void AddMeasurement(const QString& name, const VMeasurement &m); + void AddIncrement(const QString& name, VIncrement incr); + void AddLengthLine(const QString &name, const qreal &value); + void AddLengthSpline(const QString &name, const qreal &value); + void AddLengthArc(const quint32 &id); + void AddLineAngle(const QString &name, const qreal &value); + void AddLine(const quint32 &firstPointId, const quint32 &secondPointId); // cppcheck-suppress functionStatic - QString GetNameLine(const quint32 &firstPoint, const quint32 &secondPoint) const; - /** - * @brief GetNameLineAngle return name of line angle - * @param firstPoint id of first point of line - * @param secondPoint id of second point of line - * @return name of angle of line - */ + QString GetNameLine(const quint32 &firstPoint, const quint32 &secondPoint) const; // cppcheck-suppress functionStatic - QString GetNameLineAngle(const quint32 &firstPoint, const quint32 &secondPoint) const; - /** - * @brief UpdatePoint update point by id - * @param id id of existing point - * @param point point - */ - void UpdateGObject(quint32 id, VGObject* obj); - /** - * @brief UpdateDetail update detail by id - * @param id id of existing detail - * @param detail detail - */ - void UpdateDetail(quint32 id, const VDetail &detail); - /** - * @brief UpdateMeasurement update measurement by name - * @param name short measurement name - * @param m measurement - */ - void UpdateMeasurement(const QString& name, VMeasurement m); - /** - * @brief UpdateIncrement update increment table row by name - * @param name name of row - * @param row row - */ - void UpdateIncrement(const QString& name, VIncrement incr); - /** - * @brief GetValueStandardTableRow return value of measurement by name - * @param name name of measurement - * @return value in measurement units - */ - qreal GetValueStandardTableRow(const QString& name) const; - /** - * @brief GetValueIncrementTableRow return value of increment table row by name - * @param name name of row - * @return value of row in mm - */ - qreal GetValueIncrementTableRow(const QString& name) const; - /** - * @brief Clear clear data in container. Id will be 0. - */ - void Clear(); - /** - * @brief ClearObject points, splines, arcs, spline paths will be cleared. - */ - void ClearGObjects(); - void ClearCalculationGObjects(); - /** - * @brief ClearIncrementTable clear increment table - */ - void ClearIncrementTable(); - void ClearMeasurements(); - /** - * @brief ClearLengthLines clear length lines - */ - void ClearLengthLines(); - /** - * @brief ClearLengthSplines clear length splines - */ - void ClearLengthSplines(); - /** - * @brief ClearLengthArcs clear length arcs - */ - void ClearLengthArcs(); - /** - * @brief ClearLineAngles clear angles of lines - */ - void ClearLineAngles(); - void ClearDetails(); - /** - * @brief SetSize set value of size - * @param size value of size - */ - void SetSize(qreal size); - void SetSizeName(const QString &name); - /** - * @brief SetGrowth set value of growth - * @param growth value of growth - */ - void SetHeight(qreal height); - void SetHeightName(const QString &name); - /** - * @brief size return size - * @return size in mm - */ - qreal size() const; - QString SizeName()const; - /** - * @brief height return height - * @return height in pattern units - */ - qreal height() const; - QString HeightName()const; - /** - * @brief FindVar return value of variable by name - * @param name name of variable - * @param ok false if can't find variable - * @return value of variable - */ - qreal FindVar(const QString& name, bool *ok)const; - /** - * @brief IncrementTableContains check if increment table contains name - * @param name name of row - * @return true if contains - */ - bool IncrementTableContains(const QString& name); - /** - * @brief getNextId generate next unique id - * @return next unique id - */ - static quint32 getNextId(); - /** - * @brief RemoveIncrementTableRow remove row by name from increment table - * @param name name of existing row - */ - void RemoveIncrementTableRow(const QString& name); - /** - * @brief data container with datagObjects return container of gObjects - * @return pointer on container of gObjects - */ - const QHash *DataGObjects() const; - /** - * @brief DataMeasurements container with measurements. - * @return pointer to measurements. - */ + QString GetNameLineAngle(const quint32 &firstPoint, const quint32 &secondPoint) const; + void UpdateGObject(quint32 id, VGObject* obj); + void UpdateDetail(quint32 id, const VDetail &detail); + void UpdateMeasurement(const QString& name, VMeasurement m); + void UpdateIncrement(const QString& name, VIncrement incr); + qreal GetValueStandardTableRow(const QString& name) const; + qreal GetValueIncrementTableRow(const QString& name) const; + void Clear(); + void ClearGObjects(); + void ClearCalculationGObjects(); + void ClearIncrementTable(); + void ClearMeasurements(); + void ClearLengthLines(); + void ClearLengthSplines(); + void ClearLengthArcs(); + void ClearLineAngles(); + void ClearDetails(); + void SetSize(qreal size); + void SetSizeName(const QString &name); + void SetHeight(qreal height); + void SetHeightName(const QString &name); + qreal size() const; + QString SizeName()const; + qreal height() const; + QString HeightName()const; + qreal FindVar(const QString& name, bool *ok)const; + bool IncrementTableContains(const QString& name); + static quint32 getNextId(); + void RemoveIncrementTableRow(const QString& name); + static void UpdateId(quint32 newId); + const QHash *DataGObjects() const; const QHash *DataMeasurements() const; - /** - * @brief data container with dataIncrements return container of increment table - * @return pointer on container of increment table - */ - const QHash *DataIncrements() const; - /** - * @brief data container with dataLengthLines return container of lines lengths - * @return pointer on container of lines lengths - */ - const QHash *DataLengthLines() const; - /** - * @brief data container with dataLengthSplines return container of splines lengths - * @return pointer on container of splines lengths - */ - const QHash *DataLengthSplines() const; - /** - * @brief data container with dataLengthArcs return container of arcs length - * @return pointer on container of arcs length - */ - const QHash *DataLengthArcs() const; - /** - * @brief data container with dataLineAngles return container of angles of line - * @return pointer on container of angles of line - */ - const QHash *DataLineAngles() const; - /** - * @brief data container with dataDetails return container of details - * @return pointer on container of details - */ - const QHash *DataDetails() const; - /** - * @brief UpdateId update id. If new id bigger when current save new like current. - * @param newId id - */ - static void UpdateId(quint32 newId); + const QHash *DataIncrements() const; + const QHash *DataLengthLines() const; + const QHash *DataLengthSplines() const; + const QHash *DataLengthArcs() const; + const QHash *DataLineAngles() const; + const QHash *DataDetails() const; private: /** * @brief _id current id. New object will have value +1. For empty class equal 0. @@ -423,177 +184,272 @@ private: * @brief details container of details */ QHash details; + template - /** - * @brief GetObject return object from container - * @param obj container - * @param id id of object - * @return Object - */ // cppcheck-suppress functionStatic const val GetObject(const QHash &obj, key id) const; + template - /** - * @brief GetObject return object from container - * @param obj container - * @param id id of object - * @return Object - */ // cppcheck-suppress functionStatic val GetVariable(const QHash &obj, key id) const; + template - /** - * @brief UpdateObject update object in container - * @param obj container - * @param id id of existing object - * @param point object - */ void UpdateObject(QHash &obj, const quint32 &id, val point); + template - /** - * @brief AddObject add object to container - * @param obj container - * @param value object - * @return id of object in container - */ static quint32 AddObject(QHash &obj, val value); }; +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief AddMeasurement add new measurement + * @param name short measurement name + * @param row measurement + */ inline void VContainer::AddMeasurement(const QString &name, const VMeasurement &m) { measurements[name] = m; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief UpdateMeasurement update measurement by name + * @param name short measurement name + * @param m measurement + */ inline void VContainer::UpdateMeasurement(const QString &name, VMeasurement m) { measurements[name] = m; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief UpdateIncrement update increment table row by name + * @param name name of row + * @param row row + */ inline void VContainer::UpdateIncrement(const QString &name, VIncrement incr) { increments[name] = incr; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief ClearIncrementTable clear increment table + */ inline void VContainer::ClearIncrementTable() { increments.clear(); } +//--------------------------------------------------------------------------------------------------------------------- inline void VContainer::ClearMeasurements() { measurements.clear(); } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief ClearLengthLines clear length lines + */ inline void VContainer::ClearLengthLines() { lengthLines.clear(); } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief ClearLengthSplines clear length splines + */ inline void VContainer::ClearLengthSplines() { lengthSplines.clear(); } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief ClearLengthArcs clear length arcs + */ inline void VContainer::ClearLengthArcs() { lengthArcs.clear(); } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief ClearLineAngles clear angles of lines + */ inline void VContainer::ClearLineAngles() { lineAngles.clear(); } +//--------------------------------------------------------------------------------------------------------------------- inline void VContainer::ClearDetails() { details.clear(); } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief SetSize set value of size + * @param size value of size + */ inline void VContainer::SetSize(qreal size) { _size = size; } +//--------------------------------------------------------------------------------------------------------------------- inline void VContainer::SetSizeName(const QString &name) { sizeName = name; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief SetGrowth set value of growth + * @param growth value of growth + */ inline void VContainer::SetHeight(qreal height) { _height = height; } +//--------------------------------------------------------------------------------------------------------------------- inline void VContainer::SetHeightName(const QString &name) { heightName = name; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief size return size + * @return size in mm + */ inline qreal VContainer::size() const { return _size; } +//--------------------------------------------------------------------------------------------------------------------- inline QString VContainer::SizeName() const { return sizeName; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief height return height + * @return height in pattern units + */ inline qreal VContainer::height() const { return _height; } +//--------------------------------------------------------------------------------------------------------------------- inline QString VContainer::HeightName() const { return heightName; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief IncrementTableContains check if increment table contains name + * @param name name of row + * @return true if contains + */ inline bool VContainer::IncrementTableContains(const QString &name) { return increments.contains(name); } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief RemoveIncrementTableRow remove row by name from increment table + * @param name name of existing row + */ inline void VContainer::RemoveIncrementTableRow(const QString &name) { increments.remove(name); } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief data container with datagObjects return container of gObjects + * @return pointer on container of gObjects + */ inline const QHash *VContainer::DataGObjects() const { return &gObjects; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief DataMeasurements container with measurements. + * @return pointer to measurements. + */ inline const QHash *VContainer::DataMeasurements() const { return &measurements; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief data container with dataIncrements return container of increment table + * @return pointer on container of increment table + */ inline const QHash *VContainer::DataIncrements() const { return &increments; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief data container with dataLengthLines return container of lines lengths + * @return pointer on container of lines lengths + */ inline const QHash *VContainer::DataLengthLines() const { return &lengthLines; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief data container with dataLengthSplines return container of splines lengths + * @return pointer on container of splines lengths + */ inline const QHash *VContainer::DataLengthSplines() const { return &lengthSplines; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief data container with dataLengthArcs return container of arcs length + * @return pointer on container of arcs length + */ inline const QHash *VContainer::DataLengthArcs() const { return &lengthArcs; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief data container with dataLineAngles return container of angles of line + * @return pointer on container of angles of line + */ inline const QHash *VContainer::DataLineAngles() const { return &lineAngles; } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief data container with dataDetails return container of details + * @return pointer on container of details + */ inline const QHash *VContainer::DataDetails() const { return &details; diff --git a/src/app/container/vincrement.h b/src/app/container/vincrement.h index 32691f6d5..4f34a9942 100644 --- a/src/app/container/vincrement.h +++ b/src/app/container/vincrement.h @@ -37,19 +37,19 @@ class VIncrement { public: - /** - * @brief VIncrementTableRow create enpty row - */ - VIncrement(); - /** - * @brief VIncrementTableRow create row - * @param id id - * @param base value in base size and growth - * @param ksize increment in sizes - * @param kgrowth increment in growths - * @param description description of increment - */ - VIncrement(quint32 id, qreal base, qreal ksize, qreal kheight, QString description = QString()); + /** + * @brief VIncrementTableRow create enpty row + */ + VIncrement(); + /** + * @brief VIncrementTableRow create row + * @param id id + * @param base value in base size and growth + * @param ksize increment in sizes + * @param kgrowth increment in growths + * @param description description of increment + */ + VIncrement(quint32 id, qreal base, qreal ksize, qreal kheight, QString description = QString()); /** * @brief getId return id of row * @return id diff --git a/src/app/container/vmeasurement.cpp b/src/app/container/vmeasurement.cpp index e39460e61..b52b6e858 100644 --- a/src/app/container/vmeasurement.cpp +++ b/src/app/container/vmeasurement.cpp @@ -30,21 +30,18 @@ //--------------------------------------------------------------------------------------------------------------------- VMeasurement::VMeasurement() - :base(0), ksize(50.0), kheight(176.0), gui_text(QString()), number(QString()), virtualM(false), - _tagName(QString()) + :base(0), ksize(50.0), kheight(176.0), gui_text(QString()), number(QString()), _tagName(QString()) {} //--------------------------------------------------------------------------------------------------------------------- VMeasurement::VMeasurement(const qreal &base, const qreal &ksize, const qreal &kgrowth, const QString &gui_text, const QString &number, const QString &tagName) - :base(base), ksize(ksize), kheight(kgrowth), gui_text(gui_text), number(number), virtualM(false), - _tagName(tagName) + :base(base), ksize(ksize), kheight(kgrowth), gui_text(gui_text), number(number), _tagName(tagName) {} //--------------------------------------------------------------------------------------------------------------------- VMeasurement::VMeasurement(const qreal &base, const QString &gui_text, const QString &number, const QString &tagName) - :base(base), ksize(50.0), kheight(176.0), gui_text(gui_text), number(number), virtualM(false), - _tagName(tagName) + :base(base), ksize(50.0), kheight(176.0), gui_text(gui_text), number(number), _tagName(tagName) {} //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/container/vmeasurement.h b/src/app/container/vmeasurement.h index c4071a086..00a3f43a2 100644 --- a/src/app/container/vmeasurement.h +++ b/src/app/container/vmeasurement.h @@ -80,8 +80,6 @@ public: qreal GetValue(const qreal &size, const qreal &height) const; QString TagName() const; void setTagName(const QString &TagName); - bool Virtual() const; - void setVirtual(bool value); private: /** * @brief base value in base size and growth @@ -100,7 +98,6 @@ private: */ QString gui_text; QString number; - bool virtualM; QString _tagName; }; @@ -144,14 +141,4 @@ inline void VMeasurement::setTagName(const QString &tagName) _tagName = tagName; } -inline bool VMeasurement::Virtual() const -{ - return virtualM; -} - -inline void VMeasurement::setVirtual(bool value) -{ - virtualM = value; -} - #endif // VSTANDARDTABLEROW_H diff --git a/src/app/dialogs/app/dialogaboutapp.ui b/src/app/dialogs/app/dialogaboutapp.ui index 37b98d497..6bcdc5a9e 100644 --- a/src/app/dialogs/app/dialogaboutapp.ui +++ b/src/app/dialogs/app/dialogaboutapp.ui @@ -162,7 +162,7 @@ PointingHandCursor - pushButton_Web_Site + pushButton_Web_Site false @@ -246,7 +246,7 @@ p, li { white-space: pre-wrap; } - label_QT_Version + label_QT_Version diff --git a/src/app/dialogs/app/dialogincrements.cpp b/src/app/dialogs/app/dialogincrements.cpp index d700c1d2e..e6e3ae51d 100644 --- a/src/app/dialogs/app/dialogincrements.cpp +++ b/src/app/dialogs/app/dialogincrements.cpp @@ -146,7 +146,7 @@ void DialogIncrements::FillMeasurements() while (i.hasNext()) { i.next(); - map.insert(i.key(), i.value()); + map.insert(qApp->VarToUser(i.key()), i.value()); } qint32 currentRow = -1; QMapIterator iMap(map); @@ -165,6 +165,7 @@ void DialogIncrements::FillMeasurements() Qt::ItemFlags flags = item->flags(); flags &= ~(Qt::ItemIsSelectable | Qt::ItemIsEditable); // reset/clear the flag item->setFlags(flags); + item->setTextAlignment(Qt::AlignLeft); ui->tableWidgetMeasurements->setItem(currentRow, 0, item); if (qApp->patternType() == Pattern::Standard) @@ -207,6 +208,7 @@ void DialogIncrements::FillMeasurements() flags = item->flags(); flags &= ~(Qt::ItemIsSelectable | Qt::ItemIsEditable); // reset/clear the flag item->setFlags(flags); + item->setTextAlignment(Qt::AlignLeft); ui->tableWidgetMeasurements->setItem(currentRow, 5, item); } ui->tableWidgetMeasurements->verticalHeader()->setDefaultSectionSize(20); @@ -292,7 +294,7 @@ void DialogIncrements::FillLengthLines() while (iHash.hasNext()) { iHash.next(); - map.insert(iHash.key(), iHash.value()); + map.insert(qApp->VarToUser(iHash.key()), iHash.value()); } qint32 currentRow = -1; @@ -305,7 +307,7 @@ void DialogIncrements::FillLengthLines() ui->tableWidgetLines->setRowCount ( linesTable->size() ); QTableWidgetItem *item = new QTableWidgetItem(QString(i.key())); - item->setTextAlignment(Qt::AlignHCenter); + item->setTextAlignment(Qt::AlignLeft); item->setFont(QFont("Times", 12, QFont::Bold)); ui->tableWidgetLines->setItem(currentRow, 0, item); @@ -328,7 +330,7 @@ void DialogIncrements::FillLengthSplines() while (iHash.hasNext()) { iHash.next(); - map.insert(iHash.key(), iHash.value()); + map.insert(qApp->VarToUser(iHash.key()), iHash.value()); } qint32 currentRow = -1; @@ -340,7 +342,7 @@ void DialogIncrements::FillLengthSplines() currentRow++; ui->tableWidgetSplines->setRowCount ( splinesTable->size() ); - QTableWidgetItem *item = new QTableWidgetItem(QString(i.key())); + QTableWidgetItem *item = new QTableWidgetItem(i.key()); item->setTextAlignment(Qt::AlignLeft); item->setFont(QFont("Times", 12, QFont::Bold)); ui->tableWidgetSplines->setItem(currentRow, 0, item); @@ -364,7 +366,7 @@ void DialogIncrements::FillLengthArcs() while (iHash.hasNext()) { iHash.next(); - map.insert(iHash.key(), iHash.value()); + map.insert(qApp->VarToUser(iHash.key()), iHash.value()); } qint32 currentRow = -1; @@ -376,8 +378,8 @@ void DialogIncrements::FillLengthArcs() currentRow++; ui->tableWidgetArcs->setRowCount ( arcsTable->size() ); - QTableWidgetItem *item = new QTableWidgetItem(QString(i.key())); - item->setTextAlignment(Qt::AlignHCenter); + QTableWidgetItem *item = new QTableWidgetItem(i.key()); + item->setTextAlignment(Qt::AlignLeft); item->setFont(QFont("Times", 12, QFont::Bold)); ui->tableWidgetArcs->setItem(currentRow, 0, item); @@ -721,7 +723,7 @@ void DialogIncrements::MeasurementChanged(qint32 row, qint32 column) const QTableWidgetItem *itemName = ui->tableWidgetMeasurements->item(row, 0); QTableWidgetItem *item = ui->tableWidgetMeasurements->item(row, 2); - VMeasurement measur = data->GetMeasurement(itemName->text()); + VMeasurement measur = data->GetMeasurement(qApp->VarFromUser(itemName->text())); const QString tag = measur.TagName(); QDomNodeList list = m->elementsByTagName(tag); QDomElement domElement = list.at(0).toElement(); diff --git a/src/app/dialogs/app/dialogincrements.ui b/src/app/dialogs/app/dialogincrements.ui index eabbbec85..f95985b9c 100644 --- a/src/app/dialogs/app/dialogincrements.ui +++ b/src/app/dialogs/app/dialogincrements.ui @@ -39,7 +39,7 @@ QTabWidget::North - 1 + 0 @@ -115,8 +115,8 @@ 0 0 - 559 - 82 + 939 + 411 @@ -199,7 +199,7 @@ - yyyy-MM-dd + yyyy-MM-dd @@ -255,7 +255,7 @@ - Mail + Email @@ -284,6 +284,9 @@ true + + Qt::LeftToRight + QAbstractItemView::AnyKeyPressed|QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed diff --git a/src/app/dialogs/app/dialogindividualmeasurements.cpp b/src/app/dialogs/app/dialogindividualmeasurements.cpp index 4a096907d..234bdb4b2 100644 --- a/src/app/dialogs/app/dialogindividualmeasurements.cpp +++ b/src/app/dialogs/app/dialogindividualmeasurements.cpp @@ -57,9 +57,7 @@ DialogIndividualMeasurements::DialogIndividualMeasurements(VContainer *data, con ui->lineEditName->setText(_name); - LoadIndividualTables(); InitUnits(); - CheckState(); connect(ui->lineEditName, &QLineEdit::textChanged, this, &DialogIndividualMeasurements::CheckState); connect(ui->buttonGroupPath, static_cast(&QButtonGroup::buttonClicked), this, @@ -91,9 +89,10 @@ void DialogIndividualMeasurements::DialogAccepted() table.remove(); } - const qint32 index = ui->comboBoxLang->currentIndex(); - QString path = ui->comboBoxLang->itemData(index).toString(); - QFile iMeasur(path); + //just in case + VDomDocument::ValidateXML("://schema/individual_measurements.xsd", qApp->pathToTables()); + QFile iMeasur(qApp->pathToTables()); + //TODO maybe make copy save? if ( iMeasur.copy(_tablePath) == false ) { QMessageBox::warning(this, tr("Could not create measurements file"), tr("Please try again or change file")); @@ -153,7 +152,6 @@ void DialogIndividualMeasurements::CheckState() ui->lineEditPathNewM->setEnabled(false); ui->toolButtonOpenNew->setEnabled(false); - ui->comboBoxLang->setEnabled(false); ui->comboBoxUnits->setEnabled(false); if (ui->lineEditPathExistM->text().isEmpty() == false) @@ -165,7 +163,6 @@ void DialogIndividualMeasurements::CheckState() { ui->lineEditPathNewM->setEnabled(true); ui->toolButtonOpenNew->setEnabled(true); - ui->comboBoxLang->setEnabled(true); ui->comboBoxUnits->setEnabled(true); ui->toolButtonOpenExist->setEnabled(false); @@ -177,69 +174,10 @@ void DialogIndividualMeasurements::CheckState() } } - bool flagLang = false; - { - const QComboBox *box = ui->comboBoxLang; - Q_CHECK_PTR(box); - if (box->count() > 0 && box->currentIndex() != -1) - { - flagLang = true; - } - } QPushButton *bOk = ui->buttonBox->button(QDialogButtonBox::Ok); Q_CHECK_PTR(bOk); - bOk->setEnabled(flagName && flagPath && flagLang); -} - -//--------------------------------------------------------------------------------------------------------------------- -void DialogIndividualMeasurements::LoadIndividualTables() -{ - QStringList filters; - filters << "*.vit"; - QDir tablesDir(qApp->pathToTables()); - tablesDir.setNameFilters(filters); - tablesDir.setCurrent(qApp->pathToTables()); - - const QStringList allFiles = tablesDir.entryList(QDir::NoDotAndDotDot | QDir::Files); - if (allFiles.isEmpty() == true) - { - ui->comboBoxLang->clear(); - CheckState(); - return; - } - - for (int i = 0; i < allFiles.size(); ++i) - { - QFileInfo fi(allFiles.at(i)); - try - { - VDomDocument::ValidateXML("://schema/individual_measurements.xsd", fi.absoluteFilePath()); - VIndividualMeasurements m(data); - m.setContent(fi.absoluteFilePath()); - const QString lang = QLocale(m.Language()).nativeLanguageName(); - ui->comboBoxLang->addItem(lang, QVariant(fi.absoluteFilePath())); - } - catch (VException &e) - { - qDebug()<<"File error."<comboBoxLang->findData(checkedLocale); - if (index != -1) - { - ui->comboBoxLang->setCurrentIndex(index); - } + bOk->setEnabled(flagName && flagPath); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/dialogs/app/dialogindividualmeasurements.h b/src/app/dialogs/app/dialogindividualmeasurements.h index 092e44c42..3e2527051 100644 --- a/src/app/dialogs/app/dialogindividualmeasurements.h +++ b/src/app/dialogs/app/dialogindividualmeasurements.h @@ -57,7 +57,6 @@ private: QString _name; QString _tablePath; VContainer *data; - void LoadIndividualTables(); void InitUnits(); }; diff --git a/src/app/dialogs/app/dialogindividualmeasurements.ui b/src/app/dialogs/app/dialogindividualmeasurements.ui index 522a6a3de..696dccacd 100644 --- a/src/app/dialogs/app/dialogindividualmeasurements.ui +++ b/src/app/dialogs/app/dialogindividualmeasurements.ui @@ -11,7 +11,7 @@ - Dialog + Individual measurements @@ -90,33 +90,6 @@ - - - - - - Language: - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - - diff --git a/src/app/dialogs/tools/dialogalongline.cpp b/src/app/dialogs/tools/dialogalongline.cpp index d83ce620e..f7d8cfad6 100644 --- a/src/app/dialogs/tools/dialogalongline.cpp +++ b/src/app/dialogs/tools/dialogalongline.cpp @@ -119,7 +119,7 @@ void DialogAlongLine::setFirstPointId(const quint32 &value, const quint32 &id) //--------------------------------------------------------------------------------------------------------------------- void DialogAlongLine::setFormula(const QString &value) { - formula = value; + formula = qApp->FormulaToUser(value); ui->lineEditFormula->setText(formula); } diff --git a/src/app/dialogs/tools/dialogalongline.h b/src/app/dialogs/tools/dialogalongline.h index 0d22f2e65..69ef285f8 100644 --- a/src/app/dialogs/tools/dialogalongline.h +++ b/src/app/dialogs/tools/dialogalongline.h @@ -161,7 +161,7 @@ inline QString DialogAlongLine::getTypeLine() const inline QString DialogAlongLine::getFormula() const { - return formula; + return qApp->FormulaFromUser(formula); } inline quint32 DialogAlongLine::getFirstPointId() const diff --git a/src/app/dialogs/tools/dialogalongline.ui b/src/app/dialogs/tools/dialogalongline.ui index 11bdbf9c1..be82913a8 100644 --- a/src/app/dialogs/tools/dialogalongline.ui +++ b/src/app/dialogs/tools/dialogalongline.ui @@ -7,7 +7,7 @@ 0 0 470 - 454 + 573 @@ -337,6 +337,9 @@ + + true + diff --git a/src/app/dialogs/tools/dialogarc.ui b/src/app/dialogs/tools/dialogarc.ui index 94714027a..c40c5a1c9 100644 --- a/src/app/dialogs/tools/dialogarc.ui +++ b/src/app/dialogs/tools/dialogarc.ui @@ -7,7 +7,7 @@ 0 0 501 - 448 + 538 @@ -527,6 +527,9 @@ + + true + diff --git a/src/app/dialogs/tools/dialogbisector.cpp b/src/app/dialogs/tools/dialogbisector.cpp index cc2d49581..9308ee7bb 100644 --- a/src/app/dialogs/tools/dialogbisector.cpp +++ b/src/app/dialogs/tools/dialogbisector.cpp @@ -128,7 +128,7 @@ void DialogBisector::setTypeLine(const QString &value) //--------------------------------------------------------------------------------------------------------------------- void DialogBisector::setFormula(const QString &value) { - formula = value; + formula = qApp->FormulaToUser(value); ui->lineEditFormula->setText(formula); } diff --git a/src/app/dialogs/tools/dialogbisector.h b/src/app/dialogs/tools/dialogbisector.h index e428a3f0a..948140d98 100644 --- a/src/app/dialogs/tools/dialogbisector.h +++ b/src/app/dialogs/tools/dialogbisector.h @@ -171,7 +171,7 @@ inline QString DialogBisector::getTypeLine() const inline QString DialogBisector::getFormula() const { - return formula; + return qApp->FormulaFromUser(formula); } inline quint32 DialogBisector::getFirstPointId() const diff --git a/src/app/dialogs/tools/dialogbisector.ui b/src/app/dialogs/tools/dialogbisector.ui index 63e42279d..b6285890c 100644 --- a/src/app/dialogs/tools/dialogbisector.ui +++ b/src/app/dialogs/tools/dialogbisector.ui @@ -7,7 +7,7 @@ 0 0 480 - 485 + 587 @@ -379,6 +379,9 @@ + + true + diff --git a/src/app/dialogs/tools/dialogcutarc.cpp b/src/app/dialogs/tools/dialogcutarc.cpp index 1dabfc556..010315fba 100644 --- a/src/app/dialogs/tools/dialogcutarc.cpp +++ b/src/app/dialogs/tools/dialogcutarc.cpp @@ -91,7 +91,7 @@ void DialogCutArc::setArcId(const quint32 &value, const quint32 &id) //--------------------------------------------------------------------------------------------------------------------- void DialogCutArc::setFormula(const QString &value) { - formula = value; + formula = qApp->FormulaToUser(value); ui->lineEditFormula->setText(formula); } diff --git a/src/app/dialogs/tools/dialogcutarc.h b/src/app/dialogs/tools/dialogcutarc.h index 2005f245e..060de71ac 100644 --- a/src/app/dialogs/tools/dialogcutarc.h +++ b/src/app/dialogs/tools/dialogcutarc.h @@ -64,7 +64,7 @@ public: * @brief getFormula return string with formula length * @return formula */ - QString getFormula() const {return formula;} + QString getFormula() const {return qApp->FormulaFromUser(formula);} /** * @brief setFormula set string with formula length * @param value string with formula diff --git a/src/app/dialogs/tools/dialogcutarc.ui b/src/app/dialogs/tools/dialogcutarc.ui index e99c0f060..6939c61d4 100644 --- a/src/app/dialogs/tools/dialogcutarc.ui +++ b/src/app/dialogs/tools/dialogcutarc.ui @@ -7,7 +7,7 @@ 0 0 507 - 375 + 493 @@ -306,6 +306,9 @@ + + true + diff --git a/src/app/dialogs/tools/dialogcutspline.cpp b/src/app/dialogs/tools/dialogcutspline.cpp index ff3026fac..d21bf80d1 100644 --- a/src/app/dialogs/tools/dialogcutspline.cpp +++ b/src/app/dialogs/tools/dialogcutspline.cpp @@ -70,7 +70,7 @@ void DialogCutSpline::setPointName(const QString &value) //--------------------------------------------------------------------------------------------------------------------- void DialogCutSpline::setFormula(const QString &value) { - formula = value; + formula = qApp->FormulaToUser(value); ui->lineEditFormula->setText(formula); } diff --git a/src/app/dialogs/tools/dialogcutspline.h b/src/app/dialogs/tools/dialogcutspline.h index 9bcff379e..1996337f9 100644 --- a/src/app/dialogs/tools/dialogcutspline.h +++ b/src/app/dialogs/tools/dialogcutspline.h @@ -123,7 +123,7 @@ inline QString DialogCutSpline::getPointName() const inline QString DialogCutSpline::getFormula() const { - return formula; + return qApp->FormulaFromUser(formula); } inline quint32 DialogCutSpline::getSplineId() const diff --git a/src/app/dialogs/tools/dialogcutspline.ui b/src/app/dialogs/tools/dialogcutspline.ui index 7f077fd95..658fcdb5a 100644 --- a/src/app/dialogs/tools/dialogcutspline.ui +++ b/src/app/dialogs/tools/dialogcutspline.ui @@ -7,7 +7,7 @@ 0 0 520 - 461 + 546 @@ -306,6 +306,9 @@ + + true + diff --git a/src/app/dialogs/tools/dialogcutsplinepath.cpp b/src/app/dialogs/tools/dialogcutsplinepath.cpp index 35d707aa7..cf1d3d5ed 100644 --- a/src/app/dialogs/tools/dialogcutsplinepath.cpp +++ b/src/app/dialogs/tools/dialogcutsplinepath.cpp @@ -71,7 +71,7 @@ void DialogCutSplinePath::setPointName(const QString &value) //--------------------------------------------------------------------------------------------------------------------- void DialogCutSplinePath::setFormula(const QString &value) { - formula = value; + formula = qApp->FormulaToUser(value); ui->lineEditFormula->setText(formula); } diff --git a/src/app/dialogs/tools/dialogcutsplinepath.h b/src/app/dialogs/tools/dialogcutsplinepath.h index 6614d5b42..1e66bcae2 100644 --- a/src/app/dialogs/tools/dialogcutsplinepath.h +++ b/src/app/dialogs/tools/dialogcutsplinepath.h @@ -123,7 +123,7 @@ inline QString DialogCutSplinePath::getPointName() const inline QString DialogCutSplinePath::getFormula() const { - return formula; + return qApp->FormulaFromUser(formula); } inline quint32 DialogCutSplinePath::getSplinePathId() const diff --git a/src/app/dialogs/tools/dialogcutsplinepath.ui b/src/app/dialogs/tools/dialogcutsplinepath.ui index bf7f8b100..c37d9b06b 100644 --- a/src/app/dialogs/tools/dialogcutsplinepath.ui +++ b/src/app/dialogs/tools/dialogcutsplinepath.ui @@ -7,7 +7,7 @@ 0 0 605 - 397 + 499 @@ -306,6 +306,9 @@ + + true + diff --git a/src/app/dialogs/tools/dialogendline.cpp b/src/app/dialogs/tools/dialogendline.cpp index f143d9fb9..edb12a430 100644 --- a/src/app/dialogs/tools/dialogendline.cpp +++ b/src/app/dialogs/tools/dialogendline.cpp @@ -56,7 +56,6 @@ DialogEndLine::DialogEndLine(const VContainer *data, QWidget *parent) InitArrow(ui); - connect(ui->toolButtonPutHere, &QPushButton::clicked, this, &DialogEndLine::PutHere); connect(ui->listWidget, &QListWidget::itemDoubleClicked, this, &DialogEndLine::PutVal); connect(ui->toolButtonEqual, &QPushButton::clicked, this, &DialogEndLine::EvalFormula); @@ -116,7 +115,7 @@ void DialogEndLine::setTypeLine(const QString &value) //--------------------------------------------------------------------------------------------------------------------- void DialogEndLine::setFormula(const QString &value) { - formula = value; + formula = qApp->FormulaToUser(value); // increase height if needed. TODO : see if I can get the max number of caracters in one line // of this PlainTextEdit to change 80 to this value if (formula.length() > 80) @@ -164,6 +163,7 @@ void DialogEndLine::SaveData() formula.replace("\n"," "); angle = ui->doubleSpinBoxAngle->value(); basePointId = getCurrentObjectId(ui->comboBoxBasePoint); + emit DialogClosed(QDialog::Accepted); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/dialogs/tools/dialogendline.h b/src/app/dialogs/tools/dialogendline.h index 38a4a6ba1..1d74fd093 100644 --- a/src/app/dialogs/tools/dialogendline.h +++ b/src/app/dialogs/tools/dialogendline.h @@ -174,7 +174,7 @@ inline QString DialogEndLine::getTypeLine() const inline QString DialogEndLine::getFormula() const { - return formula; + return qApp->FormulaFromUser(formula); } inline qreal DialogEndLine::getAngle() const diff --git a/src/app/dialogs/tools/dialogendline.ui b/src/app/dialogs/tools/dialogendline.ui index fe66d84b3..40a932257 100644 --- a/src/app/dialogs/tools/dialogendline.ui +++ b/src/app/dialogs/tools/dialogendline.ui @@ -10,6 +10,12 @@ 522 + + + 0 + 0 + + Point in the end of a line @@ -515,6 +521,12 @@ + + + 0 + 0 + + Size and height @@ -525,6 +537,12 @@ + + + 0 + 0 + + Standard table @@ -532,6 +550,12 @@ + + + 0 + 0 + + Increments @@ -542,6 +566,12 @@ true + + + 0 + 0 + + Length of lines @@ -552,6 +582,12 @@ true + + + 0 + 0 + + Length of arcs @@ -562,6 +598,12 @@ true + + + 0 + 0 + + Length of curves @@ -582,8 +624,17 @@ - - + + + 0 + 0 + + + + Qt::PlainText + + + true diff --git a/src/app/dialogs/tools/dialognormal.cpp b/src/app/dialogs/tools/dialognormal.cpp index 9cfc40b89..708b97d56 100644 --- a/src/app/dialogs/tools/dialognormal.cpp +++ b/src/app/dialogs/tools/dialognormal.cpp @@ -128,7 +128,7 @@ void DialogNormal::setAngle(const qreal &value) //--------------------------------------------------------------------------------------------------------------------- void DialogNormal::setFormula(const QString &value) { - formula = value; + formula = qApp->FormulaToUser(value); ui->lineEditFormula->setText(formula); } diff --git a/src/app/dialogs/tools/dialognormal.h b/src/app/dialogs/tools/dialognormal.h index ad0658afe..ad8147cc9 100644 --- a/src/app/dialogs/tools/dialognormal.h +++ b/src/app/dialogs/tools/dialognormal.h @@ -175,7 +175,7 @@ inline QString DialogNormal::getTypeLine() const inline QString DialogNormal::getFormula() const { - return formula; + return qApp->FormulaFromUser(formula); } inline qreal DialogNormal::getAngle() const diff --git a/src/app/dialogs/tools/dialognormal.ui b/src/app/dialogs/tools/dialognormal.ui index 228732a09..b88a49da9 100644 --- a/src/app/dialogs/tools/dialognormal.ui +++ b/src/app/dialogs/tools/dialognormal.ui @@ -7,7 +7,7 @@ 0 0 488 - 594 + 732 @@ -554,6 +554,9 @@ + + true + diff --git a/src/app/dialogs/tools/dialogpointofcontact.ui b/src/app/dialogs/tools/dialogpointofcontact.ui index 21c9a4cf3..17d34bba4 100644 --- a/src/app/dialogs/tools/dialogpointofcontact.ui +++ b/src/app/dialogs/tools/dialogpointofcontact.ui @@ -7,7 +7,7 @@ 0 0 476 - 450 + 653 @@ -394,6 +394,9 @@ + + true + diff --git a/src/app/dialogs/tools/dialogshoulderpoint.cpp b/src/app/dialogs/tools/dialogshoulderpoint.cpp index 5d5d00d92..c4a4bef38 100644 --- a/src/app/dialogs/tools/dialogshoulderpoint.cpp +++ b/src/app/dialogs/tools/dialogshoulderpoint.cpp @@ -145,7 +145,7 @@ void DialogShoulderPoint::setP1Line(const quint32 &value, const quint32 &id) //--------------------------------------------------------------------------------------------------------------------- void DialogShoulderPoint::setFormula(const QString &value) { - formula = value; + formula = qApp->FormulaToUser(value); ui->lineEditFormula->setText(formula); } diff --git a/src/app/dialogs/tools/dialogshoulderpoint.h b/src/app/dialogs/tools/dialogshoulderpoint.h index ba9f57454..933c4f96b 100644 --- a/src/app/dialogs/tools/dialogshoulderpoint.h +++ b/src/app/dialogs/tools/dialogshoulderpoint.h @@ -176,7 +176,7 @@ inline QString DialogShoulderPoint::getTypeLine() const inline QString DialogShoulderPoint::getFormula() const { - return formula; + return qApp->FormulaFromUser(formula); } inline quint32 DialogShoulderPoint::getP1Line() const diff --git a/src/app/dialogs/tools/dialogshoulderpoint.ui b/src/app/dialogs/tools/dialogshoulderpoint.ui index 3febf8f68..df2fe865c 100644 --- a/src/app/dialogs/tools/dialogshoulderpoint.ui +++ b/src/app/dialogs/tools/dialogshoulderpoint.ui @@ -7,7 +7,7 @@ 0 0 473 - 485 + 686 @@ -415,6 +415,9 @@ + + true + diff --git a/src/app/dialogs/tools/dialogtool.cpp b/src/app/dialogs/tools/dialogtool.cpp index 718475811..f0cbb096c 100644 --- a/src/app/dialogs/tools/dialogtool.cpp +++ b/src/app/dialogs/tools/dialogtool.cpp @@ -32,6 +32,7 @@ #include "../../tools/vabstracttool.h" #include +#include "../../../libs/qmuparser/qmuparsererror.h" // TODO : for issue #79 // replace lineEditFormula -> plainTextEditFormula @@ -370,20 +371,28 @@ void DialogTool::Eval(QLineEdit *edit, bool &flag, QTimer *timer, QLabel *label) } else { - Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(edit->text(), &errorMsg); - if (errorMsg.isEmpty() == false) + try + { + const QString formula = qApp->FormulaFromUser(edit->text()); + Calculator cal(data); + const qreal result = cal.EvalFormula(formula); + + label->setText(QString().setNum(result)); + flag = true; + palette.setColor(labelEditFormula->foregroundRole(), QColor(76, 76, 76)); + emit ToolTip(""); + } + catch(qmu::QmuParserError &e) { label->setText(tr("Error")); flag = false; palette.setColor(labelEditFormula->foregroundRole(), Qt::red); - } - else - { - label->setText(QString().setNum(result)); - flag = true; - palette.setColor(labelEditFormula->foregroundRole(), QColor(76, 76, 76)); + emit ToolTip("Parser error: "+e.GetMsg()); + qDebug() << "\nMath parser error:\n" + << "--------------------------------------\n" + << "Message: " << e.GetMsg() << "\n" + << "Expression: " << e.GetExpr() << "\n" + << "--------------------------------------"; } } CheckState(); @@ -758,8 +767,9 @@ void DialogTool::ValChenged(int row) } if (radioButtonStandardTable->isChecked()) { - VMeasurement stable = data->GetMeasurement(item->text()); - QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetValueStandardTableRow(item->text())) + QString name = qApp->VarFromUser(item->text()); + VMeasurement stable = data->GetMeasurement(name); + QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetValueStandardTableRow(name)) .arg(stable.GetDescription()); labelDescription->setText(desc); return; @@ -774,22 +784,22 @@ void DialogTool::ValChenged(int row) } if (radioButtonLengthLine->isChecked()) { - QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetLine(item->text())) + QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetLine(qApp->VarFromUser(item->text()))) .arg(tr("Line length")); labelDescription->setText(desc); return; } if (radioButtonLengthArc->isChecked()) { - QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetLengthArc(item->text())) + QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetLengthArc(qApp->VarFromUser(item->text()))) .arg(tr("Arc length")); labelDescription->setText(desc); return; } if (radioButtonLengthCurve->isChecked()) { - QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetLengthSpline(item->text())) - .arg(tr("Curve length")); + QString desc = QString("%1(%2) - %3").arg(item->text()) + .arg(data->GetLengthSpline(qApp->VarFromUser(item->text()))).arg(tr("Curve length")); labelDescription->setText(desc); return; } @@ -844,7 +854,7 @@ void DialogTool::ShowVariable(const QHash *var) while (i.hasNext()) { i.next(); - map.insert(i.key(), i.value()); + map.insert(qApp->VarToUser(i.key()), i.value()); } QMapIterator iMap(map); diff --git a/src/app/dialogs/tools/dialogtool.h b/src/app/dialogs/tools/dialogtool.h index 8a3c1f23e..050701cc8 100644 --- a/src/app/dialogs/tools/dialogtool.h +++ b/src/app/dialogs/tools/dialogtool.h @@ -464,7 +464,8 @@ protected: } else { - radioButtonSizeGrowth->setVisible(false); + radioButtonSizeGrowth->setEnabled(false); + radioButtonStandardTable->setChecked(true); Measurements(); } connect(radioButtonStandardTable, &QRadioButton::clicked, this, &DialogTool::Measurements); diff --git a/src/app/geometry/varc.cpp b/src/app/geometry/varc.cpp index 9d3441b0b..1f5b3710a 100644 --- a/src/app/geometry/varc.cpp +++ b/src/app/geometry/varc.cpp @@ -45,7 +45,7 @@ VArc::VArc (VPointF center, qreal radius, QString formulaRadius, qreal f1, QStri : VGObject(GObject::Arc, idObject, mode), f1(f1), formulaF1(formulaF1), f2(f2), formulaF2(formulaF2), radius(radius), formulaRadius(formulaRadius), center(center) { - _name = QString ("Arc_%1").arg(this->GetCenter().name()); + _name = QString (arc_+"%1").arg(this->GetCenter().name()); } //--------------------------------------------------------------------------------------------------------------------- @@ -188,5 +188,5 @@ QPointF VArc::CutArc(const qreal &length, VArc &arc1, VArc &arc2) const void VArc::setId(const quint32 &id) { _id = id; - _name = QString ("Arc_%1_%2").arg(center.name()).arg(id); + _name = QString (arc_+"%1_%2").arg(center.name()).arg(id); } diff --git a/src/app/geometry/vspline.cpp b/src/app/geometry/vspline.cpp index fda0556d4..ad568b37c 100644 --- a/src/app/geometry/vspline.cpp +++ b/src/app/geometry/vspline.cpp @@ -565,7 +565,7 @@ qreal VSpline::CalcSqDistance (qreal x1, qreal y1, qreal x2, qreal y2) //--------------------------------------------------------------------------------------------------------------------- void VSpline::CreateName() { - _name = QString("Spl_%1_%2").arg(this->GetP1().name(), this->GetP4().name()); + _name = QString(spl_+"%1_%2").arg(this->GetP1().name(), this->GetP4().name()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/geometry/vsplinepath.cpp b/src/app/geometry/vsplinepath.cpp index a51362d2d..7cf4a8ae3 100644 --- a/src/app/geometry/vsplinepath.cpp +++ b/src/app/geometry/vsplinepath.cpp @@ -44,7 +44,7 @@ VSplinePath::VSplinePath(const VSplinePath &splPath) void VSplinePath::append(const VSplinePoint &point) { path.append(point); - _name = QString("SplPath"); + _name = splPath; _name.append(QString("_%1").arg(path.first().P().name())); if (path.size() > 1) { diff --git a/src/app/options.cpp b/src/app/options.cpp new file mode 100644 index 000000000..0cd5de7f8 --- /dev/null +++ b/src/app/options.cpp @@ -0,0 +1,203 @@ +/************************************************************************ + ** + ** @file options.cpp + ** @author Roman Telezhynskyi + ** @date 12 5, 2014 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2014 Valentina project + ** 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 . + ** + *************************************************************************/ + +#include "options.h" + +// Keep synchronize all names with initialization in VApllication class. +//measurements +const QString headGirth_M = QStringLiteral("head_girth"); +const QString midNeckGirth_M = QStringLiteral("mid_neck_girth"); +const QString neckBaseGirth_M = QStringLiteral("neck_base_girth"); +const QString headAndNeckLength_M = QStringLiteral("head_and_neck_length"); +const QString centerFrontWaistLength_M = QStringLiteral("center_front_waist_length"); +const QString centerBackWaistLength_M = QStringLiteral("center_back_waist_length"); +const QString shoulderLength_M = QStringLiteral("shoulder_length"); +const QString sideWaistLength_M = QStringLiteral("side_waist_length"); +const QString trunkLength_M = QStringLiteral("trunk_length"); +const QString shoulderGirth_M = QStringLiteral("shoulder_girth"); +const QString upperChestGirth_M = QStringLiteral("upper_chest_girth"); +const QString bustGirth_M = QStringLiteral("bust_girth"); +const QString underBustGirth_M = QStringLiteral("under_bust_girth"); +const QString waistGirth_M = QStringLiteral("waist_girth"); +const QString highHipGirth_M = QStringLiteral("high_hip_girth"); +const QString hipGirth_M = QStringLiteral("hip_girth"); +const QString upperFrontChestWidth_M = QStringLiteral("upper_front_chest_width"); +const QString frontChestWidth_M = QStringLiteral("front_chest_width"); +const QString acrossFrontShoulderWidth_M = QStringLiteral("across_front_shoulder_width"); +const QString acrossBackShoulderWidth_M = QStringLiteral("across_back_shoulder_width"); +const QString upperBackWidth_M = QStringLiteral("upper_back_width"); +const QString backWidth_M = QStringLiteral("back_width"); +const QString bustpointToBustpoint_M = QStringLiteral("bustpoint_to_bustpoint"); +const QString halterBustpointToBustpoint_M = QStringLiteral("halter_bustpoint_to_bustpoint"); +const QString neckToBustpoint_M = QStringLiteral("neck_to_bustpoint"); +const QString crotchLength_M = QStringLiteral("crotch_length"); +const QString riseHeight_M = QStringLiteral("rise_height"); +const QString shoulderDrop_M = QStringLiteral("shoulder_drop"); +const QString shoulderSlopeDegrees_M = QStringLiteral("shoulder_slope_degrees"); +const QString frontShoulderSlopeLength_M = QStringLiteral("front_shoulder_slope_length"); +const QString backShoulderSlopeLength_M = QStringLiteral("back_shoulder_slope_length"); +const QString frontShoulderToWaistLength_M = QStringLiteral("front_shoulder_to_waist_length"); +const QString backShoulderToWaistLength_M = QStringLiteral("back_shoulder_to_waist_length"); +const QString frontNeckArc_M = QStringLiteral("front_neck_arc"); +const QString backNeckArc_M = QStringLiteral("back_neck_arc"); +const QString frontUpperChestArc_M = QStringLiteral("front_upper_chest_arc"); +const QString backUpperChestArc_M = QStringLiteral("back_upper_chest_arc"); +const QString frontWaistArc_M = QStringLiteral("front_waist_arc"); +const QString backWaistArc_M = QStringLiteral("back_waist_arc"); +const QString frontUpperHipArc_M = QStringLiteral("front_upper_hip_arc"); +const QString backUpperHipArc_M = QStringLiteral("back_upper_hip_arc"); +const QString frontHipArc_M = QStringLiteral("front_hip_arc"); +const QString backHipArc_M = QStringLiteral("back_hip_arc"); +const QString chestSlope_M = QStringLiteral("chest_slope"); +const QString backSlope_M = QStringLiteral("back_slope"); +const QString frontWaistSlope_M = QStringLiteral("front_waist_slope"); +const QString backWaistSlope_M = QStringLiteral("back_waist_slope"); +const QString frontNeckToUpperChestHeight_M = QStringLiteral("front_neck_to_upper_chest_height"); +const QString frontNeckToBustHeight_M = QStringLiteral("front_neck_to_bust_height"); +const QString armscyeGirth_M = QStringLiteral("armscye_girth"); +const QString elbowGirth_M = QStringLiteral("elbow_girth"); +const QString upperArmGirth_M = QStringLiteral("upper_arm_girth"); +const QString wristGirth_M = QStringLiteral("wrist_girth"); +const QString scyeDepth_M = QStringLiteral("scye_depth"); +const QString shoulderAndArmLength_M = QStringLiteral("shoulder_and_arm_length"); +const QString underarmLength_M = QStringLiteral("underarm_length"); +const QString cervicaleToWristLength_M = QStringLiteral("cervicale_to_wrist_length"); +const QString shoulderToElbowLength_M = QStringLiteral("shoulder_to_elbow_length"); +const QString armLength_M = QStringLiteral("arm_length"); +const QString handWidth_M = QStringLiteral("hand_width"); +const QString handLength_M = QStringLiteral("hand_length"); +const QString handGirth_M = QStringLiteral("hand_girth"); +const QString thighGirth_M = QStringLiteral("thigh_girth"); +const QString midThighGirth_M = QStringLiteral("mid_thigh_girth"); +const QString kneeGirth_M = QStringLiteral("knee_girth"); +const QString calfGirth_M = QStringLiteral("calf_girth"); +const QString ankleGirth_M = QStringLiteral("ankle_girth"); +const QString kneeHeight_M = QStringLiteral("knee_height"); +const QString ankleHeight_M = QStringLiteral("ankle_height"); +const QString footWidth_M = QStringLiteral("foot_width"); +const QString footLength_M = QStringLiteral("foot_length"); +const QString height_M = QStringLiteral("height"); +const QString cervicaleHeight_M = QStringLiteral("cervicale_height"); +const QString cervicaleToKneeHeight_M = QStringLiteral("cervicale_to_knee_height"); +const QString waistHeight_M = QStringLiteral("waist_height"); +const QString highHipHeight_M = QStringLiteral("high_hip_height"); +const QString hipHeight_M = QStringLiteral("hip_height"); +const QString waistToHipHeight_M = QStringLiteral("waist_to_hip_height"); +const QString waistToKneeHeight_M = QStringLiteral("waist_to_knee_height"); +const QString crotchHeight_M = QStringLiteral("crotch_height"); +//extended measurements +const QString size_M = QStringLiteral("size"); +const QString heightFrontNeckBasePoint_M = QStringLiteral("height_front_neck_base_point"); +const QString heightBaseNeckSidePoint_M = QStringLiteral("height_base_neck_side_point"); +const QString heightShoulderPoint_M = QStringLiteral("height_shoulder_point"); +const QString heightNipplePoint_M = QStringLiteral("height_nipple_point"); +const QString heightBackAngleAxilla_M = QStringLiteral("height_back_angle_axilla"); +const QString heightScapularPoint_M = QStringLiteral("height_scapular_point"); +const QString heightUnderButtockFolds_M = QStringLiteral("height_under_buttock_folds"); +const QString hipsExcludingProtrudingAbdomen_M = QStringLiteral("hips_excluding_protruding_abdomen"); +const QString girthFootInstep_M = QStringLiteral("girth_foot_instep"); +const QString sideWaistToFloor_M = QStringLiteral("side_waist_to_floor"); +const QString frontWaistToFloor_M = QStringLiteral("front_waist_to_floor"); +const QString arcThroughGroinArea_M = QStringLiteral("arc_through_groin_area"); +const QString waistToPlaneSeat_M = QStringLiteral("waist_to_plane_seat"); +const QString neckToRadialPoint_M = QStringLiteral("neck_to_radial_point"); +const QString neckToThirdFinger_M = QStringLiteral("neck_to_third_finger"); +const QString neckToFirstLineChestCircumference_M = QStringLiteral("neck_to_first_line_chest_circumference"); +const QString frontWaistLength_M = QStringLiteral("front_waist_length"); +const QString arcThroughShoulderJoint_M = QStringLiteral("arc_through_shoulder_joint"); +const QString neckToBackLineChestCircumference_M = QStringLiteral("neck_to_back_line_chest_circumference"); +const QString waistToNeckSide_M = QStringLiteral("waist_to_neck_side"); +const QString arcLengthUpperBody_M = QStringLiteral("arc_length_upper_body"); +const QString chestWidth_M = QStringLiteral("chest_width"); +const QString anteroposteriorDiameterHands_M = QStringLiteral("anteroposterior_diameter_hands"); +const QString heightClavicularPoint_M = QStringLiteral("height_clavicular_point"); +const QString heightArmholeSlash_M = QStringLiteral("height_armhole_slash"); +const QString slashShoulderHeight_M = QStringLiteral("slash_shoulder_height"); +const QString halfGirthNeck_M = QStringLiteral("half_girth_neck"); +const QString halfGirthNeckForShirts_M = QStringLiteral("half_girth_neck_for_shirts"); +const QString halfGirthChestFirst_M = QStringLiteral("half_girth_chest_first"); +const QString halfGirthChestSecond_M = QStringLiteral("half_girth_chest_second"); +const QString halfGirthChestThird_M = QStringLiteral("half_girth_chest_third"); +const QString halfGirthWaist_M = QStringLiteral("half_girth_waist"); +const QString halfGirthHipsConsideringProtrudingAbdomen_M += QStringLiteral("half_girth_hips_considering_protruding_abdomen"); +const QString halfGirthHipsExcludingProtrudingAbdomen_M += QStringLiteral("half_girth_hips_excluding_protruding_abdomen"); +const QString girthKneeFlexedFeet_M = QStringLiteral("girth_knee_flexed_feet"); +const QString neckTransverseDiameter_M = QStringLiteral("neck_transverse_diameter"); +const QString frontSlashShoulderHeight_M = QStringLiteral("front_slash_shoulder_height"); +const QString neckToFrontWaistLine_M = QStringLiteral("neck_to_front_waist_line"); +const QString handVerticalDiameter_M = QStringLiteral("hand_vertical_diameter"); +const QString neckToKneePoint_M = QStringLiteral("neck_to_knee_point"); +const QString waistToKnee_M = QStringLiteral("waist_to_knee"); +const QString shoulderHeight_M = QStringLiteral("shoulder_height"); +const QString headHeight_M = QStringLiteral("head_height"); +const QString bodyPosition_M = QStringLiteral("body_position"); +const QString arcBehindShoulderGirdle_M = QStringLiteral("arc_behind_shoulder_girdle"); +const QString neckToNeckBase_M = QStringLiteral("neck_to_neck_base"); +const QString depthWaistFirst_M = QStringLiteral("depth_waist_first"); +const QString depthWaistSecond_M = QStringLiteral("depth_waist_second"); + +//variables +const QString line_ = QStringLiteral("Line_"); +const QString angleLine_ = QStringLiteral("AngleLine_"); +const QString arc_ = QStringLiteral("Arc_"); +const QString spl_ = QStringLiteral("Spl_"); +const QString splPath = QStringLiteral("splPath"); + +//functions +const QString sin_F = QStringLiteral("sin"); +const QString cos_F = QStringLiteral("cos"); +const QString tan_F = QStringLiteral("tan"); +const QString asin_F = QStringLiteral("asin"); +const QString acos_F = QStringLiteral("acos"); +const QString atan_F = QStringLiteral("atan"); +const QString sinh_F = QStringLiteral("sinh"); +const QString cosh_F = QStringLiteral("cosh"); +const QString tanh_F = QStringLiteral("tanh"); +const QString asinh_F = QStringLiteral("asinh"); +const QString acosh_F = QStringLiteral("acosh"); +const QString atanh_F = QStringLiteral("atanh"); +const QString log2_F = QStringLiteral("log2"); +const QString log10_F = QStringLiteral("log10"); +const QString log_F = QStringLiteral("log"); +const QString ln_F = QStringLiteral("ln"); +const QString exp_F = QStringLiteral("exp"); +const QString sqrt_F = QStringLiteral("sqrt"); +const QString sign_F = QStringLiteral("sign"); +const QString rint_F = QStringLiteral("rint"); +const QString abs_F = QStringLiteral("abs"); +const QString min_F = QStringLiteral("min"); +const QString max_F = QStringLiteral("max"); +const QString sum_F = QStringLiteral("sum"); +const QString avg_F = QStringLiteral("avg"); + +// Postfix operators +const QString cm_Oprt = QStringLiteral("cm"); +const QString mm_Oprt = QStringLiteral("mm"); +const QString in_Oprt = QStringLiteral("in"); diff --git a/src/app/options.h b/src/app/options.h index 90caecb8a..7bcd53bc1 100644 --- a/src/app/options.h +++ b/src/app/options.h @@ -22,7 +22,7 @@ ** 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 . + ** along with Valentina. If not, see #include #include +#include #define SceneSize 50000 -extern const QString translationsPath; - namespace Valentina { /** @@ -113,4 +112,175 @@ namespace Pattern } Q_DECLARE_OPERATORS_FOR_FLAGS( Pattern::Measurements ) +// measurements +extern const QString headGirth_M; +extern const QString midNeckGirth_M; +extern const QString neckBaseGirth_M; +extern const QString headAndNeckLength_M; +extern const QString centerFrontWaistLength_M; +extern const QString centerBackWaistLength_M; +extern const QString shoulderLength_M; +extern const QString sideWaistLength_M; +extern const QString trunkLength_M; +extern const QString shoulderGirth_M; +extern const QString upperChestGirth_M; +extern const QString bustGirth_M; +extern const QString underBustGirth_M; +extern const QString waistGirth_M; +extern const QString highHipGirth_M; +extern const QString hipGirth_M; +extern const QString upperFrontChestWidth_M; +extern const QString frontChestWidth_M; +extern const QString acrossFrontShoulderWidth_M; +extern const QString acrossBackShoulderWidth_M; +extern const QString upperBackWidth_M; +extern const QString backWidth_M; +extern const QString bustpointToBustpoint_M; +extern const QString halterBustpointToBustpoint_M; +extern const QString neckToBustpoint_M; +extern const QString crotchLength_M; +extern const QString riseHeight_M; +extern const QString shoulderDrop_M; +extern const QString shoulderSlopeDegrees_M; +extern const QString frontShoulderSlopeLength_M; +extern const QString backShoulderSlopeLength_M; +extern const QString frontShoulderToWaistLength_M; +extern const QString backShoulderToWaistLength_M; +extern const QString frontNeckArc_M; +extern const QString backNeckArc_M; +extern const QString frontUpperChestArc_M; +extern const QString backUpperChestArc_M; +extern const QString frontWaistArc_M; +extern const QString backWaistArc_M; +extern const QString frontUpperHipArc_M; +extern const QString backUpperHipArc_M; +extern const QString frontHipArc_M; +extern const QString backHipArc_M; +extern const QString chestSlope_M; +extern const QString backSlope_M; +extern const QString frontWaistSlope_M; +extern const QString backWaistSlope_M; +extern const QString frontNeckToUpperChestHeight_M; +extern const QString frontNeckToBustHeight_M; +extern const QString armscyeGirth_M; +extern const QString elbowGirth_M; +extern const QString upperArmGirth_M; +extern const QString wristGirth_M; +extern const QString scyeDepth_M; +extern const QString shoulderAndArmLength_M; +extern const QString underarmLength_M; +extern const QString cervicaleToWristLength_M; +extern const QString shoulderToElbowLength_M; +extern const QString armLength_M; +extern const QString handWidth_M; +extern const QString handLength_M; +extern const QString handGirth_M; +extern const QString thighGirth_M; +extern const QString midThighGirth_M; +extern const QString kneeGirth_M; +extern const QString calfGirth_M; +extern const QString ankleGirth_M; +extern const QString kneeHeight_M; +extern const QString ankleHeight_M; +extern const QString footWidth_M; +extern const QString footLength_M; +extern const QString height_M; +extern const QString cervicaleHeight_M; +extern const QString cervicaleToKneeHeight_M; +extern const QString waistHeight_M; +extern const QString highHipHeight_M; +extern const QString hipHeight_M; +extern const QString waistToHipHeight_M; +extern const QString waistToKneeHeight_M; +extern const QString crotchHeight_M; +//extended measurements +extern const QString size_M; +extern const QString heightFrontNeckBasePoint_M; +extern const QString heightBaseNeckSidePoint_M; +extern const QString heightShoulderPoint_M; +extern const QString heightNipplePoint_M; +extern const QString heightBackAngleAxilla_M; +extern const QString heightScapularPoint_M; +extern const QString heightUnderButtockFolds_M; +extern const QString hipsExcludingProtrudingAbdomen_M; +extern const QString girthFootInstep_M; +extern const QString sideWaistToFloor_M; +extern const QString frontWaistToFloor_M; +extern const QString arcThroughGroinArea_M; +extern const QString waistToPlaneSeat_M; +extern const QString neckToRadialPoint_M; +extern const QString neckToThirdFinger_M; +extern const QString neckToFirstLineChestCircumference_M; +extern const QString frontWaistLength_M; +extern const QString arcThroughShoulderJoint_M; +extern const QString neckToBackLineChestCircumference_M; +extern const QString waistToNeckSide_M; +extern const QString arcLengthUpperBody_M; +extern const QString chestWidth_M; +extern const QString anteroposteriorDiameterHands_M; +extern const QString heightClavicularPoint_M; +extern const QString heightArmholeSlash_M; +extern const QString slashShoulderHeight_M; +extern const QString halfGirthNeck_M; +extern const QString halfGirthNeckForShirts_M; +extern const QString halfGirthChestFirst_M; +extern const QString halfGirthChestSecond_M; +extern const QString halfGirthChestThird_M; +extern const QString halfGirthWaist_M; +extern const QString halfGirthHipsConsideringProtrudingAbdomen_M; +extern const QString halfGirthHipsExcludingProtrudingAbdomen_M; +extern const QString girthKneeFlexedFeet_M; +extern const QString neckTransverseDiameter_M; +extern const QString frontSlashShoulderHeight_M; +extern const QString neckToFrontWaistLine_M; +extern const QString handVerticalDiameter_M; +extern const QString neckToKneePoint_M; +extern const QString waistToKnee_M; +extern const QString shoulderHeight_M; +extern const QString headHeight_M; +extern const QString bodyPosition_M; +extern const QString arcBehindShoulderGirdle_M; +extern const QString neckToNeckBase_M; +extern const QString depthWaistFirst_M; +extern const QString depthWaistSecond_M; + +// variables name +extern const QString line_; +extern const QString angleLine_; +extern const QString arc_; +extern const QString spl_; +extern const QString splPath; + +// functions +extern const QString sin_F; +extern const QString cos_F; +extern const QString tan_F; +extern const QString asin_F; +extern const QString acos_F; +extern const QString atan_F; +extern const QString sinh_F; +extern const QString cosh_F; +extern const QString tanh_F; +extern const QString asinh_F; +extern const QString acosh_F; +extern const QString atanh_F; +extern const QString log2_F; +extern const QString log10_F; +extern const QString log_F; +extern const QString ln_F; +extern const QString exp_F; +extern const QString sqrt_F; +extern const QString sign_F; +extern const QString rint_F; +extern const QString abs_F; +extern const QString min_F; +extern const QString max_F; +extern const QString sum_F; +extern const QString avg_F; + +// Postfix operators +extern const QString cm_Oprt; +extern const QString mm_Oprt; +extern const QString in_Oprt; + #endif // OPTIONS_H diff --git a/src/app/share/resources/measurements.qrc b/src/app/share/resources/measurements.qrc new file mode 100644 index 000000000..ca34fddcf --- /dev/null +++ b/src/app/share/resources/measurements.qrc @@ -0,0 +1,5 @@ + + + tables/individual/individual.vit + + diff --git a/src/app/share/resources/schema/individual_measurements.xsd b/src/app/share/resources/schema/individual_measurements.xsd index 55cd7f9a3..17579d79f 100644 --- a/src/app/share/resources/schema/individual_measurements.xsd +++ b/src/app/share/resources/schema/individual_measurements.xsd @@ -3,7 +3,7 @@ - + @@ -24,42 +24,22 @@ - - - - - - - - - - - - - - - - - - - - @@ -70,452 +50,227 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + - - - - - @@ -526,102 +281,52 @@ - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -632,32 +337,17 @@ - - - - - - - - - - - - - - - @@ -668,72 +358,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -744,22 +399,12 @@ - - - - - - - - - - @@ -770,92 +415,298 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -872,9 +723,9 @@ - + - + diff --git a/src/app/share/resources/schema/pattern.xsd b/src/app/share/resources/schema/pattern.xsd index 1f1b0c00c..f6101313e 100644 --- a/src/app/share/resources/schema/pattern.xsd +++ b/src/app/share/resources/schema/pattern.xsd @@ -4,6 +4,7 @@ + @@ -229,4 +230,9 @@ + + + + + diff --git a/src/app/share/resources/schema/standard_measurements.xsd b/src/app/share/resources/schema/standard_measurements.xsd index 4ac6eb0d5..0d6a97418 100644 --- a/src/app/share/resources/schema/standard_measurements.xsd +++ b/src/app/share/resources/schema/standard_measurements.xsd @@ -3,6 +3,7 @@ + @@ -17,30 +18,967 @@ - + - + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - @@ -48,4 +986,9 @@ + + + + + diff --git a/src/app/share/resources/tables/individual/individual.vit b/src/app/share/resources/tables/individual/individual.vit new file mode 100644 index 000000000..aeba8037d --- /dev/null +++ b/src/app/share/resources/tables/individual/individual.vit @@ -0,0 +1,159 @@ + + + 0.1.0 + + + + 1900-01-01 + male + username@example.com + + + cm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/share/resources/tables/standard/GOST_man_ru.vst b/src/app/share/resources/tables/standard/GOST_man_ru.vst new file mode 100644 index 000000000..0240a7df5 --- /dev/null +++ b/src/app/share/resources/tables/standard/GOST_man_ru.vst @@ -0,0 +1,153 @@ + + + 0.1.0 + Типовые фигуры мужчин 1-й полнотной группы, обхват груди 100 см + mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/share/tables/individual/individual_en-us.vit b/src/app/share/tables/individual/individual_en-us.vit deleted file mode 100644 index 2e9ff0777..000000000 --- a/src/app/share/tables/individual/individual_en-us.vit +++ /dev/null @@ -1,108 +0,0 @@ - - - en-us - - - - 1900-01-01 - male - username@example.com - - - cm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/app/share/tables/individual/indivindual_ru.vit b/src/app/share/tables/individual/indivindual_ru.vit deleted file mode 100644 index b7329e774..000000000 --- a/src/app/share/tables/individual/indivindual_ru.vit +++ /dev/null @@ -1,108 +0,0 @@ - - - ru - - - - 1900-01-01 - male - username@example.com - - - mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/app/share/tables/standard/GOST_man_ru.vst b/src/app/share/tables/standard/GOST_man_ru.vst deleted file mode 100644 index ca4a1c00a..000000000 --- a/src/app/share/tables/standard/GOST_man_ru.vst +++ /dev/null @@ -1,87 +0,0 @@ - - - Типовые фигуры мужчин 1-й полнотной группы, обхват груди 100 см - mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/app/share/translations/valentina.ts b/src/app/share/translations/valentina.ts index a92995f42..b778dfae6 100644 --- a/src/app/share/translations/valentina.ts +++ b/src/app/share/translations/valentina.ts @@ -1,35 +1,35 @@ - + ConfigDialog - + Apply - + &Cancel - + &Ok - + Config Dialog - + Configuration - + Pattern @@ -37,171 +37,214 @@ ConfigurationPage - + Setup user interface language updated and will be used the next time start - + Save - + Auto-save modified pattern - + Interval: - + min - + Language - + GUI language - + Decimal separator parts - + With OS options (.) + + DialogAboutApp + + + About Valentina + + + + + Valentina version + + + + + Contributors + + + + + Based on Qt %2 (32 bit) + + + + + Built on %3 at %4 + + + + + Web site : %1 + + + + + Warning + + + + + Cannot open your default browser + + + DialogAlongLine - + Point along line - + Length - + Formula for the calculation of length of line - + Insert variable into the formula - - + + ... - + Calculate value - + Value of length - + _ - + Point label - + First point - + First point of line - + Second point - + Second point of line - + Type of line - + Show line from first point to this point - + Input data - + Size and height - + Standard table - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula - + Select second point of line @@ -209,151 +252,151 @@ DialogArc - + Arc - + Radius - + Formula for the calculation of radius of arc - + Insert variable into the formula - - - - - - + + + + + + ... - - - + + + Calculate value - + Value of radius - - - + + + _ - + First angle degree - + First angle of arc counterclockwise - + Insert variable into formula - + Value of first angle - + Second angle degree - + Second angle of arc counterclockwise - + Insert marked variable into formula - + Value of second angle - + Center point - + Select point of center of arc - + Input data - + Size and height - + Standard table - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Angle of lines - + Variables - + Value of angle of line. @@ -361,138 +404,138 @@ DialogBisector - + Bisector - + Length - + Calculation of length of bisector by using the formula - + Insert marked variable into the formula - - + + ... - + Calculate value - + Value of length - + _ - + Point label - + First point - + First point of angle - + Second point - + Second point of angle - + Third point - + Third point of angle - + Type of line - + Show line from second point to this point - + Input data - + Size and height - + Standard table - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula - + Select second point of angle - + Select third point of angle @@ -500,93 +543,93 @@ DialogCutArc - + Dialog - + Length - + Formula for the calculation of the spline - - + + ... - + Calculate value - + Value of length - + _ - + Arc - + Selected curve - + Point label - + Input data - + Size and height - + Standard table - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula @@ -594,93 +637,93 @@ DialogCutSpline - + Dialog - + Length - + Formula for the calculation of the spline - - + + ... - + Calculate value - + Value of length - + _ - + Curve - + Selected curve - + Point label - + Input data - + Size and height - + Standard table - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula @@ -688,93 +731,93 @@ DialogCutSplinePath - + Dialog - + Length - + Formula for the calculation of the curve length - - + + ... - + Calculate value - + Value of length - + _ - + Curve - + Selected curve path - + Point label - + Input data - + Size and height - + Standard table - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula @@ -782,180 +825,175 @@ DialogDetail - - + + Detail - + Bias X - + Bias Y - + Options - + Name of detail - + Seam allowance - + Width - + Closed - + Delete - + Got wrong scene object. Ignore. - - - Got wrong tools. Ignore. - - DialogEndLine - + Point in the end of a line - + Length - + Formula for calculation of length of line - - - - - - - - - - + + + + + + + + + + ... - + Calculate value - + Value of length - + _ - + Base point - + First point of line - + Point label - + Degree of angle - + Angle of line - + Type of line - + Show line from first point to this point - + Input data - + Size and height - + Standard table - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula @@ -963,50 +1001,50 @@ DialogHeight - + Dialog - + Point label - + Base point - - - - + + + + First point of line - + Second point of line - + Type of line - + Show line from first point to our point - + Select first point of line - + Select second point of line @@ -1014,242 +1052,402 @@ DialogHistory - + History - - + + Tool - + + + + + Can't create record. + + + + %1 - Base point - - + + %1_%2 - Line from point %1 to point %2 - + %3 - Point along line %1_%2 - + %1 - Point of shoulder - + %3 - normal to line %1_%2 - + %4 - bisector of angle %1_%2_%3 - + %5 - intersection of lines %1_%2 and %3_%4 - + Curve %1_%2 - + Arc with center in point %1 - + Curve point %1 - + %4 - point of contact of arc with the center in point %1 and line %2_%3 - + Point of perpendicular from point %1 to line %2_%3 - + Triangle: axis %1_%2, points %3 and %4 - + %1 - point of intersection %2 and %3 - + %1 - cut arc with center %2 - + %1 - cut curve %2_%3 - + %1 - cut curve path %2 - - - Got wrong tool type. Ignore. - - DialogIncrements - - + + Increments - - Sizes table + + Email - - + + Name - - + + The calculated value - - + + Base value - - + + In sizes - - - In growths - - - - - - - + + + Description - - + + + ... - + + + Measurements + + + + + Load another measurements table + + + + + Personal information + + + + + Given name + + + + + Family name + + + + + Birth date + + + + + Sex + + + + + + In heights + + + + Lines - + Line - - - + + + Length - + Curves - + Curve - + Arcs - + Arc - - Name_%1 + + + + File error. - - Can't convert toDouble value. + + male + + + + + female + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + Individual measurements (*.vit) + + + + + + Open file + + + + + + Wrong units. + + + + + Standard measurements (*.vst) + + + + + Name_%1 + + + + + DialogIndividualMeasurements + + + Individual measurements + + + + + Pattern piece name + + + + + Exist measurements + + + + + + Path: + + + + + + ... + + + + + New measurements + + + + + Units: + + + + + Could not create measurements file + + + + + Please try again or change file + + + + + + File error. + + + + + + Individual measurements (*.vit) + + + + + Open file + + + + + Where save measurements? + + + + + centimeter + + + + + inch DialogLine - + Line - + First point - + Second point - + Type of line - + Show line from first point to this point - + Select second point @@ -1257,291 +1455,347 @@ DialogLineIntersect - + Intersection of lines - + Point label - + First line - - + + First point - - + + Second point - + Second line - + Select second point of first line - + Select first point of second line - + Select second point of second line + + DialogMeasurements + + + Measurements + + + + + <html><head/><body><p><span style=" font-size:18pt;">Please, choose pattern type.</span></p></body></html> + + + + + Graduation + + + + + Use for creation pattern standard measurement table + + + + + Individual + + + + + Use for creation pattern individual measurements + + + DialogNormal - + Normal - + Length - + Formula for calculation of length of normal - + Insert variable into formula - - - - - - - - - - + + + + + + + + + + ... - + Calculate value - + Value of length - + _ - + Point label - + First point - + Second point - + Additional angle degrees - + Type of line - + Show line from first point to this point - + Input data - + Size and height - + Standard table - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula - + Select second point of line + + DialogPatternProperties + + + Pattern properties + + + + + Author name + + + + + Pattern description + + + + + For technical notes. + + + DialogPointOfContact - + Point of contact - + Radius - + Formula for calculation of radius of arc - + Insert variable into formula - - + + ... - + Calculate value - + Value of radius - + _ - + Point label - + Center of arc - - + + Select point of center of arc - + Top of the line - + End of the line - + Input data - + Size and height - + Standard table - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula. - + Select second point of line @@ -1549,37 +1803,37 @@ DialogPointOfIntersection - + Dialog - + Point label - + vertical point - + First point of angle - + horizontal point - + Second point of angle - + Select point horizontally @@ -1587,115 +1841,115 @@ DialogShoulderPoint - - + + Point of shoulder - + Length - + Formula for calculation of length of line - + Insert variable into formula - - + + ... - + Calculate value - + Value of length - + _ - + Point label - + First point - + Second point - + Type of line - + Show line from first point to our point - + Input data - + Size and height - + Standard table - + Increments - - + + Length of lines - + Length of curves - + Variables - Click twice to insert into formula - + Select second point of line - + Select point of shoulder @@ -1703,32 +1957,32 @@ DialogSinglePoint - + Single point - + Coordinates on the sheet - + Coordinates - + Y coordinate - + X coordinate - + Point label @@ -1736,47 +1990,47 @@ DialogSpline - + Curve - + First point - + Length ratio of the first control point - + The angle of the first control point - + Second point - + Length ratio of the second control point - + The angle of the second control point - + Coefficient of curvature of the curve - + Select last point of curve @@ -1784,115 +2038,133 @@ DialogSplinePath - + Curve path - + Point of curve - + Length ratio of the first control point - + The angle of the first control point - + Length ratio of the second control point - + The angle of the second control point - + List of points - + Coefficient of curvature of the curve - + Select point of curve path + + DialogStandardMeasurements + + + Standard table + + + + + Pattern piece name + + + + + Standard measurements table + + + + + File error. + + + DialogTool - + Line - + No line - + Dash Line - + Dot Line - + Dash Dot Line - + Dash Dot Dot Line - - Can't find object by name - - - - + Error - + Height - + Size - + Line length - + Arc length - + Curve length @@ -1900,55 +2172,55 @@ DialogTriangle - + Dialog - + Point label - + First point of axis - - - - + + + + First point of line - + Second point of axis - + First point - + Second point - + Select second point of axis - + Select first point - + Select second point @@ -1956,766 +2228,3200 @@ DialogUnionDetails - + Dialog - + Do you really want union details? This operation can't be undone. - + Select first point - + Select second point - - + + Select another second point - + Select detail + + Functions + + + sin + sine function + + + + + cos + cosine function + + + + + tan + tangens function + + + + + asin + arcus sine function + + + + + acos + arcus cosine function + + + + + atan + arcus tangens function + + + + + sinh + hyperbolic sine function + + + + + cosh + hyperbolic cosine + + + + + tanh + hyperbolic tangens function + + + + + asinh + hyperbolic arcus sine function + + + + + acosh + hyperbolic arcus tangens function + + + + + atanh + hyperbolic arcur tangens function + + + + + log2 + logarithm to the base 2 + + + + + log10 + logarithm to the base 10 + + + + + log + logarithm to the base 10 + + + + + ln + logarithm to base e (2.71828...) + + + + + exp + e raised to the power of x + + + + + sqrt + square root of a value + + + + + sign + sign function -1 if x<0; 1 if x>0 + + + + + rint + round to nearest integer + + + + + abs + absolute value + + + + + min + min of all arguments + + + + + max + max of all arguments + + + + + sum + sum of all arguments + + + + + avg + mean value of all arguments + + + MainWindow - - + Valentina - + Tools for creating points. - + Point - + Point at distance and angle - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + ... - + Special point on shoulder. - + Point at intersection of arc and line. - + Point along bisector - + Point along perpendicular - + Point at distance along line - + Perpendicular point along line - + Tool triangle. - + Tools for creating lines. - + Line - + Line between points - + Point at line intersection - + Tools for creating curves. - + Curve - + Curve tool. - + Tool for path curve. - + Tool segment a pathed curve. - + Tool for segmenting a curve. - + Tools for creating arcs. - + Arc - + Arc tool. - + Tools for creating details. - + Detail - + Tool new detail. - + &File - + &Help - + &Pattern piece - + Save &As... - + About &Qt - + &About Valentina - + E&xit - + Exit the application - + Options... - + + Pattern properties + + + + toolBar - + toolBar_2 - + toolBar_3 - + New - + &New - + Create a new pattern - + Ctrl+N - + Open - + &Open - + Open file with pattern - + Save - + &Save - + Save pattern - + Ctrl+S - + Save as - + Save not yet saved pattern - + Ctrl+Shift+S - + Draw - + Draw mode - + Ctrl+W - + Details - + Details mode - + Ctrl+E - - + + Pointer tools - + New pattern piece - + Add new pattern piece - + Ctrl+Shift+N - - + + Change the label of pattern piece - + Table of variables - + Tables of variables - + Ctrl+T - + History - + Ctrl+H - + Layout - + Create layout - + Ctrl+L - + About Qt - - About Valentina - - - - + Ctrl+Q - + Pattern piece %1 - - + Pattern piece: - - Enter a label for the pattern piece. - - - - - Error. Pattern piece of same label already exists. - - - - - Error creating pattern with the name - - - - + Enter a new label for the pattern piece. - - Error. Pattern piece of same name already exists. - - - - + Error saving change!!! - + Can't save new label of pattern piece - - + + Select point - + Select first point - - - + + + Select first point of line - + Select first point of angle - + Select first point of first line - + Select first point curve - + Select simple curve - + Select point of center of arc - + Select point of curve path - + Select curve path - + Select points, arcs, curves clockwise. - + Select base point - + Select first point of axis - + Select point vertically - + Select detail - + Select arc - - Based on Qt %2 (32 bit) + + Measurements use different units than pattern. This pattern required measurements in %1 - - Built on %3 at %4 + + + Wrong units. - - <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 + + File error. - - Cannot read file %1: -%2. + + The measurements file <br/><br/> <b>%1</b> <br/><br/> %3 - + + could not be found. Do you want to update the file location + + + + + Standard measurements (*.vst) + + + + + Individual measurements (*.vit) + + + + File loaded - + Height: - + Size: - + Pattern Piece: - - + + Pattern files (*.val) - - + + /pattern.val - - Can't open pattern file %1: -%2. - - - - - Can't open schema file %1: -%2. - - - - + File saved - - Can not save pattern - - - - + untitled.val - + Unsaved change - + The pattern has been modified. Do you want to save your changes? - - - Error! - - - - + + Open file - - - Error no unique id. - - - - - Got empty file name. - - - - - Could not copy temp file to pattern file - - - - - Could not remove pattern file - - - - + + Error parsing file. - + Error can't convert value. - + Error empty parameter. - + Error wrong id. + + + Measurements - - Parsing pattern file error. + + head_girth + Short measurement name. Don't use math symbols in name!!!! - - Validation file error. + + Head girth + Full measurement name - - - Error in line %1 column %2 + + Around fullest part of Head + Full measurement description + + + + + mid_neck_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Mid-neck girth + Full measurement name + + + + + Around middle part of Neck + Full measurement description + + + + + neck_base_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck Base girth + Full measurement name + + + + + Around Neck at base + Full measurement description + + + + + head_and_neck_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Head and Neck length + Full measurement name + + + + + Vertical Distance from Crown to Nape + Full measurement description + + + + + center_front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Center length + Full measurement name + + + + + Front Neck Center over tape at Bustline to Front Waist Center + Full measurement description + + + + + center_back_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Center length + Full measurement name + + + + + Back Neck Center to Back Waist Center + Full measurement description + + + + + shoulder_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder length + Full measurement name + + + + + NeckPoint to ShoulderTip + Full measurement description + + + + + side_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Side Waist length + Full measurement name + + + + + Armpit to Waist side + Full measurement description + + + + + trunk_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Trunk length + Full measurement name + + + + + Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning point + Full measurement description + + + + + shoulder_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder girth + Full measurement name + + + + + Around Arms and Torso, at bicep level parallel to floor, with arms hanging at the sides + Full measurement description + + + + + upper_chest_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upper Chest girth + Full measurement name + + + + + Around Chest at Armfold level, will be parallel to floor across back, will not be parallel to floor across front chest + Full measurement description + + + + + bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust girth + Full measurement name + + + + + Around fullest part of Bust, parallel to floor + Full measurement description + + + + + under_bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Under Bust girth + Full measurement name + + + + + Around Chest below the Bust, parallel to floor + Full measurement description + + + + + waist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist girth + Full measurement name + + + + + Tie a string around smallest part of waist, keep string tied while taking meaasurements. Not usually parallel to floor for front waist or back waist. + Full measurement description + + + + + high_hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip girth + Full measurement name + + + + + Around HighHip, parallel to floor + Full measurement description + + + + + hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip girth + Full measurement name + + + + + Around Hip, parallel to floor + Full measurement description + + + + + upper_front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Upper Chest width + Full measurement name + + + + + Across Front UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Chest width + Full measurement name + + + + + Across Front Chest, from armfold to armfold + Full measurement description + + + + + across_front_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Front + Full measurement description + + + + + across_back_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Back + Full measurement description + + + + + Back Upper Chest width + Full measurement name + + + + + Across Back UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + upper_back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Chest width + Full measurement name + + + + + Across Back Chest, from armfold to armfold + Full measurement description + + + + + bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + BustPoint to BustPoint + Full measurement name + + + + + Distance between BustPoints, across Chest + Full measurement description + + + + + halter_bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + Halter Bustpoint to Bustpoint + Full measurement name + + + + + Distance from Bustpoint, behind neck, down to Bustpoint + Full measurement description + + + + + neck_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + NeckPoint to BustPoint + Full measurement name + + + + + From NeckPoint to BustPoint + Full measurement description + + + + + crotch_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch length + Full measurement name + + + + + From Front Waist Center, down to crotch, up to Back Waist Center + Full measurement description + + + + + rise_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Rise height + Full measurement name + + + + + Sit on hard chair, measure from side waist straight down to chair bottom + Full measurement description + + + + + shoulder_drop + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Drop + Full measurement name + + + + + Vertical Distance from NeckPoint level to ShoulderTip level + Full measurement description + + + + + shoulder_slope_degrees + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Slope degrees + Full measurement name + + + + + Degrees of angle from NeckPoint to ShoulderTip – requires goniometer + Full measurement description + + + + + front_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Shoulder Balance + Full measurement name + + + + + ShoulderTip to Front Waist Center + Full measurement description + + + + + back_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Shoulder Balance + Full measurement name + + + + + ShoulderTip to Back Waist Center + Full measurement description + + + + + front_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Full Length + Full measurement name + + + + + NeckPoint straight down front chest to Waistline + Full measurement description + + + + + back_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Full Length + Full measurement name + + + + + Back NeckPoint straight down back chest to Waistline + Full measurement description + + + + + front_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint through Front Neck Center + Full measurement description + + + + + back_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint across Nape + Full measurement description + + + + + front_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + front_upper-bust_arc + Full measurement name + + + + + front_upper-bust_arc + Full measurement description + + + + + back_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperBust arc + Full measurement name + + + + + Back UpperBust side to side + Full measurement description + + + + + front_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist arc + Full measurement name + + + + + Front Waist side to side + Full measurement description + + + + + back_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist arc + Full measurement name + + + + + Back Waist side to side + Full measurement description + + + + + front_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperHip arc + Full measurement name + + + + + Front UpperHip side to side + Full measurement description + + + + + back_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperHip arc + Full measurement name + + + + + Back UpperHip side to side + Full measurement description + + + + + front_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Hip arc + Full measurement name + + + + + Front Hip side to side + Full measurement description + + + + + back_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Hip arc + Full measurement name + + + + + Back Hip side to side + Full measurement description + + + + + chest_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest Balance + Full measurement name + + + + + NeckPoint to Front ArmfoldPoint + Full measurement description + + + + + back_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Balance + Full measurement name + + + + + NeckPoint to Back ArmfoldPoint + Full measurement description + + + + + front_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist Balance + Full measurement name + + + + + NeckPoint across Front Chest to Waist side + Full measurement description + + + + + back_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist Balance + Full measurement name + + + + + NeckPoint across Back Chest to Waist side + Full measurement description + + + + + front_neck_to_upper_chest_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperChest height + Full measurement name + + + + + Front Neck Center straight down to UpperChest line + Full measurement description + + + + + front_neck_to_bust_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust height + Full measurement name + + + + + Front Neck Center straight down to Bust line + Full measurement description + + + + + armscye_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye Girth + Full measurement name + + + + + Around Armscye + Full measurement description + + + + + elbow_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow Girth + Full measurement name + + + + + Around Elbow with elbow bent + Full measurement description + + + + + upper_arm_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upperarm Girth + Full measurement name + + + + + Around UpperArm + Full measurement description + + + + + wrist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Wrist girth + Full measurement name + + + + + Around Wrist + Full measurement description + + + + + scye_depth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye depth + Full measurement name + + + + + Nape straight down to UnderBust line (same as Back UpperBust height) + Full measurement description + + + + + shoulder_and_arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder and Arm length + Full measurement name + + + + + NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + underarm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Underarm length + Full measurement name + + + + + Armpit to Wrist, with arm straight and hanging at side + Full measurement description + + + + + cervicale_to_wrist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to wrist length + Full measurement name + + + + + Nape to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + shoulder_to_elbow_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow length + Full measurement name + + + + + ShoulderTip to Elbow, with elbow bent and hand on hip + Full measurement description + + + + + arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Arm length + Full measurement name + + + + + ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + hand_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand width + Full measurement name + + + + + Hand side to side + Full measurement description + + + + + hand_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand length + Full measurement name + + + + + Hand Middle Finger tip to wrist + Full measurement description + + + + + hand_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand girth + Full measurement name + + + + + Around Hand + Full measurement description + + + + + thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Thigh girth + Full measurement name + + + + + Around Thigh + Full measurement description + + + + + mid_thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Midthigh girth + Full measurement name + + + + + Around MidThigh + Full measurement description + + + + + knee_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee girth + Full measurement name + + + + + Around Knee + Full measurement description + + + + + calf_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Calf girth + Full measurement name + + + + + Around Calf + Full measurement description + + + + + ankle_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle girth + Full measurement name + + + + + Around Ankle + Full measurement description + + + + + knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee height + Full measurement name + + + + + Knee to Floor + Full measurement description + + + + + ankle_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle height + Full measurement name + + + + + Ankle to Floor + Full measurement description + + + + + foot_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot width + Full measurement name + + + + + Widest part of Foot side to side + Full measurement description + + + + + foot_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot length + Full measurement name + + + + + Tip of Longest Toe straight to back of heel + Full measurement description + + + + + height + Short measurement name. Don't use math symbols in name!!!! + + + + + Total Height + Full measurement name + + + + + Top of head to floor + Full measurement description + + + + + cervicale_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape height + Full measurement name + + + + + Nape to Floor + Full measurement description + + + + + cervicale_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to knee height + Full measurement name + + + + + Nape to Knee + Full measurement description + + + + + waist_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist height + Full measurement name + + + + + Waist side to floor + Full measurement description + + + + + high_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip height + Full measurement name + + + + + HighHip side to Floor + Full measurement description + + + + + hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip height + Full measurement name + + + + + Hip side to Floor + Full measurement description + + + + + waist_to_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Hip height + Full measurement name + + + + + Waist side to Hip + Full measurement description + + + + + waist_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Knee height + Full measurement name + + + + + Waist side to Knee + Full measurement description + + + + + crotch_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch height/Inseam + Full measurement name + + + + + Crotch to Floor along inside leg + Full measurement description + + + + + size + Short measurement name. Don't use math symbols in name!!!! + + + + + Size + Full measurement name + + + + + Size + Full measurement description + + + + + height_front_neck_base_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height front neck base point + Full measurement name + + + + + Height of the point base of the neck in front + Full measurement description + + + + + height_base_neck_side_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height base neck side point + Full measurement name + + + + + Height of the base of the neck side point + Full measurement description + + + + + height_shoulder_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height shoulder point + Full measurement name + + + + + The height of the shoulder point + Full measurement description + + + + + height_nipple_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height nipple point + Full measurement name + + + + + Height nipple point + Full measurement description + + + + + height_back_angle_axilla + Short measurement name. Don't use math symbols in name!!!! + + + + + Height back angle axilla + Full measurement name + + + + + Height back angle axilla + Full measurement description + + + + + height_scapular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height scapular point + Full measurement name + + + + + Height scapular point + Full measurement description + + + + + height_under_buttock_folds + Short measurement name. Don't use math symbols in name!!!! + + + + + Height under buttock folds + Full measurement name + + + + + Height under buttock folds + Full measurement description + + + + + hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Hips excluding protruding abdomen + Full measurement name + + + + + Hips excluding protruding abdomen + Full measurement description + + + + + girth_foot_instep + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth foot instep + Full measurement name + + + + + Girth foot instep + Full measurement description + + + + + side_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Side waist to floor + Full measurement name + + + + + The distance from the side waist to floor + Full measurement description + + + + + front_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist to floor + Full measurement name + + + + + The distance from the front waist to floor + Full measurement description + + + + + arc_through_groin_area + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through groin area + Full measurement name + + + + + Arc through groin area + Full measurement description + + + + + waist_to_plane_seat + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to plane seat + Full measurement name + + + + + The distance from the waist to the plane seat + Full measurement description + + + + + neck_to_radial_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to radial point + Full measurement name + + + + + The distance from the base of the neck to the side of the radial point + Full measurement description + + + + + neck_to_third_finger + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to third finger + Full measurement name + + + + + Distance from the base of the neck side point to the end of the third finger + Full measurement description + + + + + neck_to_first_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to first line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the side of the first line in front of chest circumference + Full measurement description + + + + + front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist length + Full measurement name + + + + + The distance from the base of the neck to the waist side front (waist length in the front) + Full measurement description + + + + + arc_through_shoulder_joint + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through shoulder joint + Full measurement name + + + + + Arc through the highest point of the shoulder joint + Full measurement description + + + + + neck_to_back_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to back line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the back line of chest circumference of the first and the second based on ledge vanes + Full measurement description + + + + + waist_to_neck_side + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to neck side + Full measurement name + + + + + The distance from the waist to the back base of the neck side point + Full measurement description + + + + + arc_length_upper_body + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc length upper body + Full measurement name + + + + + Arc length of the upper body through the base of the neck side point + Full measurement description + + + + + chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest width + Full measurement name + + + + + Chest width + Full measurement description + + + + + anteroposterior_diameter_hands + Short measurement name. Don't use math symbols in name!!!! + + + + + Anteroposterior diameter hands + Full measurement name + + + + + Anteroposterior diameter of the hands + Full measurement description + + + + + height_clavicular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height clavicular point + Full measurement name + + + + + Height clavicular point + Full measurement description + + + + + height_armhole_slash + Short measurement name. Don't use math symbols in name!!!! + + + + + Height armhole slash + Full measurement name + + + + + The distance from the point to the cervical level of the posterior angle of the front armpit (underarm height oblique) + Full measurement description + + + + + slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Slash shoulder height + Full measurement name + + + + + Slash shoulder height + Full measurement description + + + + + half_girth_neck + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck + Full measurement name + + + + + Half girth neck + Full measurement description + + + + + half_girth_neck_for_shirts + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck for shirts + Full measurement name + + + + + Half girth neck for shirts + Full measurement description + + + + + half_girth_chest_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest first + Full measurement name + + + + + Half girth chest first + Full measurement description + + + + + half_girth_chest_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest second + Full measurement name + + + + + Half girth chest second + Full measurement description + + + + + half_girth_chest_third + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest third + Full measurement name + + + + + Half girth chest third + Full measurement description + + + + + half_girth_waist + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth waist + Full measurement name + + + + + Half girth waist + Full measurement description + + + + + half_girth_hips_considering_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips considering protruding abdomen + Full measurement name + + + + + Half girth hips considering protruding abdomen + Full measurement description + + + + + half_girth_hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips excluding protruding abdomen + Full measurement name + + + + + Half girth hips excluding protruding abdomen + Full measurement description + + + + + girth_knee_flexed_feet + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth knee flexed feet + Full measurement name + + + + + Girth knee flexed feet + Full measurement description + + + + + neck_transverse_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck transverse diameter + Full measurement name + + + + + Neck transverse diameter + Full measurement description + + + + + front_slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front slash shoulder height + Full measurement name + + + + + Front slash shoulder height + Full measurement description + + + + + neck_to_front_waist_line + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to front waist line + Full measurement name + + + + + The distance from the base of the neck to the waist line front + Full measurement description + + + + + hand_vertical_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand vertical diameter + Full measurement name + + + + + Hand vertical diameter + Full measurement description + + + + + neck_to_knee_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to knee point + Full measurement name + + + + + Distance from neck to knee point + Full measurement description + + + + + waist_to_knee + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to knee + Full measurement name + + + + + The distance from the waist to the knee + Full measurement description + + + + + shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder height + Full measurement name + + + + + Shoulder height + Full measurement description + + + + + head_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Head height + Full measurement name + + + + + Head height + Full measurement description + + + + + body_position + Short measurement name. Don't use math symbols in name!!!! + + + + + Body position + Full measurement name + + + + + Body position + Full measurement description + + + + + arc_behind_shoulder_girdle + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc behind shoulder girdle + Full measurement name + + + + + Arc behind the shoulder girdle + Full measurement description + + + + + neck_to_neck_base + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to neck base + Full measurement name + + + + + Distance from neck point to point on the base of the neck side neck girth measurement line + Full measurement description + + + + + depth_waist_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist first + Full measurement name + + + + + Depth waist first + Full measurement description + + + + + depth_waist_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist second + Full measurement name + + + + + Depth waist second + Full measurement description PatternPage - + User - + User name - + Graphical output - + Use antialiasing - + Undone - + Count steps + + PostfixOperators + + + cm + centimeter + + + + + mm + millimeter + + + + + in + inch + + + QObject - + Create new pattern piece to start working. @@ -2723,130 +5429,160 @@ Do you want to save your changes? TableWindow - + Create a layout - + toolBar - + Save - - + + Save layout - + Next - + Next detail - + Turn - + Turn the detail 90 degrees - + Stop - + Stop laying - + Enlarge letter - + Enlarge the length of the sheet - + Reduce sheet - + Reduce the length of the sheet - - + + Mirroring - - + + Zoom In - - + + Zoom Out - + 0 details left. - - + + Collisions not found. - + %1 details left. - + + untitled + + + + + Svg files (*.svg) + + + + + PDF files (*.pdf) + + + + + Images (*.png) + + + + + PS files (*.ps) + + + + + EPS files (*.eps) + + + + Collisions found. - - SVG Generator Example Drawing + + Creating file '%1' failed! %2 - - An SVG drawing created by the SVG Generator Example provided with Qt. + + Critical error! VAbstractNode - + Can't find tag Modeling @@ -2854,12 +5590,12 @@ Do you want to save your changes? VAbstractTool - + Confirm the deletion. - + Do you really want delete? @@ -2867,42 +5603,32 @@ Do you want to save your changes? VApplication - - - - - - - Error! - - - - + Error parsing file. Program will be terminated. - + Error bad id. Program will be terminated. - + Error can't convert value. Program will be terminated. - + Error empty parameter. Program will be terminated. - + Error wrong id. Program will be terminated. - + Something's wrong!! @@ -2910,215 +5636,269 @@ Do you want to save your changes? VContainer - - - + + + Can't find object + + + Can't cast object + + VDomDocument - - Can't find tool id = %1 in table. + + Can't convert toUInt parameter - - Got wrong parameter id. Need only id > 0. - - - - - Can't convert toLongLong parameter - - - - + Got empty parameter - + Can't convert toDouble parameter - - This id is not unique. + + + Can't open file %1: +%2. - - Error creating or updating detail + + Can't open schema file %1: +%2. - - Error creating or updating single point + + Validation error in line %1 column %2 - - Error creating or updating point of end line - - - - - Error creating or updating point along line - - - - - Error creating or updating point of shoulder - - - - - Error creating or updating point of normal - - - - - Error creating or updating point of bisector - - - - - Error creating or updating point of lineintersection - - - - - Error creating or updating point of contact - - - - - Error creating or updating modeling point - - - - - Error creating or updating height - - - - - Error creating or updating triangle - - - - - Error creating or updating point of intersection - - - - - Error creating or updating cut spline point - - - - - Error creating or updating cut spline path point - - - - - Error creating or updating cut arc point - - - - - Error creating or updating line - - - - - Error creating or updating simple curve - - - - - Error creating or updating curve path - - - - - Error creating or updating modeling simple curve - - - - - Error creating or updating modeling curve path - - - - - Error creating or updating simple arc - - - - - Error creating or updating modeling arc - - - - - Error creating or updating union details - - - - - Error! - - - - - Error parsing file. + + Parcing error in line %1 column %2 VDrawTool - + Can not find the element after which you want to insert. - + Can't find tag Calculation - + Options - + Delete + + VException + + + Critical error! + + + + + VPattern + + + Can't find tool id = %1 in table. + + + + + Error no unique id. + + + + + Error! + + + + + Error parsing file. + + + + + Error creating or updating detail + + + + + Error creating or updating single point + + + + + + Error creating or updating point of end line + + + + + + Error creating or updating point along line + + + + + + Error creating or updating point of shoulder + + + + + + Error creating or updating point of normal + + + + + + Error creating or updating point of bisector + + + + + Error creating or updating point of lineintersection + + + + + + Error creating or updating point of contact + + + + + Error creating or updating modeling point + + + + + Error creating or updating height + + + + + Error creating or updating triangle + + + + + Error creating or updating point of intersection + + + + + + Error creating or updating cut spline point + + + + + + Error creating or updating cut spline path point + + + + + + Error creating or updating cut arc point + + + + + Error creating or updating line + + + + + Error creating or updating simple curve + + + + + Error creating or updating curve path + + + + + Error creating or updating modeling simple curve + + + + + Error creating or updating modeling curve path + + + + + + Error creating or updating simple arc + + + + + Error creating or updating modeling arc + + + + + Error creating or updating union details + + + + + Got wrong parameter id. Need only id > 0. + + + + + This id is not unique. + + + VSplinePath - + Not enough points to create the spline. - - - + + + This spline does not exist. - + Can't cut spline path with one point @@ -3126,12 +5906,12 @@ Do you want to save your changes? VTableGraphicsView - + can't find detail - + detail found @@ -3139,30 +5919,54 @@ Do you want to save your changes? VToolDetail - + Options - + Delete - - VToolTriangle - - - Can't find point. - - - VToolUnionDetails - + Can't find tag Modeling + + Variables + + + Line_ + Left symbol _ in name + + + + + AngleLine_ + Left symbol _ in name + + + + + Arc_ + Left symbol _ in name + + + + + Spl_ + Left symbol _ in name + + + + + SplPath + + + diff --git a/src/app/share/translations/valentina_cs.ts b/src/app/share/translations/valentina_cs.ts index 668e72b54..2935a0d90 100644 --- a/src/app/share/translations/valentina_cs.ts +++ b/src/app/share/translations/valentina_cs.ts @@ -1,35 +1,35 @@ - + ConfigDialog - + Apply - + &Cancel - + &Ok - + Config Dialog - + Configuration - + Pattern @@ -37,171 +37,214 @@ ConfigurationPage - + Setup user interface language updated and will be used the next time start - + Save Uložit - + Auto-save modified pattern - + Interval: - + min - + Language - + GUI language - + Decimal separator parts - + With OS options (.) + + DialogAboutApp + + + About Valentina + O programu Valentina + + + + Valentina version + + + + + Contributors + + + + + Based on Qt %2 (32 bit) + Založeno na Qt %2 (32 bit) + + + + Built on %3 at %4 + Sestaveno %3 v %4 + + + + Web site : %1 + + + + + Warning + + + + + Cannot open your default browser + + + DialogAlongLine - + Point along line Bod podél čáry - + Length Délka - + Formula for the calculation of length of line - + Insert variable into the formula - - + + ... ... - + Calculate value - + Value of length Hodnota délky - + _ _ - + Point label - + First point První bod - + First point of line První bod čáry - + Second point Druhý bod - + Second point of line Druhý bod čáry - + Type of line Typ čáry - + Show line from first point to this point - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - + Length of lines Délka čar - + Length of arcs Délka oblouků - + Length of curves Délka křivek - + Variables - Click twice to insert into formula - + Select second point of line Vybrat druhý bod čáry @@ -209,151 +252,151 @@ DialogArc - + Arc Oblouk - + Radius Poloměr - + Formula for the calculation of radius of arc - + Insert variable into the formula - - - - - - + + + + + + ... ... - - - + + + Calculate value - + Value of radius Hodnota poloměru - - - + + + _ _ - + First angle degree První úhel (stupně) - + First angle of arc counterclockwise První úhel oblouku proti směru hodinových ručiček - + Insert variable into formula - + Value of first angle Hodnota prvního úhlu - + Second angle degree Druhý úhel (stupně) - + Second angle of arc counterclockwise Druhý úhel oblouku proti směru hodinových ručiček - + Insert marked variable into formula - + Value of second angle Hodnota druhého úhlu - + Center point Bod ve středu - + Select point of center of arc Vybrat bod středu oblouku - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - + Length of lines Délka čar - + Length of arcs Délka oblouků - + Length of curves Délka křivek - + Angle of lines Úhel čar - + Variables Proměnné - + Value of angle of line. @@ -361,138 +404,138 @@ DialogBisector - + Bisector Osa souměrnosti úhlu - + Length Délka - + Calculation of length of bisector by using the formula - + Insert marked variable into the formula - - + + ... ... - + Calculate value - + Value of length Hodnota délky - + _ _ - + Point label - + First point První bod - + First point of angle První bod úhlu - + Second point Druhý bod - + Second point of angle Druhý bod úhlu - + Third point Třetí bod - + Third point of angle Třetí bod úhlu - + Type of line Typ čáry - + Show line from second point to this point - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - + Length of lines Délka čar - + Length of arcs Délka oblouků - + Length of curves Délka křivek - + Variables - Click twice to insert into formula - + Select second point of angle Vybrat druhý bod úhlu - + Select third point of angle Vybrat třetí bod úhlu @@ -500,93 +543,93 @@ DialogCutArc - + Dialog Dialog - + Length Délka - + Formula for the calculation of the spline - - + + ... ... - + Calculate value - + Value of length Hodnota délky - + _ _ - + Arc Oblouk - + Selected curve - + Point label - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - + Length of lines Délka čar - + Length of arcs Délka oblouků - + Length of curves Délka křivek - + Variables - Click twice to insert into formula @@ -594,93 +637,93 @@ DialogCutSpline - + Dialog Dialog - + Length Délka - + Formula for the calculation of the spline - - + + ... ... - + Calculate value - + Value of length Hodnota délky - + _ _ - + Curve Křivka - + Selected curve - + Point label - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - + Length of lines Délka čar - + Length of arcs Délka oblouků - + Length of curves Délka křivek - + Variables - Click twice to insert into formula @@ -688,93 +731,93 @@ DialogCutSplinePath - + Dialog Dialog - + Length Délka - + Formula for the calculation of the curve length - - + + ... ... - + Calculate value - + Value of length Hodnota délky - + _ _ - + Curve Křivka - + Selected curve path - + Point label - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - + Length of lines Délka čar - + Length of arcs Délka oblouků - + Length of curves Délka křivek - + Variables - Click twice to insert into formula @@ -782,180 +825,175 @@ DialogDetail - - + + Detail Detail - + Bias X Odchylka X - + Bias Y Odchylka Y - + Options Volby - + Name of detail Název detailu - + Seam allowance - + Width Šířka - + Closed Zavřeno - + Delete Smazat - + Got wrong scene object. Ignore. - - - Got wrong tools. Ignore. - - DialogEndLine - + Point in the end of a line - + Length Délka - + Formula for calculation of length of line - - - - - - - - - - + + + + + + + + + + ... ... - + Calculate value - + Value of length Hodnota délky - + _ _ - + Base point Základní bod - + First point of line První bod čáry - + Point label - + Degree of angle - + Angle of line Úhel čáry - + Type of line Typ čáry - + Show line from first point to this point - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - + Length of lines Délka čar - + Length of arcs Délka oblouků - + Length of curves Délka křivek - + Variables - Click twice to insert into formula @@ -963,50 +1001,50 @@ DialogHeight - + Dialog Dialog - + Point label - + Base point Základní bod - - - - + + + + First point of line První bod čáry - + Second point of line Druhý bod čáry - + Type of line Typ čáry - + Show line from first point to our point Ukázat čáru od prvního bodu k našemu bodu - + Select first point of line Vybrat první bod čáry - + Select second point of line Vybrat druhý bod čáry @@ -1014,242 +1052,414 @@ DialogHistory - + History Historie - - + + Tool Nástroj - + + + + + Can't create record. + + + + %1 - Base point %1 - Základní bod - - + + %1_%2 - Line from point %1 to point %2 %1_%2 - Čára od bodu %1 k bodu %2 - + %3 - Point along line %1_%2 %3 - Bod podél čáry %1_%2 - + %1 - Point of shoulder - + %3 - normal to line %1_%2 - + %4 - bisector of angle %1_%2_%3 - + %5 - intersection of lines %1_%2 and %3_%4 - + Curve %1_%2 Křivka %1_%2 - + Arc with center in point %1 Oblouk se středem v bodě %1 - + Curve point %1 Bod křivky %1 - + %4 - point of contact of arc with the center in point %1 and line %2_%3 - + Point of perpendicular from point %1 to line %2_%3 - + Triangle: axis %1_%2, points %3 and %4 Trojúhelník: osa %1_%2, body %3 a %4 - + %1 - point of intersection %2 and %3 - + %1 - cut arc with center %2 - + %1 - cut curve %2_%3 - + %1 - cut curve path %2 - - - Got wrong tool type. Ignore. - - DialogIncrements - - + + Increments Přídavky - - Sizes table + + Email - - + + Name - - + + The calculated value Vypočítaná hodnota - - + + Base value Základní hodnota - - + + In sizes Ve velikostech - - In growths - Ve vzrůstech + Ve vzrůstech - - - - + + + Description Popis - - + + + ... ... - + + + Measurements + + + + + Load another measurements table + + + + + Personal information + + + + + Given name + + + + + Family name + + + + + Birth date + + + + + Sex + + + + + + In heights + + + + Lines Čáry - + Line Čára - - - + + + Length Délka - + Curves Křivky - + Curve Křivka - + Arcs Oblouky - + Arc Oblouk - + + + + File error. + + + + + male + + + + + female + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + Individual measurements (*.vit) + + + + + + Open file + Otevřít soubor + + + + + Wrong units. + + + + + Standard measurements (*.vst) + + + + Name_%1 - Can't convert toDouble value. - Nelze převést na hodnotu toDouble. + Nelze převést na hodnotu toDouble. + + + + DialogIndividualMeasurements + + Dialog + Dialog + + + + Individual measurements + + + + + Pattern piece name + + + + + Exist measurements + + + + + + Path: + + + + + + ... + ... + + + + New measurements + + + + + Units: + + + + + Could not create measurements file + + + + + Please try again or change file + + + + + + File error. + + + + + + Individual measurements (*.vit) + + + + + Open file + Otevřít soubor + + + + Where save measurements? + + + + + centimeter + + + + + inch + DialogLine - + Line Čára - + First point První bod - + Second point Druhý bod - + Type of line Typ čáry - + Show line from first point to this point - + Select second point Vybrat druhý bod @@ -1257,291 +1467,347 @@ DialogLineIntersect - + Intersection of lines - + Point label - + First line První čára - - + + First point První bod - - + + Second point Druhý bod - + Second line Druhá čára - + Select second point of first line Vybrat druhý bod první čáry - + Select first point of second line Vybrat první bod druhé čáry - + Select second point of second line Vybrat druhý bod druhé čáry + + DialogMeasurements + + + Measurements + + + + + <html><head/><body><p><span style=" font-size:18pt;">Please, choose pattern type.</span></p></body></html> + + + + + Graduation + + + + + Use for creation pattern standard measurement table + + + + + Individual + + + + + Use for creation pattern individual measurements + + + DialogNormal - + Normal Kolmice - + Length Délka - + Formula for calculation of length of normal - + Insert variable into formula - - - - - - - - - - + + + + + + + + + + ... ... - + Calculate value - + Value of length Hodnota délky - + _ _ - + Point label - + First point První bod - + Second point Druhý bod - + Additional angle degrees Dodatečné úhlové stupně - + Type of line Typ čáry - + Show line from first point to this point - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - + Length of lines Délka čar - + Length of arcs Délka oblouků - + Length of curves Délka křivek - + Variables - Click twice to insert into formula - + Select second point of line Vybrat druhý bod čáry + + DialogPatternProperties + + + Pattern properties + + + + + Author name + + + + + Pattern description + + + + + For technical notes. + + + DialogPointOfContact - + Point of contact Bod dotyku - + Radius Poloměr - + Formula for calculation of radius of arc - + Insert variable into formula - - + + ... ... - + Calculate value - + Value of radius Hodnota poloměru - + _ _ - + Point label - + Center of arc Střed oblouku - - + + Select point of center of arc Vybrat bod středu oblouku - + Top of the line Začátek čáry - + End of the line Konec čáry - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - + Length of lines Délka čar - + Length of arcs Délka oblouků - + Length of curves Délka křivek - + Variables - Click twice to insert into formula. - + Select second point of line Vybrat druhý bod čáry @@ -1549,37 +1815,37 @@ DialogPointOfIntersection - + Dialog Dialog - + Point label - + vertical point - + First point of angle První bod úhlu - + horizontal point - + Second point of angle Druhý bod úhlu - + Select point horizontally Vybrat bod vodorovně @@ -1587,115 +1853,115 @@ DialogShoulderPoint - - + + Point of shoulder Bod ramene - + Length Délka - + Formula for calculation of length of line - + Insert variable into formula - - + + ... ... - + Calculate value - + Value of length Hodnota délky - + _ _ - + Point label - + First point První bod - + Second point Druhý bod - + Type of line Typ čáry - + Show line from first point to our point Ukázat čáru od prvního bodu k našemu bodu - + Input data Vstupní data - + Size and height - + Standard table - + Increments Přídavky - - + + Length of lines Délka čar - + Length of curves Délka křivek - + Variables - Click twice to insert into formula - + Select second point of line Vybrat druhý bod čáry - + Select point of shoulder Vybrat bod ramene @@ -1703,32 +1969,32 @@ DialogSinglePoint - + Single point Jeden bod - + Coordinates on the sheet Souřadnice na listu - + Coordinates Souřadnice - + Y coordinate Souřadnice y - + X coordinate Souřadnice x - + Point label @@ -1736,47 +2002,47 @@ DialogSpline - + Curve Křivka - + First point První bod - + Length ratio of the first control point Poměr délky prvního ovládacího bodu - + The angle of the first control point Úhel prvního ovládacího bodu - + Second point Druhý bod - + Length ratio of the second control point Poměr délky druhého ovládacího bodu - + The angle of the second control point Úhel druhého ovládacího bodu - + Coefficient of curvature of the curve Součinitel zakřivení křivky - + Select last point of curve Vybrat poslední bod čáry @@ -1784,115 +2050,133 @@ DialogSplinePath - + Curve path Cesta křivky - + Point of curve Bod křivky - + Length ratio of the first control point Poměr délky prvního ovládacího bodu - + The angle of the first control point Úhel prvního ovládacího bodu - + Length ratio of the second control point Poměr délky druhého ovládacího bodu - + The angle of the second control point Úhel druhého ovládacího bodu - + List of points Seznam bodů - + Coefficient of curvature of the curve Součinitel zakřivení křivky - + Select point of curve path Vybrat bod cesty křivky + + DialogStandardMeasurements + + + Standard table + + + + + Pattern piece name + + + + + Standard measurements table + + + + + File error. + + + DialogTool - + Line Čára - + No line Žádná čára - + Dash Line - + Dot Line - + Dash Dot Line - + Dash Dot Dot Line - - Can't find object by name - - - - + Error Chyba - + Height - + Size Velikost - + Line length Délka čáry - + Arc length Délka oblouku - + Curve length Délka křivky @@ -1900,55 +2184,55 @@ DialogTriangle - + Dialog Dialog - + Point label - + First point of axis První bod osy - - - - + + + + First point of line První bod čáry - + Second point of axis Druhý bod osy - + First point První bod - + Second point Druhý bod - + Select second point of axis Vybrat druhý bod osy - + Select first point Vybrat první bod - + Select second point Vybrat druhý bod @@ -1956,52 +2240,204 @@ DialogUnionDetails - + Dialog Dialog - + Do you really want union details? This operation can't be undone. - + Select first point Vybrat první bod - + Select second point Vybrat druhý bod - - + + Select another second point - + Select detail + + Functions + + + sin + sine function + + + + + cos + cosine function + + + + + tan + tangens function + + + + + asin + arcus sine function + + + + + acos + arcus cosine function + + + + + atan + arcus tangens function + + + + + sinh + hyperbolic sine function + + + + + cosh + hyperbolic cosine + + + + + tanh + hyperbolic tangens function + + + + + asinh + hyperbolic arcus sine function + + + + + acosh + hyperbolic arcus tangens function + + + + + atanh + hyperbolic arcur tangens function + + + + + log2 + logarithm to the base 2 + + + + + log10 + logarithm to the base 10 + + + + + log + logarithm to the base 10 + + + + + ln + logarithm to base e (2.71828...) + + + + + exp + e raised to the power of x + + + + + sqrt + square root of a value + + + + + sign + sign function -1 if x<0; 1 if x>0 + + + + + rint + round to nearest integer + + + + + abs + absolute value + + + + + min + min of all arguments + + + + + max + max of all arguments + + + + + sum + sum of all arguments + + + + + avg + mean value of all arguments + + + MainWindow - - + Valentina Valentina - + Tools for creating points. Nástroje na vytváření bodů. - + Point Bod @@ -2010,25 +2446,25 @@ Nástroj bod na koncové čáře. - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + ... ... @@ -2053,170 +2489,175 @@ Nástroj bod podél čáry. - + Tool triangle. Nástroj trojúhelník. - + Tools for creating lines. Nástroje na vytváření čar. - + Line Čára - + Point at distance and angle - + Special point on shoulder. - + Point at intersection of arc and line. - + Point along bisector - + Point along perpendicular - + Point at distance along line - + Perpendicular point along line - + Line between points - + Point at line intersection - + Tools for creating curves. Nástroje na vytváření křivek. - + Curve Křivka - + Curve tool. - + Tool for path curve. - + Tool segment a pathed curve. - + Tool for segmenting a curve. - + Tools for creating arcs. Nástroje na vytváření oblouků. - + Arc Oblouk - + Arc tool. - + Tools for creating details. Nástroje na vytváření podrobností. - + Detail Podrobnosti - + Tool new detail. Nástroj nové podrobnosti. - + &File - + &Help - + &Pattern piece - + Save &As... - + About &Qt - + &About Valentina - + E&xit - + Exit the application - + Options... + + + Pattern properties + + File Soubor @@ -2226,358 +2667,363 @@ Nápověda - + toolBar Nástrojový pruh - + toolBar_2 Nástrojový pruh 2 - + toolBar_3 Nástrojový pruh 3 - + New Nový - + &New - + Create a new pattern Vytvořit nový vzor - + Ctrl+N - + Open Otevřít - + &Open - + Open file with pattern Otevřít soubor se vzorem - + Save Uložit - + &Save - + Save pattern Uložit vzor - + Ctrl+S - + Save as Uložit jako - + Save not yet saved pattern Uložit ještě neuložený vzor - + Ctrl+Shift+S - + Draw Kreslit - + Draw mode Režim kreslení - + Ctrl+W - + Details Podrobnosti - + Details mode - + Ctrl+E - - + + Pointer tools - + New pattern piece - + Add new pattern piece - + Ctrl+Shift+N - - + + Change the label of pattern piece - + Table of variables Tabulka proměnných - + Tables of variables Tabulky proměnných - + Ctrl+T - + History Historie - + Ctrl+H - + Layout Rozvržení - + Create layout Vytvořit rozvržení - + Ctrl+L - + About Qt O Qt - About Valentina - O programu Valentina + O programu Valentina Exit Ukončit - + Ctrl+Q - + Pattern piece %1 - - + Pattern piece: - - Enter a label for the pattern piece. - - - - - Error. Pattern piece of same label already exists. - - - - - Error creating pattern with the name - - - - + Enter a new label for the pattern piece. - - Error. Pattern piece of same name already exists. - - - - + Error saving change!!! Chyba při ukládání změny! - + Can't save new label of pattern piece - - + + Select point Vybrat bod - + Select first point Vybrat první bod - - - + + + Select first point of line Vybrat první bod čáry - + Select first point of angle Vybrat první bod úhlu - + Select first point of first line Vybrat první bod první čáry - + Select first point curve Vybrat první bod křivky - + Select simple curve - + Select point of center of arc Vybrat bod středu oblouku - + Select point of curve path Vybrat bod cesty křivky - + Select curve path - + Select points, arcs, curves clockwise. Vybrat body, oblouky, křivky po směru hodinových ručiček. - + Select base point Vybrat základní bod - + Select first point of axis Vybrat první bod osy - + Select point vertically Vybrat bod svisle - + Select detail - + Select arc - - Based on Qt %2 (32 bit) - Založeno na Qt %2 (32 bit) - - - - Built on %3 at %4 - Sestaveno %3 v %4 - - - - <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 - <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 - - - - Cannot read file %1: -%2. + + Measurements use different units than pattern. This pattern required measurements in %1 - + + + Wrong units. + + + + + File error. + + + + + The measurements file <br/><br/> <b>%1</b> <br/><br/> %3 + + + + + could not be found. Do you want to update the file location + + + + + Standard measurements (*.vst) + + + + + Individual measurements (*.vit) + + + + Based on Qt %2 (32 bit) + Založeno na Qt %2 (32 bit) + + + Built on %3 at %4 + Sestaveno %3 v %4 + + + <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 + <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 + + + File loaded @@ -2590,184 +3036,2492 @@ Chcete uložit své změny? - + Height: - + Size: Velikost: - + Pattern Piece: - - + + Pattern files (*.val) - - + + /pattern.val - - Can't open pattern file %1: -%2. - - - - - Can't open schema file %1: -%2. - - - - + File saved - - Can not save pattern - - - - + untitled.val - + Unsaved change - + The pattern has been modified. Do you want to save your changes? - - Error! - Chyba! + Chyba! Error saving file. Can't save file. Chyba při ukládání souboru! Nelze uložit soubor. - + + Open file Otevřít soubor - - - Error no unique id. - - - - Got empty file name. - Obdržen prázdný název souboru. + Obdržen prázdný název souboru. - Could not copy temp file to pattern file - Nepodařilo se zkopírovat dočasný soubor do souboru se střihem + Nepodařilo se zkopírovat dočasný soubor do souboru se střihem - Could not remove pattern file - Nepodařilo se odstranit soubor se střihem + Nepodařilo se odstranit soubor se střihem - + + Error parsing file. Chyba při zpracování souboru. - + Error can't convert value. Chyba. Nelze převést hodnotu. - + Error empty parameter. Chyba. Prázdný parametr. - + Error wrong id. Chyba. Špatné ID. - - - Parsing pattern file error. - - - - - Validation file error. - - Error parsing pattern file. Chyba při zpracování souboru se střihem. - - Error in line %1 column %2 - Chyba na řádku %1, sloupec %2 + Chyba na řádku %1, sloupec %2 + + + + Measurements + + + head_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Head girth + Full measurement name + + + + + Around fullest part of Head + Full measurement description + + + + + mid_neck_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Mid-neck girth + Full measurement name + + + + + Around middle part of Neck + Full measurement description + + + + + neck_base_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck Base girth + Full measurement name + + + + + Around Neck at base + Full measurement description + + + + + head_and_neck_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Head and Neck length + Full measurement name + + + + + Vertical Distance from Crown to Nape + Full measurement description + + + + + center_front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Center length + Full measurement name + + + + + Front Neck Center over tape at Bustline to Front Waist Center + Full measurement description + + + + + center_back_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Center length + Full measurement name + + + + + Back Neck Center to Back Waist Center + Full measurement description + + + + + shoulder_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder length + Full measurement name + + + + + NeckPoint to ShoulderTip + Full measurement description + + + + + side_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Side Waist length + Full measurement name + + + + + Armpit to Waist side + Full measurement description + + + + + trunk_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Trunk length + Full measurement name + + + + + Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning point + Full measurement description + + + + + shoulder_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder girth + Full measurement name + + + + + Around Arms and Torso, at bicep level parallel to floor, with arms hanging at the sides + Full measurement description + + + + + upper_chest_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upper Chest girth + Full measurement name + + + + + Around Chest at Armfold level, will be parallel to floor across back, will not be parallel to floor across front chest + Full measurement description + + + + + bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust girth + Full measurement name + + + + + Around fullest part of Bust, parallel to floor + Full measurement description + + + + + under_bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Under Bust girth + Full measurement name + + + + + Around Chest below the Bust, parallel to floor + Full measurement description + + + + + waist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist girth + Full measurement name + + + + + Tie a string around smallest part of waist, keep string tied while taking meaasurements. Not usually parallel to floor for front waist or back waist. + Full measurement description + + + + + high_hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip girth + Full measurement name + + + + + Around HighHip, parallel to floor + Full measurement description + + + + + hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip girth + Full measurement name + + + + + Around Hip, parallel to floor + Full measurement description + + + + + upper_front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Upper Chest width + Full measurement name + + + + + Across Front UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Chest width + Full measurement name + + + + + Across Front Chest, from armfold to armfold + Full measurement description + + + + + across_front_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Front + Full measurement description + + + + + across_back_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Back + Full measurement description + + + + + Back Upper Chest width + Full measurement name + + + + + Across Back UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + upper_back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Chest width + Full measurement name + + + + + Across Back Chest, from armfold to armfold + Full measurement description + + + + + bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + BustPoint to BustPoint + Full measurement name + + + + + Distance between BustPoints, across Chest + Full measurement description + + + + + halter_bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + Halter Bustpoint to Bustpoint + Full measurement name + + + + + Distance from Bustpoint, behind neck, down to Bustpoint + Full measurement description + + + + + neck_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + NeckPoint to BustPoint + Full measurement name + + + + + From NeckPoint to BustPoint + Full measurement description + + + + + crotch_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch length + Full measurement name + + + + + From Front Waist Center, down to crotch, up to Back Waist Center + Full measurement description + + + + + rise_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Rise height + Full measurement name + + + + + Sit on hard chair, measure from side waist straight down to chair bottom + Full measurement description + + + + + shoulder_drop + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Drop + Full measurement name + + + + + Vertical Distance from NeckPoint level to ShoulderTip level + Full measurement description + + + + + shoulder_slope_degrees + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Slope degrees + Full measurement name + + + + + Degrees of angle from NeckPoint to ShoulderTip – requires goniometer + Full measurement description + + + + + front_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Shoulder Balance + Full measurement name + + + + + ShoulderTip to Front Waist Center + Full measurement description + + + + + back_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Shoulder Balance + Full measurement name + + + + + ShoulderTip to Back Waist Center + Full measurement description + + + + + front_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Full Length + Full measurement name + + + + + NeckPoint straight down front chest to Waistline + Full measurement description + + + + + back_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Full Length + Full measurement name + + + + + Back NeckPoint straight down back chest to Waistline + Full measurement description + + + + + front_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint through Front Neck Center + Full measurement description + + + + + back_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint across Nape + Full measurement description + + + + + front_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + front_upper-bust_arc + Full measurement name + + + + + front_upper-bust_arc + Full measurement description + + + + + back_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperBust arc + Full measurement name + + + + + Back UpperBust side to side + Full measurement description + + + + + front_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist arc + Full measurement name + + + + + Front Waist side to side + Full measurement description + + + + + back_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist arc + Full measurement name + + + + + Back Waist side to side + Full measurement description + + + + + front_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperHip arc + Full measurement name + + + + + Front UpperHip side to side + Full measurement description + + + + + back_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperHip arc + Full measurement name + + + + + Back UpperHip side to side + Full measurement description + + + + + front_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Hip arc + Full measurement name + + + + + Front Hip side to side + Full measurement description + + + + + back_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Hip arc + Full measurement name + + + + + Back Hip side to side + Full measurement description + + + + + chest_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest Balance + Full measurement name + + + + + NeckPoint to Front ArmfoldPoint + Full measurement description + + + + + back_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Balance + Full measurement name + + + + + NeckPoint to Back ArmfoldPoint + Full measurement description + + + + + front_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist Balance + Full measurement name + + + + + NeckPoint across Front Chest to Waist side + Full measurement description + + + + + back_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist Balance + Full measurement name + + + + + NeckPoint across Back Chest to Waist side + Full measurement description + + + + + front_neck_to_upper_chest_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperChest height + Full measurement name + + + + + Front Neck Center straight down to UpperChest line + Full measurement description + + + + + front_neck_to_bust_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust height + Full measurement name + + + + + Front Neck Center straight down to Bust line + Full measurement description + + + + + armscye_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye Girth + Full measurement name + + + + + Around Armscye + Full measurement description + + + + + elbow_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow Girth + Full measurement name + + + + + Around Elbow with elbow bent + Full measurement description + + + + + upper_arm_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upperarm Girth + Full measurement name + + + + + Around UpperArm + Full measurement description + + + + + wrist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Wrist girth + Full measurement name + + + + + Around Wrist + Full measurement description + + + + + scye_depth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye depth + Full measurement name + + + + + Nape straight down to UnderBust line (same as Back UpperBust height) + Full measurement description + + + + + shoulder_and_arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder and Arm length + Full measurement name + + + + + NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + underarm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Underarm length + Full measurement name + + + + + Armpit to Wrist, with arm straight and hanging at side + Full measurement description + + + + + cervicale_to_wrist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to wrist length + Full measurement name + + + + + Nape to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + shoulder_to_elbow_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow length + Full measurement name + + + + + ShoulderTip to Elbow, with elbow bent and hand on hip + Full measurement description + + + + + arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Arm length + Full measurement name + + + + + ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + hand_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand width + Full measurement name + + + + + Hand side to side + Full measurement description + + + + + hand_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand length + Full measurement name + + + + + Hand Middle Finger tip to wrist + Full measurement description + + + + + hand_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand girth + Full measurement name + + + + + Around Hand + Full measurement description + + + + + thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Thigh girth + Full measurement name + + + + + Around Thigh + Full measurement description + + + + + mid_thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Midthigh girth + Full measurement name + + + + + Around MidThigh + Full measurement description + + + + + knee_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee girth + Full measurement name + + + + + Around Knee + Full measurement description + + + + + calf_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Calf girth + Full measurement name + + + + + Around Calf + Full measurement description + + + + + ankle_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle girth + Full measurement name + + + + + Around Ankle + Full measurement description + + + + + knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee height + Full measurement name + + + + + Knee to Floor + Full measurement description + + + + + ankle_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle height + Full measurement name + + + + + Ankle to Floor + Full measurement description + + + + + foot_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot width + Full measurement name + + + + + Widest part of Foot side to side + Full measurement description + + + + + foot_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot length + Full measurement name + + + + + Tip of Longest Toe straight to back of heel + Full measurement description + + + + + height + Short measurement name. Don't use math symbols in name!!!! + + + + + Total Height + Full measurement name + + + + + Top of head to floor + Full measurement description + + + + + cervicale_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape height + Full measurement name + + + + + Nape to Floor + Full measurement description + + + + + cervicale_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to knee height + Full measurement name + + + + + Nape to Knee + Full measurement description + + + + + waist_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist height + Full measurement name + + + + + Waist side to floor + Full measurement description + + + + + high_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip height + Full measurement name + + + + + HighHip side to Floor + Full measurement description + + + + + hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip height + Full measurement name + + + + + Hip side to Floor + Full measurement description + + + + + waist_to_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Hip height + Full measurement name + + + + + Waist side to Hip + Full measurement description + + + + + waist_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Knee height + Full measurement name + + + + + Waist side to Knee + Full measurement description + + + + + crotch_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch height/Inseam + Full measurement name + + + + + Crotch to Floor along inside leg + Full measurement description + + + + + size + Short measurement name. Don't use math symbols in name!!!! + + + + + Size + Full measurement name + Velikost + + + + Size + Full measurement description + Velikost + + + + height_front_neck_base_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height front neck base point + Full measurement name + + + + + Height of the point base of the neck in front + Full measurement description + + + + + height_base_neck_side_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height base neck side point + Full measurement name + + + + + Height of the base of the neck side point + Full measurement description + + + + + height_shoulder_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height shoulder point + Full measurement name + + + + + The height of the shoulder point + Full measurement description + + + + + height_nipple_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height nipple point + Full measurement name + + + + + Height nipple point + Full measurement description + + + + + height_back_angle_axilla + Short measurement name. Don't use math symbols in name!!!! + + + + + Height back angle axilla + Full measurement name + + + + + Height back angle axilla + Full measurement description + + + + + height_scapular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height scapular point + Full measurement name + + + + + Height scapular point + Full measurement description + + + + + height_under_buttock_folds + Short measurement name. Don't use math symbols in name!!!! + + + + + Height under buttock folds + Full measurement name + + + + + Height under buttock folds + Full measurement description + + + + + hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Hips excluding protruding abdomen + Full measurement name + + + + + Hips excluding protruding abdomen + Full measurement description + + + + + girth_foot_instep + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth foot instep + Full measurement name + + + + + Girth foot instep + Full measurement description + + + + + side_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Side waist to floor + Full measurement name + + + + + The distance from the side waist to floor + Full measurement description + + + + + front_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist to floor + Full measurement name + + + + + The distance from the front waist to floor + Full measurement description + + + + + arc_through_groin_area + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through groin area + Full measurement name + + + + + Arc through groin area + Full measurement description + + + + + waist_to_plane_seat + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to plane seat + Full measurement name + + + + + The distance from the waist to the plane seat + Full measurement description + + + + + neck_to_radial_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to radial point + Full measurement name + + + + + The distance from the base of the neck to the side of the radial point + Full measurement description + + + + + neck_to_third_finger + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to third finger + Full measurement name + + + + + Distance from the base of the neck side point to the end of the third finger + Full measurement description + + + + + neck_to_first_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to first line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the side of the first line in front of chest circumference + Full measurement description + + + + + front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist length + Full measurement name + + + + + The distance from the base of the neck to the waist side front (waist length in the front) + Full measurement description + + + + + arc_through_shoulder_joint + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through shoulder joint + Full measurement name + + + + + Arc through the highest point of the shoulder joint + Full measurement description + + + + + neck_to_back_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to back line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the back line of chest circumference of the first and the second based on ledge vanes + Full measurement description + + + + + waist_to_neck_side + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to neck side + Full measurement name + + + + + The distance from the waist to the back base of the neck side point + Full measurement description + + + + + arc_length_upper_body + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc length upper body + Full measurement name + + + + + Arc length of the upper body through the base of the neck side point + Full measurement description + + + + + chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest width + Full measurement name + + + + + Chest width + Full measurement description + + + + + anteroposterior_diameter_hands + Short measurement name. Don't use math symbols in name!!!! + + + + + Anteroposterior diameter hands + Full measurement name + + + + + Anteroposterior diameter of the hands + Full measurement description + + + + + height_clavicular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height clavicular point + Full measurement name + + + + + Height clavicular point + Full measurement description + + + + + height_armhole_slash + Short measurement name. Don't use math symbols in name!!!! + + + + + Height armhole slash + Full measurement name + + + + + The distance from the point to the cervical level of the posterior angle of the front armpit (underarm height oblique) + Full measurement description + + + + + slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Slash shoulder height + Full measurement name + + + + + Slash shoulder height + Full measurement description + + + + + half_girth_neck + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck + Full measurement name + + + + + Half girth neck + Full measurement description + + + + + half_girth_neck_for_shirts + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck for shirts + Full measurement name + + + + + Half girth neck for shirts + Full measurement description + + + + + half_girth_chest_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest first + Full measurement name + + + + + Half girth chest first + Full measurement description + + + + + half_girth_chest_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest second + Full measurement name + + + + + Half girth chest second + Full measurement description + + + + + half_girth_chest_third + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest third + Full measurement name + + + + + Half girth chest third + Full measurement description + + + + + half_girth_waist + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth waist + Full measurement name + + + + + Half girth waist + Full measurement description + + + + + half_girth_hips_considering_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips considering protruding abdomen + Full measurement name + + + + + Half girth hips considering protruding abdomen + Full measurement description + + + + + half_girth_hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips excluding protruding abdomen + Full measurement name + + + + + Half girth hips excluding protruding abdomen + Full measurement description + + + + + girth_knee_flexed_feet + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth knee flexed feet + Full measurement name + + + + + Girth knee flexed feet + Full measurement description + + + + + neck_transverse_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck transverse diameter + Full measurement name + + + + + Neck transverse diameter + Full measurement description + + + + + front_slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front slash shoulder height + Full measurement name + + + + + Front slash shoulder height + Full measurement description + + + + + neck_to_front_waist_line + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to front waist line + Full measurement name + + + + + The distance from the base of the neck to the waist line front + Full measurement description + + + + + hand_vertical_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand vertical diameter + Full measurement name + + + + + Hand vertical diameter + Full measurement description + + + + + neck_to_knee_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to knee point + Full measurement name + + + + + Distance from neck to knee point + Full measurement description + + + + + waist_to_knee + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to knee + Full measurement name + + + + + The distance from the waist to the knee + Full measurement description + + + + + shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder height + Full measurement name + + + + + Shoulder height + Full measurement description + + + + + head_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Head height + Full measurement name + + + + + Head height + Full measurement description + + + + + body_position + Short measurement name. Don't use math symbols in name!!!! + + + + + Body position + Full measurement name + + + + + Body position + Full measurement description + + + + + arc_behind_shoulder_girdle + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc behind shoulder girdle + Full measurement name + + + + + Arc behind the shoulder girdle + Full measurement description + + + + + neck_to_neck_base + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to neck base + Full measurement name + + + + + Distance from neck point to point on the base of the neck side neck girth measurement line + Full measurement description + + + + + depth_waist_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist first + Full measurement name + + + + + Depth waist first + Full measurement description + + + + + depth_waist_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist second + Full measurement name + + + + + Depth waist second + Full measurement description + PatternPage - + User - + User name - + Graphical output - + Use antialiasing - + Undone - + Count steps + + PostfixOperators + + + cm + centimeter + + + + + mm + millimeter + + + + + in + inch + + + QObject - + Create new pattern piece to start working. @@ -2775,130 +5529,168 @@ Do you want to save your changes? TableWindow - + Create a layout Vytvořit rozvržení - + toolBar Nástrojový pruh - + Save Uložit - - + + Save layout Uložit rozvržení - + Next Další - + Next detail Další detail - + Turn Otočit - + Turn the detail 90 degrees - + Stop Zastavit - + Stop laying Zastavit kladení - + Enlarge letter Zvětšit list - + Enlarge the length of the sheet - + Reduce sheet Zmenšit list - + Reduce the length of the sheet Zmenšit velikost listu - - + + Mirroring Zrcadlení - - + + Zoom In Přiblížit - - + + Zoom Out Oddálit - + 0 details left. - - + + Collisions not found. - + %1 details left. - + + untitled + + + + + Svg files (*.svg) + + + + + PDF files (*.pdf) + + + + + Images (*.png) + + + + + PS files (*.ps) + + + + + EPS files (*.eps) + + + + Collisions found. - - SVG Generator Example Drawing - Kreslení pomocí SVG Generator Example + + Creating file '%1' failed! %2 + + + + + Critical error! + + + + SVG Generator Example Drawing + Kreslení pomocí SVG Generator Example - An SVG drawing created by the SVG Generator Example provided with Qt. - Kresba SVG vytvořená pomocí SVG Generator Example poskytovaného s Qt. + Kresba SVG vytvořená pomocí SVG Generator Example poskytovaného s Qt. VAbstractNode - + Can't find tag Modeling Nelze najít značku Modeling @@ -2906,12 +5698,12 @@ Do you want to save your changes? VAbstractTool - + Confirm the deletion. - + Do you really want delete? @@ -2919,42 +5711,36 @@ Do you want to save your changes? VApplication - - - - - - Error! - Chyba! + Chyba! - + Error parsing file. Program will be terminated. Chyba při zpracování souboru. Program bude ukončen. - + Error bad id. Program will be terminated. Chyba. Špatný identifikátor. Program bude ukončen. - + Error can't convert value. Program will be terminated. Chyba. Nelze převést hodnotu. Program bude ukončen. - + Error empty parameter. Program will be terminated. Chyba. Prázdný parametr. Program bude ukončen. - + Error wrong id. Program will be terminated. Chyba. Špatný identifikátor. Program bude ukončen. - + Something's wrong!! @@ -2966,215 +5752,369 @@ Do you want to save your changes? VContainer - - - + + + Can't find object Nelze najít předmět + + + Can't cast object + + VDomDocument - - Can't find tool id = %1 in table. + Got wrong parameter id. Need only id > 0. + Obdrženo špatné ID parametru. Je potřeba jen ID > 0. + + + Can't convert toLongLong parameter + Nelze převést na parametr toLongLong + + + + Can't convert toUInt parameter - - Got wrong parameter id. Need only id > 0. - Obdrženo špatné ID parametru. Je potřeba jen ID > 0. - - - - Can't convert toLongLong parameter - Nelze převést na parametr toLongLong - - - + Got empty parameter Obdržen prázdný parametr - + Can't convert toDouble parameter Nelze převést na parametr toDouble - + + + Can't open file %1: +%2. + + + + + Can't open schema file %1: +%2. + + + + + Validation error in line %1 column %2 + + + + + Parcing error in line %1 column %2 + + + This id is not unique. - Toto ID není jedinečné. + Toto ID není jedinečné. - Error creating or updating detail - Chyba při vytváření nebo aktualizaci detailu + Chyba při vytváření nebo aktualizaci detailu - Error creating or updating single point - Chyba při vytváření nebo aktualizaci základního bodu + Chyba při vytváření nebo aktualizaci základního bodu - Error creating or updating point of end line - Chyba při vytváření nebo aktualizaci bodu na konci čáry + Chyba při vytváření nebo aktualizaci bodu na konci čáry - Error creating or updating point along line - Chyba při vytváření nebo aktualizaci bodu podél čáry + Chyba při vytváření nebo aktualizaci bodu podél čáry - Error creating or updating point of shoulder - Chyba při vytváření nebo aktualizaci bodu ramene + Chyba při vytváření nebo aktualizaci bodu ramene - Error creating or updating point of normal - Chyba při vytváření nebo aktualizaci bodu kolmice + Chyba při vytváření nebo aktualizaci bodu kolmice - Error creating or updating point of bisector - Chyba při vytváření nebo aktualizaci bodu osy úhlu + Chyba při vytváření nebo aktualizaci bodu osy úhlu - Error creating or updating point of lineintersection - Chyba při vytváření nebo aktualizaci bodu průsečíku čar + Chyba při vytváření nebo aktualizaci bodu průsečíku čar - Error creating or updating point of contact - Chyba při vytváření nebo aktualizaci bodu dotyku + Chyba při vytváření nebo aktualizaci bodu dotyku - Error creating or updating modeling point - Chyba při vytváření nebo aktualizaci bodu + Chyba při vytváření nebo aktualizaci bodu - Error creating or updating height - Chyba při vytváření nebo aktualizaci výšky + Chyba při vytváření nebo aktualizaci výšky - Error creating or updating triangle - Chyba při vytváření nebo aktualizaci trojúhelníku + Chyba při vytváření nebo aktualizaci trojúhelníku - Error creating or updating point of intersection - Chyba při vytváření nebo aktualizaci bodu průsečíku + Chyba při vytváření nebo aktualizaci bodu průsečíku - - Error creating or updating cut spline point - - - - - Error creating or updating cut spline path point - - - - - Error creating or updating cut arc point - - - - Error creating or updating line - Chyba při vytváření nebo aktualizaci čáry + Chyba při vytváření nebo aktualizaci čáry - Error creating or updating simple curve - Chyba při vytváření nebo aktualizaci křivky + Chyba při vytváření nebo aktualizaci křivky - Error creating or updating curve path - Chyba při vytváření nebo aktualizaci cesty křivky + Chyba při vytváření nebo aktualizaci cesty křivky - Error creating or updating modeling simple curve - Chyba při vytváření nebo aktualizaci modelové křivky + Chyba při vytváření nebo aktualizaci modelové křivky - Error creating or updating modeling curve path - Chyba při vytváření nebo aktualizaci cesty modelové křivky + Chyba při vytváření nebo aktualizaci cesty modelové křivky - Error creating or updating simple arc - Chyba při vytváření nebo aktualizaci oblouku + Chyba při vytváření nebo aktualizaci oblouku - Error creating or updating modeling arc - Chyba při vytváření nebo aktualizaci modelového oblouku + Chyba při vytváření nebo aktualizaci modelového oblouku - - Error creating or updating union details - - - - Error! - Chyba! + Chyba! - Error parsing file. - Chyba při zpracování souboru. + Chyba při zpracování souboru. VDrawTool - + Can not find the element after which you want to insert. Nelze najít prvek, po kterém chcete vkládat. - + Can't find tag Calculation Nelze najít značku Calculation - + Options Volby - + Delete Smazat + + VException + + + Critical error! + + + + + VPattern + + + Can't find tool id = %1 in table. + + + + + Error no unique id. + + + + + Error! + Chyba! + + + + Error parsing file. + Chyba při zpracování souboru. + + + + Error creating or updating detail + Chyba při vytváření nebo aktualizaci detailu + + + + Error creating or updating single point + Chyba při vytváření nebo aktualizaci základního bodu + + + + + Error creating or updating point of end line + Chyba při vytváření nebo aktualizaci bodu na konci čáry + + + + + Error creating or updating point along line + Chyba při vytváření nebo aktualizaci bodu podél čáry + + + + + Error creating or updating point of shoulder + Chyba při vytváření nebo aktualizaci bodu ramene + + + + + Error creating or updating point of normal + Chyba při vytváření nebo aktualizaci bodu kolmice + + + + + Error creating or updating point of bisector + Chyba při vytváření nebo aktualizaci bodu osy úhlu + + + + Error creating or updating point of lineintersection + Chyba při vytváření nebo aktualizaci bodu průsečíku čar + + + + + Error creating or updating point of contact + Chyba při vytváření nebo aktualizaci bodu dotyku + + + + Error creating or updating modeling point + Chyba při vytváření nebo aktualizaci bodu + + + + Error creating or updating height + Chyba při vytváření nebo aktualizaci výšky + + + + Error creating or updating triangle + Chyba při vytváření nebo aktualizaci trojúhelníku + + + + Error creating or updating point of intersection + Chyba při vytváření nebo aktualizaci bodu průsečíku + + + + + Error creating or updating cut spline point + + + + + + Error creating or updating cut spline path point + + + + + + Error creating or updating cut arc point + + + + + Error creating or updating line + Chyba při vytváření nebo aktualizaci čáry + + + + Error creating or updating simple curve + Chyba při vytváření nebo aktualizaci křivky + + + + Error creating or updating curve path + Chyba při vytváření nebo aktualizaci cesty křivky + + + + Error creating or updating modeling simple curve + Chyba při vytváření nebo aktualizaci modelové křivky + + + + Error creating or updating modeling curve path + Chyba při vytváření nebo aktualizaci cesty modelové křivky + + + + + Error creating or updating simple arc + Chyba při vytváření nebo aktualizaci oblouku + + + + Error creating or updating modeling arc + Chyba při vytváření nebo aktualizaci modelového oblouku + + + + Error creating or updating union details + + + + + Got wrong parameter id. Need only id > 0. + Obdrženo špatné ID parametru. Je potřeba jen ID > 0. + + + + This id is not unique. + Toto ID není jedinečné. + + VSplinePath - + Not enough points to create the spline. Nedostatek bodů na vytvoření křivky. - - - + + + This spline does not exist. - + Can't cut spline path with one point @@ -3182,12 +6122,12 @@ Do you want to save your changes? VTableGraphicsView - + can't find detail - + detail found @@ -3195,12 +6135,12 @@ Do you want to save your changes? VToolDetail - + Options Volby - + Delete Smazat @@ -3208,17 +6148,48 @@ Do you want to save your changes? VToolTriangle - Can't find point. - Nelze najít bod. + Nelze najít bod. VToolUnionDetails - + Can't find tag Modeling Nelze najít značku Modeling + + Variables + + + Line_ + Left symbol _ in name + + + + + AngleLine_ + Left symbol _ in name + + + + + Arc_ + Left symbol _ in name + + + + + Spl_ + Left symbol _ in name + + + + + SplPath + + + diff --git a/src/app/share/translations/valentina_de.ts b/src/app/share/translations/valentina_de.ts index 096e6d008..dcb843d63 100644 --- a/src/app/share/translations/valentina_de.ts +++ b/src/app/share/translations/valentina_de.ts @@ -1,35 +1,35 @@ - + ConfigDialog - + Apply - + &Cancel - + &Ok - + Config Dialog - + Configuration - + Pattern @@ -37,171 +37,214 @@ ConfigurationPage - + Setup user interface language updated and will be used the next time start - + Save Speichern - + Auto-save modified pattern - + Interval: - + min - + Language - + GUI language - + Decimal separator parts - + With OS options (.) + + DialogAboutApp + + + About Valentina + Über Valentina + + + + Valentina version + + + + + Contributors + + + + + Based on Qt %2 (32 bit) + Based on Qt %2 (32 bit) + + + + Built on %3 at %4 + Built on %3 at %4 + + + + Web site : %1 + + + + + Warning + + + + + Cannot open your default browser + + + DialogAlongLine - + Point along line Punkt auf einer Linie - + Length Länge - + Formula for the calculation of length of line Formel für die Berechnung der Länge der Linie - + Insert variable into the formula Variable in die Formel einfügen - - + + ... - + Calculate value Wert berechnen - + Value of length Wert der Länge - + _ - + Point label Bezeichnung des Punktes - + First point Erster Punkt - + First point of line Erster Punkt der Linie - + Second point Zweiter Punkt - + Second point of line Zweiter Punkt der Linie - + Type of line Linientyp - + Show line from first point to this point Linie vom ersten zu diesem Punkt zeigen - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - + Length of lines Linienlängen - + Length of arcs Bogenlängen - + Length of curves Kurvenlängen - + Variables - Click twice to insert into formula Variablen - Doppelklick fügt die Variable in die Formel ein - + Select second point of line Zweiten Punkt der Linie auswählen @@ -209,151 +252,151 @@ DialogArc - + Arc Bogen - + Radius Radius - + Formula for the calculation of radius of arc Formel fü die Berechnung des Bogenradius - + Insert variable into the formula Variable in die Formel einfügen - - - - - - + + + + + + ... - - - + + + Calculate value Wert berechnen - + Value of radius Wert des Radius - - - + + + _ - + First angle degree Erster Winkel in Grad - + First angle of arc counterclockwise Erster Winkel des Bogens gegen den Uhrzeigersinn - + Insert variable into formula Variable in die Formel einfügen - + Value of first angle Wert des ersten Winkels - + Second angle degree Zweiter Winkel in Grad - + Second angle of arc counterclockwise Zweiter Winkel des Bogens gegen den Uhrzeigersinn - + Insert marked variable into formula Markierte Variable in die Formel einfügen - + Value of second angle Wert des zweiten Winkels - + Center point Mittelpunkt - + Select point of center of arc Mittelpunkt des Bogens auswählen - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - + Length of lines Linienlängen - + Length of arcs Bogenlängen - + Length of curves Kurvenlängen - + Angle of lines Linenwinkel - + Variables Variablen - + Value of angle of line. Wert des Linenwinkels. @@ -361,138 +404,138 @@ DialogBisector - + Bisector Winkelhalbierende - + Length Länge - + Calculation of length of bisector by using the formula Formel zur Berechnung der Länge der Winkelhalbierenden - + Insert marked variable into the formula Markierte Variable in die Formel einfügen - - + + ... - + Calculate value Wert berechnen - + Value of length Wert der Länge - + _ - + Point label Bezeichnung des Punktes - + First point Erster Punkt - + First point of angle Punkt der ersten Schenkelgeraden - + Second point Zweiter Punkt - + Second point of angle Scheitel des Winkels - + Third point Punkt der zweiten Scheitelgeraden - + Third point of angle Punkt der zweiten Schenkelgeraden - + Type of line Linientyp - + Show line from second point to this point Zeige Linie vom Scheitelpunkt zu diesem Punkt - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - + Length of lines Linienlängen - + Length of arcs Bogenlängen - + Length of curves Kurvenlängen - + Variables - Click twice to insert into formula Variablen - Doppelklick fügt die Variable in die Formel ein - + Select second point of angle Scheitelpunkt auswählen - + Select third point of angle zweiten Punkt auf dem zweiten Schenkel wählen @@ -500,93 +543,93 @@ DialogCutArc - + Dialog Dialog - + Length Länge - + Formula for the calculation of the spline Formel für die Berechnung der Länge des Splines - - + + ... - + Calculate value Wert berechnen - + Value of length Wert der Länge - + _ - + Arc Bogen - + Selected curve Ausgewählte Kurve - + Point label Bezeichnung des Punktes - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - + Length of lines Linienlängen - + Length of arcs Bogenlängen - + Length of curves Kurvenlängen - + Variables - Click twice to insert into formula Variablen - Doppelklick fügt die Variable in die Formel ein @@ -594,93 +637,93 @@ DialogCutSpline - + Dialog Dialog - + Length Länge - + Formula for the calculation of the spline Formel für die Berechnung der Länge der Splines - - + + ... - + Calculate value Wert berechnen - + Value of length Wert der Länge - + _ - + Curve Kurve - + Selected curve Ausgewählte Kurve - + Point label Bezeichnung des Punktes - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - + Length of lines Linienlängen - + Length of arcs Bogenlängen - + Length of curves Kurvenlängen - + Variables - Click twice to insert into formula Variablen - Doppelklick fügt die Variable in die Formel ein @@ -688,93 +731,93 @@ DialogCutSplinePath - + Dialog Dialog - + Length Länge - + Formula for the calculation of the curve length Formel für die Berechnung der Kurvenlänge - - + + ... - + Calculate value Wert berechnen - + Value of length Wert der Länge - + _ - + Curve Kurve - + Selected curve path Ausgewählter Kurvenpfad - + Point label Bezeichnung des Punktes - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - + Length of lines Linienlängen - + Length of arcs Bogenlängen - + Length of curves Kurvenlängen - + Variables - Click twice to insert into formula Variablen - Doppelklick fügt die Variable in die Formel ein @@ -782,120 +825,119 @@ DialogDetail - - + + Detail Detail - + Bias X Bias X - + Bias Y Bias Y - + Options Optionen - + Name of detail Name des Deails - + Seam allowance Nahtzugaben - + Width Breite - + Closed Geschlossen - + Delete Löschen - + Got wrong scene object. Ignore. Falsches scene object. Wird ignoriert. - Got wrong tools. Ignore. - Falsche tools übermittelt. Wird ignoriert. + Falsche tools übermittelt. Wird ignoriert. DialogEndLine - + Point in the end of a line Punkt am Ende einer Linie - + Length Länge - + Formula for calculation of length of line Formel für die Berechnung der Länge der Linie - - - - - - - - - - + + + + + + + + + + ... - + Calculate value Wert berechnen - + Value of length Wert der Länge - + _ - + Base point Startpunkt - + First point of line Erster Punkt der Linie - + Point label Bezeichnung des Punktes @@ -904,62 +946,62 @@ Winkel - + Degree of angle - + Angle of line Linenwinkel - + Type of line Linientyp - + Show line from first point to this point Linie vom ersten zu diesem Punkt zeigen - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - + Length of lines Linienlängen - + Length of arcs Bogenlängen - + Length of curves Kurvenlängen - + Variables - Click twice to insert into formula Variablen - Doppelklick fügt die Variable in die Formel ein @@ -967,50 +1009,50 @@ DialogHeight - + Dialog Dialog - + Point label Bezeichnung des Punktes - + Base point Startpunkt - - - - + + + + First point of line Erster Punkt der Linie - + Second point of line Zweiter Punkt der Linie - + Type of line Linientyp - + Show line from first point to our point Zeige linie vom ersten punkt zu diesem Punkt - + Select first point of line Ersten Punkt der Linie auswählen - + Select second point of line Zweiten Punkt der Linie auswählen @@ -1018,242 +1060,422 @@ DialogHistory - + History Chronik - - + + Tool Werkzeug - + + + + + Can't create record. + + + + %1 - Base point %1 - Startpunkt - - + + %1_%2 - Line from point %1 to point %2 %1_%2 - Linie von Punkt %1 nach Punkt %2 - + %3 - Point along line %1_%2 %3 - Punkt auf der Linie %1_%2 - + %1 - Point of shoulder %1 -. Schulterpunkt - + %3 - normal to line %1_%2 %3 - Normale zur Linie %1_%2 - + %4 - bisector of angle %1_%2_%3 %4 - Winkelhalbierende des Winkels %1_%2_%3 - + %5 - intersection of lines %1_%2 and %3_%4 %5 - Schnittpunkt der Linien %1_%2 und %3_%4 - + Curve %1_%2 Kurve %1_%2 - + Arc with center in point %1 Bogen mit dem Mittelpunkt %1 - + Curve point %1 Kurvenpunkt %1 - + %4 - point of contact of arc with the center in point %1 and line %2_%3 %4 - Kontaktpunkt von Bogen und dem Mittelpunkt von Punkt %1 und Linie %2_%3 - + Point of perpendicular from point %1 to line %2_%3 Lotfußpunkt von Punkt %1 zu Linie %2_%3 - + Triangle: axis %1_%2, points %3 and %4 Dreieck: Achse %1_%2, Punkte %3 und %4 - + %1 - point of intersection %2 and %3 %1 - Schnittpunkt von %2 und %3 - + %1 - cut arc with center %2 - + %1 - cut curve %2_%3 - + %1 - cut curve path %2 - Got wrong tool type. Ignore. - Falscher Werkzeugtype übermittelt. Wird ignoriert. + Falscher Werkzeugtype übermittelt. Wird ignoriert. DialogIncrements - - + + Increments weitere Maße - Sizes table - Größentabelle + Größentabelle - - + + Name Bezeichnung - - + + The calculated value Berechneter Wert - - + + Base value Basiswert - - + + In sizes In Konfektionen - - In growths - In Größen + In Größen - - - - + + + Description Beschreibung - - + + + ... - + + + Measurements + + + + + Load another measurements table + + + + + Personal information + + + + + Given name + + + + + Family name + + + + + Birth date + + + + + Sex + + + + + Email + + + + + + In heights + + + + Lines Linien - + Line Linie - - - + + + Length Länge - + Curves Kurven - + Curve Kurve - + Arcs Bögen - + Arc Bogen - + + + + File error. + + + + + male + + + + + female + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + Individual measurements (*.vit) + + + + + + Open file + Datei öffnen + + + + + Wrong units. + + + + + Standard measurements (*.vst) + + + + Name_%1 - Can't convert toDouble value. - Kann nicht zu double konvertieren. + Kann nicht zu double konvertieren. + + + + DialogIndividualMeasurements + + Dialog + Dialog + + + + Individual measurements + + + + + Pattern piece name + + + + + Exist measurements + + + + + + Path: + + + + + + ... + + + + + New measurements + + + + + Units: + + + + + Could not create measurements file + + + + + Please try again or change file + + + + + + File error. + + + + + + Individual measurements (*.vit) + + + + + Open file + Datei öffnen + + + + Where save measurements? + + + + + centimeter + + + + + inch + DialogLine - + Line Linie - + First point Erster Punkt - + Second point Zweiter Punkt - + Type of line Linientyp - + Show line from first point to this point Linie vom ersten zu diesem Punkt zeigen - + Select second point Wähle zweiten Punkt @@ -1261,291 +1483,347 @@ DialogLineIntersect - + Intersection of lines Schnittpunkt von Linien - + Point label Bezeichnung des Punktes - + First line Erste Linie - - + + First point Erster Punkt - - + + Second point Zweiter Punkt - + Second line Zweite Linie - + Select second point of first line Zweiten Punkt der ersten Linie auswählen - + Select first point of second line Ersten Punkt der zweiten Linie auswählen - + Select second point of second line Zweiten Punkt der zweiten Linie auswählen + + DialogMeasurements + + + Measurements + + + + + <html><head/><body><p><span style=" font-size:18pt;">Please, choose pattern type.</span></p></body></html> + + + + + Graduation + + + + + Use for creation pattern standard measurement table + + + + + Individual + + + + + Use for creation pattern individual measurements + + + DialogNormal - + Normal Normale - + Length Länge - + Formula for calculation of length of normal Formel für die Berechnung der Länge der Normalen - + Insert variable into formula Variable in die Formel einfügen - - - - - - - - - - + + + + + + + + + + ... - + Calculate value Wert berechnen - + Value of length Wert der Länge - + _ - + Point label Bezeichnung des Punktes - + First point Erster Punkt - + Second point Zweiter Punkt - + Additional angle degrees Zusätzlicher Winkel - + Type of line Linientyp - + Show line from first point to this point Linie vom ersten zu diesem Punkt zeigen - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - + Length of lines Linienlängen - + Length of arcs Bogenlängen - + Length of curves Kurvenlängen - + Variables - Click twice to insert into formula Variablen - Doppelklick fügt die Variable in die Formel ein - + Select second point of line Zweiten Punkt der Linie auswählen + + DialogPatternProperties + + + Pattern properties + + + + + Author name + + + + + Pattern description + + + + + For technical notes. + + + DialogPointOfContact - + Point of contact Kontaktpunkt - + Radius Radius - + Formula for calculation of radius of arc Formel fü die Berechnung des Bogenradius - + Insert variable into formula Variable in die Formel einfügen - - + + ... - + Calculate value Wert berechnen - + Value of radius Wert des Radius - + _ - + Point label Bezeichnung des Punktes - + Center of arc Mittelpunkt des Bogens - - + + Select point of center of arc Mittelpunkt des Bogens auswählen - + Top of the line Anfang der Linie - + End of the line Ende der Linie - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - + Length of lines Linienlängen - + Length of arcs Bogenlängen - + Length of curves Kurvenlängen - + Variables - Click twice to insert into formula. Variablen - Doppelklick fügt die Variable in die Formel ein. - + Select second point of line Zweiten Punkt der Linie auswählen @@ -1553,37 +1831,37 @@ DialogPointOfIntersection - + Dialog Dialog - + Point label Bezeichnung des Punktes - + vertical point - + First point of angle Punkt der ersten Schenkelgeraden - + horizontal point - + Second point of angle Scheitel des Winkels - + Select point horizontally @@ -1591,115 +1869,115 @@ DialogShoulderPoint - - + + Point of shoulder - + Length Länge - + Formula for calculation of length of line Formel für die Berechnung der Länge der Linie - + Insert variable into formula Variable in die Formel einfügen - - + + ... - + Calculate value Wert berechnen - + Value of length Wert der Länge - + _ - + Point label Bezeichnung des Punktes - + First point Erster Punkt - + Second point Zweiter Punkt - + Type of line Linientyp - + Show line from first point to our point Zeige linie vom ersten punkt zu diesem Punkt - + Input data Eingabedaten - + Size and height Konfektion und Größe - + Standard table Standardtabelle - + Increments weitere Maße - - + + Length of lines Linienlängen - + Length of curves Kurvenlängen - + Variables - Click twice to insert into formula Variablen - Doppelklick fügt die Variable in die Formel ein - + Select second point of line Zweiten Punkt der Linie auswählen - + Select point of shoulder @@ -1707,32 +1985,32 @@ DialogSinglePoint - + Single point Einzelpunkt - + Coordinates on the sheet Koordinaten auf der Seite - + Coordinates Koordinaten - + Y coordinate Y Koordinate - + X coordinate X Koordinate - + Point label Bezeichnung des Punktes @@ -1740,47 +2018,47 @@ DialogSpline - + Curve Kurve - + First point Erster Punkt - + Length ratio of the first control point Längenverhältnis des ersten Kontrollpunktes - + The angle of the first control point Winkel des ersten Kontrollpunktes - + Second point Zweiter Punkt - + Length ratio of the second control point Längenverhältnis des zweiten Kontrollpunktes - + The angle of the second control point Winkel des zweiten Kontrollpunktes - + Coefficient of curvature of the curve Koeffizient für die Krümmung der Kurve - + Select last point of curve Letzten Punkt auf der Kurve auswählen @@ -1788,115 +2066,137 @@ DialogSplinePath - + Curve path Kurvenpfad - + Point of curve Punkt der Kurve - + Length ratio of the first control point Längenverhältnis des ersten Kontrollpunktes - + The angle of the first control point Winkel des ersten Kontrollpunktes - + Length ratio of the second control point Längenverhältnis des zweiten Kontrollpunktes - + The angle of the second control point Winkel des zweiten Kontrollpunktes - + List of points Liste von Punkten - + Coefficient of curvature of the curve Koeffizient für die Krümmung der Kurve - + Select point of curve path Punkt für den Kurvenpfad auswählen + + DialogStandardMeasurements + + + Standard table + Standardtabelle + + + + Pattern piece name + + + + + Standard measurements table + + + + + File error. + + + DialogTool - + Line Linie - + No line Keine Linie - + Dash Line - + Dot Line - + Dash Dot Line - + Dash Dot Dot Line - Can't find object by name - Kann kein Objekt mit diesen Namen finden + Kann kein Objekt mit diesen Namen finden - + Error Fehler - + Height Größe - + Size Konfektion - + Line length Linienlänge - + Arc length Bogenlänge - + Curve length Kurvenlänge @@ -1904,55 +2204,55 @@ DialogTriangle - + Dialog Dialog - + Point label Bezeichnung des Punktes - + First point of axis Erster Punkt der Achse - - - - + + + + First point of line Erster Punkt der Linie - + Second point of axis Zweiter Punkt der Achse - + First point Erster Punkt - + Second point Zweiter Punkt - + Select second point of axis Den zweiten Punkt der Achse auswählen - + Select first point Zweiten Punkt wählen - + Select second point Zweiten Punkt wählen @@ -1960,52 +2260,204 @@ DialogUnionDetails - + Dialog Dialog - + Do you really want union details? This operation can't be undone. Sollen die Details wirklich vereinigt werden? Diese Operation kann nicht rückgängig gemacht werden. - + Select first point Ersten Punkt auswählen - + Select second point Zweiten Punkt auswählen - - + + Select another second point Einen anderen zweiten Punkt auswählen - + Select detail Detail auswählen + + Functions + + + sin + sine function + + + + + cos + cosine function + + + + + tan + tangens function + + + + + asin + arcus sine function + + + + + acos + arcus cosine function + + + + + atan + arcus tangens function + + + + + sinh + hyperbolic sine function + + + + + cosh + hyperbolic cosine + + + + + tanh + hyperbolic tangens function + + + + + asinh + hyperbolic arcus sine function + + + + + acosh + hyperbolic arcus tangens function + + + + + atanh + hyperbolic arcur tangens function + + + + + log2 + logarithm to the base 2 + + + + + log10 + logarithm to the base 10 + + + + + log + logarithm to the base 10 + + + + + ln + logarithm to base e (2.71828...) + + + + + exp + e raised to the power of x + + + + + sqrt + square root of a value + + + + + sign + sign function -1 if x<0; 1 if x>0 + + + + + rint + round to nearest integer + + + + + abs + absolute value + + + + + min + min of all arguments + + + + + max + max of all arguments + + + + + sum + sum of all arguments + + + + + avg + mean value of all arguments + + + MainWindow - - + Valentina Valentina - + Tools for creating points. Werkzeuge zum Erstellen von Punkten. - + Point Punkt @@ -2014,25 +2466,25 @@ Werkzeug für den Punkt am Ende einer Linie. - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + ... @@ -2057,17 +2509,17 @@ Werzeug zur Erzeugung eines Lotfußpunktes. - + Tool triangle. Werkzeug Dreieck. - + Tools for creating lines. Werkzeuge zur Linienerzeugung. - + Line Linie @@ -2080,155 +2532,160 @@ Werkzeug zum Erzeugen eines Punktes am Schnittpunkt zweier Linien. - + Point at distance and angle - + Special point on shoulder. - + Point at intersection of arc and line. - + Point along bisector - + Point along perpendicular - + Point at distance along line - + Perpendicular point along line - + Line between points - + Point at line intersection - + Tools for creating curves. Werkzeuge zur Kurvenerzeugung. - + Curve Kurve - + Curve tool. Kurvenverkzeug. - + Tool for path curve. Werkzeug zur Definition einer Kurve. - + Tool segment a pathed curve. - + Tool for segmenting a curve. Werkzeug zur Kurvensegmentierung. - + Tools for creating arcs. Werkzeuge zur Kurvenerzeugung. - + Arc Bogen - + Arc tool. Bogenwerkzeug. - + Tools for creating details. Werkzeuge zur Detailerzeugung. - + Detail Detail - + Tool new detail. Werkzeug neues Detail. - + &File - + &Help - + &Pattern piece - + Save &As... - + About &Qt - + &About Valentina - + E&xit - + Exit the application - + Options... + + + Pattern properties + + File Datei @@ -2242,203 +2699,202 @@ Schnittteil - + toolBar toolBar - + toolBar_2 - + toolBar_3 - + New Neu - + &New - + Create a new pattern Neues Schnittmuster erstellen - + Ctrl+N Strg+N - + Open Öffnen - + &Open - + Open file with pattern Datei mit Schnittmuster öffnen - + Save Speichern - + &Save - + Save pattern Schnittmuster speichern - + Ctrl+S Strg+S - + Save as Speichern als - + Save not yet saved pattern Speichere ungesichertes Schnittmuster - + Ctrl+Shift+S Strg+Umschalt+S - + Draw Zeichnen - + Draw mode Zeichnenmodus - + Ctrl+W Strg+W - + Details Details - + Details mode Detailmodus - + Ctrl+E Strg+E - - + + Pointer tools Zeigerwerkzeuge - + New pattern piece Neues Schnittteil - + Add new pattern piece Neues Schnittteil hinzufügen - + Ctrl+Shift+N Strg+Umschalt+N - - + + Change the label of pattern piece Das Label eines Schnittteils ändern - + Table of variables Variablentabelle - + Tables of variables Variablentabellen - + Ctrl+T Strg+T - + History Chronik - + Ctrl+H Strg+H - + Layout Layout - + Create layout Layout erstellen - + Ctrl+L Strg+L - + About Qt Über Qt - About Valentina - Über Valentina + Über Valentina Exit Beenden - + Ctrl+Q Strg+Q @@ -2447,157 +2903,175 @@ Es muss ein neues Schnittteil erstellt werden, um fortfahen zu können. - + Pattern piece %1 Schnittteil %1 - - + Pattern piece: Schnittteil: - Enter a label for the pattern piece. - Eine Bezeichnung für das Schnittteil eingeben. + Eine Bezeichnung für das Schnittteil eingeben. - Error. Pattern piece of same label already exists. - Fehler. Ein Schnittteil mit der gleichen Bezeichnung existiert bereits. + Fehler. Ein Schnittteil mit der gleichen Bezeichnung existiert bereits. - Error creating pattern with the name - Fehler beim Erstellen eines Schnittmusters mit dem Namen + Fehler beim Erstellen eines Schnittmusters mit dem Namen - + Enter a new label for the pattern piece. Es muss ein neues Label für das Schnittteil eingegeben werden. - Error. Pattern piece of same name already exists. - Fehler. Ein Schnittteil mit dem selben Namen existiert bereits. + Fehler. Ein Schnittteil mit dem selben Namen existiert bereits. - + Error saving change!!! Fehler beim Speichern der Änderungen! - + Can't save new label of pattern piece Neue Bezeichnung für das Schnittteil kann nicht gespeichert werden - - + + Select point Punkt wählen - + Select first point Zweiten Punkt wählen - - - + + + Select first point of line Ersten Punkt der Linie auswählen - + Select first point of angle Den Erstehn Punkt des Winkels wählen - + Select first point of first line Den ersten Punkt der Linie wählen - + Select first point curve Ersten Punkt der Kurve wählen - + Select simple curve Einfache Kurve auswählen - + Select point of center of arc Mittelpunkt des Bogens auswählen - + Select point of curve path Punkt für den Kurvenpfad auswählen - + Select curve path Kurvenpfad auswählen - + Select points, arcs, curves clockwise. Punkte, Bögen, Kurven im Uhrzeigersinn auswählen. - + Select base point Fußpunkt auswählen - + Select first point of axis Ersten Punkt der Achse auswählen - + Select point vertically - + Select detail Detail auswählen - + Select arc - + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + + Wrong units. + + + + + File error. + + + + + The measurements file <br/><br/> <b>%1</b> <br/><br/> %3 + + + + + could not be found. Do you want to update the file location + + + + + Standard measurements (*.vst) + + + + + Individual measurements (*.vit) + + + Based on Qt %2 (32 bit) - Based on Qt %2 (32 bit) + Based on Qt %2 (32 bit) - Built on %3 at %4 - Built on %3 at %4 + Built on %3 at %4 - - <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 - - - - - Cannot read file %1: -%2. - - - - + File loaded @@ -2610,188 +3084,2500 @@ Sollen die Änderungen gespeichert werden? - + Height: Größe: - + Size: Konfektion: - + Pattern Piece: Schnittteil: - - + + Pattern files (*.val) - - + + /pattern.val - - Can't open pattern file %1: -%2. - - - - - Can't open schema file %1: -%2. - - - - + File saved - - Can not save pattern - - - - + untitled.val - + Unsaved change - + The pattern has been modified. Do you want to save your changes? - - Error! - Fehler! + Fehler! Error saving file. Can't save file. Fehler beim speichern der Datei. Kann Datei nicht speichern. - + + Open file Datei öffnen - - Error no unique id. - Fehler keine eindeutige id. + Fehler keine eindeutige id. - Got empty file name. - Leerer Dateiname bekommen. + Leerer Dateiname bekommen. - Could not copy temp file to pattern file - Temporäre Datei für das Schnittmuster kann nicht kopiert werden + Temporäre Datei für das Schnittmuster kann nicht kopiert werden - Could not remove pattern file - Schnittmuster Datei kann nicht entfernt werden + Schnittmuster Datei kann nicht entfernt werden Can't open pattern file. File name is empty Schnittmusterdatei kann nicht geöffnet werden. Der Dateiname ist leer - + + Error parsing file. Fehler beim Parsen der Datei. - + Error can't convert value. Fehler Wert kann nicht konvertiert werden. - + Error empty parameter. Fehler leerer parameter. - + Error wrong id. Fehler falsche Id. - - - Parsing pattern file error. - - - - - Validation file error. - - Error parsing pattern file. Fehler beim Parsen der Schnittmuster Datei. - - Error in line %1 column %2 - Fehler in Zeile %1 Reihe %2 + Fehler in Zeile %1 Reihe %2 + + + + Measurements + + + head_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Head girth + Full measurement name + + + + + Around fullest part of Head + Full measurement description + + + + + mid_neck_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Mid-neck girth + Full measurement name + + + + + Around middle part of Neck + Full measurement description + + + + + neck_base_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck Base girth + Full measurement name + + + + + Around Neck at base + Full measurement description + + + + + head_and_neck_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Head and Neck length + Full measurement name + + + + + Vertical Distance from Crown to Nape + Full measurement description + + + + + center_front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Center length + Full measurement name + + + + + Front Neck Center over tape at Bustline to Front Waist Center + Full measurement description + + + + + center_back_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Center length + Full measurement name + + + + + Back Neck Center to Back Waist Center + Full measurement description + + + + + shoulder_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder length + Full measurement name + + + + + NeckPoint to ShoulderTip + Full measurement description + + + + + side_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Side Waist length + Full measurement name + + + + + Armpit to Waist side + Full measurement description + + + + + trunk_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Trunk length + Full measurement name + + + + + Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning point + Full measurement description + + + + + shoulder_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder girth + Full measurement name + + + + + Around Arms and Torso, at bicep level parallel to floor, with arms hanging at the sides + Full measurement description + + + + + upper_chest_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upper Chest girth + Full measurement name + + + + + Around Chest at Armfold level, will be parallel to floor across back, will not be parallel to floor across front chest + Full measurement description + + + + + bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust girth + Full measurement name + + + + + Around fullest part of Bust, parallel to floor + Full measurement description + + + + + under_bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Under Bust girth + Full measurement name + + + + + Around Chest below the Bust, parallel to floor + Full measurement description + + + + + waist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist girth + Full measurement name + + + + + Tie a string around smallest part of waist, keep string tied while taking meaasurements. Not usually parallel to floor for front waist or back waist. + Full measurement description + + + + + high_hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip girth + Full measurement name + + + + + Around HighHip, parallel to floor + Full measurement description + + + + + hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip girth + Full measurement name + + + + + Around Hip, parallel to floor + Full measurement description + + + + + upper_front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Upper Chest width + Full measurement name + + + + + Across Front UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Chest width + Full measurement name + + + + + Across Front Chest, from armfold to armfold + Full measurement description + + + + + across_front_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Front + Full measurement description + + + + + across_back_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Back + Full measurement description + + + + + Back Upper Chest width + Full measurement name + + + + + Across Back UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + upper_back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Chest width + Full measurement name + + + + + Across Back Chest, from armfold to armfold + Full measurement description + + + + + bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + BustPoint to BustPoint + Full measurement name + + + + + Distance between BustPoints, across Chest + Full measurement description + + + + + halter_bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + Halter Bustpoint to Bustpoint + Full measurement name + + + + + Distance from Bustpoint, behind neck, down to Bustpoint + Full measurement description + + + + + neck_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + NeckPoint to BustPoint + Full measurement name + + + + + From NeckPoint to BustPoint + Full measurement description + + + + + crotch_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch length + Full measurement name + + + + + From Front Waist Center, down to crotch, up to Back Waist Center + Full measurement description + + + + + rise_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Rise height + Full measurement name + + + + + Sit on hard chair, measure from side waist straight down to chair bottom + Full measurement description + + + + + shoulder_drop + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Drop + Full measurement name + + + + + Vertical Distance from NeckPoint level to ShoulderTip level + Full measurement description + + + + + shoulder_slope_degrees + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Slope degrees + Full measurement name + + + + + Degrees of angle from NeckPoint to ShoulderTip – requires goniometer + Full measurement description + + + + + front_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Shoulder Balance + Full measurement name + + + + + ShoulderTip to Front Waist Center + Full measurement description + + + + + back_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Shoulder Balance + Full measurement name + + + + + ShoulderTip to Back Waist Center + Full measurement description + + + + + front_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Full Length + Full measurement name + + + + + NeckPoint straight down front chest to Waistline + Full measurement description + + + + + back_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Full Length + Full measurement name + + + + + Back NeckPoint straight down back chest to Waistline + Full measurement description + + + + + front_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint through Front Neck Center + Full measurement description + + + + + back_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint across Nape + Full measurement description + + + + + front_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + front_upper-bust_arc + Full measurement name + + + + + front_upper-bust_arc + Full measurement description + + + + + back_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperBust arc + Full measurement name + + + + + Back UpperBust side to side + Full measurement description + + + + + front_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist arc + Full measurement name + + + + + Front Waist side to side + Full measurement description + + + + + back_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist arc + Full measurement name + + + + + Back Waist side to side + Full measurement description + + + + + front_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperHip arc + Full measurement name + + + + + Front UpperHip side to side + Full measurement description + + + + + back_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperHip arc + Full measurement name + + + + + Back UpperHip side to side + Full measurement description + + + + + front_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Hip arc + Full measurement name + + + + + Front Hip side to side + Full measurement description + + + + + back_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Hip arc + Full measurement name + + + + + Back Hip side to side + Full measurement description + + + + + chest_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest Balance + Full measurement name + + + + + NeckPoint to Front ArmfoldPoint + Full measurement description + + + + + back_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Balance + Full measurement name + + + + + NeckPoint to Back ArmfoldPoint + Full measurement description + + + + + front_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist Balance + Full measurement name + + + + + NeckPoint across Front Chest to Waist side + Full measurement description + + + + + back_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist Balance + Full measurement name + + + + + NeckPoint across Back Chest to Waist side + Full measurement description + + + + + front_neck_to_upper_chest_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperChest height + Full measurement name + + + + + Front Neck Center straight down to UpperChest line + Full measurement description + + + + + front_neck_to_bust_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust height + Full measurement name + + + + + Front Neck Center straight down to Bust line + Full measurement description + + + + + armscye_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye Girth + Full measurement name + + + + + Around Armscye + Full measurement description + + + + + elbow_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow Girth + Full measurement name + + + + + Around Elbow with elbow bent + Full measurement description + + + + + upper_arm_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upperarm Girth + Full measurement name + + + + + Around UpperArm + Full measurement description + + + + + wrist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Wrist girth + Full measurement name + + + + + Around Wrist + Full measurement description + + + + + scye_depth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye depth + Full measurement name + + + + + Nape straight down to UnderBust line (same as Back UpperBust height) + Full measurement description + + + + + shoulder_and_arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder and Arm length + Full measurement name + + + + + NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + underarm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Underarm length + Full measurement name + + + + + Armpit to Wrist, with arm straight and hanging at side + Full measurement description + + + + + cervicale_to_wrist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to wrist length + Full measurement name + + + + + Nape to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + shoulder_to_elbow_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow length + Full measurement name + + + + + ShoulderTip to Elbow, with elbow bent and hand on hip + Full measurement description + + + + + arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Arm length + Full measurement name + + + + + ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + hand_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand width + Full measurement name + + + + + Hand side to side + Full measurement description + + + + + hand_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand length + Full measurement name + + + + + Hand Middle Finger tip to wrist + Full measurement description + + + + + hand_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand girth + Full measurement name + + + + + Around Hand + Full measurement description + + + + + thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Thigh girth + Full measurement name + + + + + Around Thigh + Full measurement description + + + + + mid_thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Midthigh girth + Full measurement name + + + + + Around MidThigh + Full measurement description + + + + + knee_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee girth + Full measurement name + + + + + Around Knee + Full measurement description + + + + + calf_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Calf girth + Full measurement name + + + + + Around Calf + Full measurement description + + + + + ankle_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle girth + Full measurement name + + + + + Around Ankle + Full measurement description + + + + + knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee height + Full measurement name + + + + + Knee to Floor + Full measurement description + + + + + ankle_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle height + Full measurement name + + + + + Ankle to Floor + Full measurement description + + + + + foot_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot width + Full measurement name + + + + + Widest part of Foot side to side + Full measurement description + + + + + foot_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot length + Full measurement name + + + + + Tip of Longest Toe straight to back of heel + Full measurement description + + + + + height + Short measurement name. Don't use math symbols in name!!!! + + + + + Total Height + Full measurement name + + + + + Top of head to floor + Full measurement description + + + + + cervicale_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape height + Full measurement name + + + + + Nape to Floor + Full measurement description + + + + + cervicale_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to knee height + Full measurement name + + + + + Nape to Knee + Full measurement description + + + + + waist_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist height + Full measurement name + + + + + Waist side to floor + Full measurement description + + + + + high_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip height + Full measurement name + + + + + HighHip side to Floor + Full measurement description + + + + + hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip height + Full measurement name + + + + + Hip side to Floor + Full measurement description + + + + + waist_to_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Hip height + Full measurement name + + + + + Waist side to Hip + Full measurement description + + + + + waist_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Knee height + Full measurement name + + + + + Waist side to Knee + Full measurement description + + + + + crotch_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch height/Inseam + Full measurement name + + + + + Crotch to Floor along inside leg + Full measurement description + + + + + size + Short measurement name. Don't use math symbols in name!!!! + + + + + Size + Full measurement name + Konfektion + + + + Size + Full measurement description + Konfektion + + + + height_front_neck_base_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height front neck base point + Full measurement name + + + + + Height of the point base of the neck in front + Full measurement description + + + + + height_base_neck_side_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height base neck side point + Full measurement name + + + + + Height of the base of the neck side point + Full measurement description + + + + + height_shoulder_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height shoulder point + Full measurement name + + + + + The height of the shoulder point + Full measurement description + + + + + height_nipple_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height nipple point + Full measurement name + + + + + Height nipple point + Full measurement description + + + + + height_back_angle_axilla + Short measurement name. Don't use math symbols in name!!!! + + + + + Height back angle axilla + Full measurement name + + + + + Height back angle axilla + Full measurement description + + + + + height_scapular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height scapular point + Full measurement name + + + + + Height scapular point + Full measurement description + + + + + height_under_buttock_folds + Short measurement name. Don't use math symbols in name!!!! + + + + + Height under buttock folds + Full measurement name + + + + + Height under buttock folds + Full measurement description + + + + + hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Hips excluding protruding abdomen + Full measurement name + + + + + Hips excluding protruding abdomen + Full measurement description + + + + + girth_foot_instep + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth foot instep + Full measurement name + + + + + Girth foot instep + Full measurement description + + + + + side_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Side waist to floor + Full measurement name + + + + + The distance from the side waist to floor + Full measurement description + + + + + front_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist to floor + Full measurement name + + + + + The distance from the front waist to floor + Full measurement description + + + + + arc_through_groin_area + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through groin area + Full measurement name + + + + + Arc through groin area + Full measurement description + + + + + waist_to_plane_seat + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to plane seat + Full measurement name + + + + + The distance from the waist to the plane seat + Full measurement description + + + + + neck_to_radial_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to radial point + Full measurement name + + + + + The distance from the base of the neck to the side of the radial point + Full measurement description + + + + + neck_to_third_finger + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to third finger + Full measurement name + + + + + Distance from the base of the neck side point to the end of the third finger + Full measurement description + + + + + neck_to_first_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to first line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the side of the first line in front of chest circumference + Full measurement description + + + + + front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist length + Full measurement name + + + + + The distance from the base of the neck to the waist side front (waist length in the front) + Full measurement description + + + + + arc_through_shoulder_joint + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through shoulder joint + Full measurement name + + + + + Arc through the highest point of the shoulder joint + Full measurement description + + + + + neck_to_back_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to back line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the back line of chest circumference of the first and the second based on ledge vanes + Full measurement description + + + + + waist_to_neck_side + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to neck side + Full measurement name + + + + + The distance from the waist to the back base of the neck side point + Full measurement description + + + + + arc_length_upper_body + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc length upper body + Full measurement name + + + + + Arc length of the upper body through the base of the neck side point + Full measurement description + + + + + chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest width + Full measurement name + + + + + Chest width + Full measurement description + + + + + anteroposterior_diameter_hands + Short measurement name. Don't use math symbols in name!!!! + + + + + Anteroposterior diameter hands + Full measurement name + + + + + Anteroposterior diameter of the hands + Full measurement description + + + + + height_clavicular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height clavicular point + Full measurement name + + + + + Height clavicular point + Full measurement description + + + + + height_armhole_slash + Short measurement name. Don't use math symbols in name!!!! + + + + + Height armhole slash + Full measurement name + + + + + The distance from the point to the cervical level of the posterior angle of the front armpit (underarm height oblique) + Full measurement description + + + + + slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Slash shoulder height + Full measurement name + + + + + Slash shoulder height + Full measurement description + + + + + half_girth_neck + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck + Full measurement name + + + + + Half girth neck + Full measurement description + + + + + half_girth_neck_for_shirts + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck for shirts + Full measurement name + + + + + Half girth neck for shirts + Full measurement description + + + + + half_girth_chest_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest first + Full measurement name + + + + + Half girth chest first + Full measurement description + + + + + half_girth_chest_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest second + Full measurement name + + + + + Half girth chest second + Full measurement description + + + + + half_girth_chest_third + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest third + Full measurement name + + + + + Half girth chest third + Full measurement description + + + + + half_girth_waist + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth waist + Full measurement name + + + + + Half girth waist + Full measurement description + + + + + half_girth_hips_considering_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips considering protruding abdomen + Full measurement name + + + + + Half girth hips considering protruding abdomen + Full measurement description + + + + + half_girth_hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips excluding protruding abdomen + Full measurement name + + + + + Half girth hips excluding protruding abdomen + Full measurement description + + + + + girth_knee_flexed_feet + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth knee flexed feet + Full measurement name + + + + + Girth knee flexed feet + Full measurement description + + + + + neck_transverse_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck transverse diameter + Full measurement name + + + + + Neck transverse diameter + Full measurement description + + + + + front_slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front slash shoulder height + Full measurement name + + + + + Front slash shoulder height + Full measurement description + + + + + neck_to_front_waist_line + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to front waist line + Full measurement name + + + + + The distance from the base of the neck to the waist line front + Full measurement description + + + + + hand_vertical_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand vertical diameter + Full measurement name + + + + + Hand vertical diameter + Full measurement description + + + + + neck_to_knee_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to knee point + Full measurement name + + + + + Distance from neck to knee point + Full measurement description + + + + + waist_to_knee + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to knee + Full measurement name + + + + + The distance from the waist to the knee + Full measurement description + + + + + shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder height + Full measurement name + + + + + Shoulder height + Full measurement description + + + + + head_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Head height + Full measurement name + + + + + Head height + Full measurement description + + + + + body_position + Short measurement name. Don't use math symbols in name!!!! + + + + + Body position + Full measurement name + + + + + Body position + Full measurement description + + + + + arc_behind_shoulder_girdle + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc behind shoulder girdle + Full measurement name + + + + + Arc behind the shoulder girdle + Full measurement description + + + + + neck_to_neck_base + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to neck base + Full measurement name + + + + + Distance from neck point to point on the base of the neck side neck girth measurement line + Full measurement description + + + + + depth_waist_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist first + Full measurement name + + + + + Depth waist first + Full measurement description + + + + + depth_waist_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist second + Full measurement name + + + + + Depth waist second + Full measurement description + PatternPage - + User - + User name - + Graphical output - + Use antialiasing - + Undone - + Count steps + + PostfixOperators + + + cm + centimeter + + + + + mm + millimeter + + + + + in + inch + + + QObject - + Create new pattern piece to start working. Es muss ein neues Schnittteil erstellt werden, um fortfahen zu können. @@ -2799,130 +5585,168 @@ Do you want to save your changes? TableWindow - + Create a layout Layout erstellen - + toolBar toolBar - + Save Speichern - - + + Save layout Layout speichern - + Next Weiter - + Next detail Nächstes Detail - + Turn Drehen - + Turn the detail 90 degrees - + Stop Stop - + Stop laying Legen stoppen - + Enlarge letter Buchstaben vergrößern - + Enlarge the length of the sheet Länge des Blattes verlängern - + Reduce sheet Seite verkleinern - + Reduce the length of the sheet Die Länge der Seite verkleinern - - + + Mirroring Spiegeln - - + + Zoom In Vergrößern - - + + Zoom Out Verkleinern - + 0 details left. 0 Details übrig. - - + + Collisions not found. - + %1 details left. %1 Details übrig. - + + untitled + + + + + Svg files (*.svg) + + + + + PDF files (*.pdf) + + + + + Images (*.png) + + + + + PS files (*.ps) + + + + + EPS files (*.eps) + + + + Collisions found. - - SVG Generator Example Drawing - SVG Generator Beispiel Zeichnung + + Creating file '%1' failed! %2 + + + + + Critical error! + + + + SVG Generator Example Drawing + SVG Generator Beispiel Zeichnung - An SVG drawing created by the SVG Generator Example provided with Qt. - Eine SVG Zeichnung, die vom SVG Generator Beispiel mit Hilfe von Qt erstellt wurde. + Eine SVG Zeichnung, die vom SVG Generator Beispiel mit Hilfe von Qt erstellt wurde. VAbstractNode - + Can't find tag Modeling Kann den Tag Modeling nicht finden @@ -2930,12 +5754,12 @@ Do you want to save your changes? VAbstractTool - + Confirm the deletion. - + Do you really want delete? @@ -2943,42 +5767,36 @@ Do you want to save your changes? VApplication - - - - - - Error! - Fehler! + Fehler! - + Error parsing file. Program will be terminated. Fehler beim Parsen der Datei. Das Programm wird geschlossen. - + Error bad id. Program will be terminated. Fehler - unbekannte Id. Fas Programm wird geschlossen. - + Error can't convert value. Program will be terminated. Fehler - Wert kann nicht konvertiert werden. Das Programm wird geschlossen. - + Error empty parameter. Program will be terminated. Fehler - leerer Parameter. Das Programm wird geschlossen. - + Error wrong id. Program will be terminated. Fehler - falsche Id. Das Programm wird geschlossen. - + Something's wrong!! @@ -2990,215 +5808,373 @@ Do you want to save your changes? VContainer - - - + + + Can't find object Objekt kann nicht gefunden werden + + + Can't cast object + + VDomDocument - - Can't find tool id = %1 in table. + Got wrong parameter id. Need only id > 0. + Falsche Parameter id übermittelt. Erwarte id > 0. + + + Can't convert toLongLong parameter + Kann Parameter nicht toLongLong konvertieren + + + + Can't convert toUInt parameter - - Got wrong parameter id. Need only id > 0. - Falsche Parameter id übermittelt. Erwarte id > 0. - - - - Can't convert toLongLong parameter - Kann Parameter nicht toLongLong konvertieren - - - + Got empty parameter Leerer Parameter übermittelt - + Can't convert toDouble parameter Kann Parameter nicht toDouble konvertieren - + + + Can't open file %1: +%2. + + + + + Can't open schema file %1: +%2. + + + + + Validation error in line %1 column %2 + + + + + Parcing error in line %1 column %2 + + + This id is not unique. - Diese Id ist kein Unikat. + Diese Id ist kein Unikat. - Error creating or updating detail - Fehler beim Erstellen oder Aktualisieren des Details + Fehler beim Erstellen oder Aktualisieren des Details - Error creating or updating single point - Fehler beim Erstellen oder Aktualisieren eines Einzelpunktes + Fehler beim Erstellen oder Aktualisieren eines Einzelpunktes - Error creating or updating point of end line - Fehler beim Erstellen oder Aktualisieren eines Punktes am Ende einer Linie + Fehler beim Erstellen oder Aktualisieren eines Punktes am Ende einer Linie - Error creating or updating point along line - Fehler beim Erstellen oder Aktualisieren eines Punktes auf einer Linie + Fehler beim Erstellen oder Aktualisieren eines Punktes auf einer Linie - Error creating or updating point of shoulder - Fehler beim Erstellen oder Aktualisieren eines Schulterpunktes + Fehler beim Erstellen oder Aktualisieren eines Schulterpunktes - Error creating or updating point of normal - Fehler beim Erstellen oder Aktualisieren eines Punktes einer Normalen + Fehler beim Erstellen oder Aktualisieren eines Punktes einer Normalen - Error creating or updating point of bisector - Fehler beim Erstellen oder Aktualisieren einer Winkelhalbierenden + Fehler beim Erstellen oder Aktualisieren einer Winkelhalbierenden - Error creating or updating point of lineintersection - Fehler beim Erstellen oder Aktualisieren eines Linienschnittpunktes + Fehler beim Erstellen oder Aktualisieren eines Linienschnittpunktes - Error creating or updating point of contact - Fehler beim Erstellen oder Aktualisieren eines Berührungpunktes + Fehler beim Erstellen oder Aktualisieren eines Berührungpunktes - Error creating or updating modeling point - Fehler beim Erstellen oder Aktualisieren beim Modellieren eines Punktes + Fehler beim Erstellen oder Aktualisieren beim Modellieren eines Punktes - Error creating or updating height - Fehler beim Erstellen oder Aktualisieren der Größe + Fehler beim Erstellen oder Aktualisieren der Größe - Error creating or updating triangle - Fehler beim Erstellen oder Aktualisieren eines Dreiecks + Fehler beim Erstellen oder Aktualisieren eines Dreiecks - Error creating or updating point of intersection - Fehler beim Erstellen oder Aktualisieren eines Schnittpunktes + Fehler beim Erstellen oder Aktualisieren eines Schnittpunktes - - Error creating or updating cut spline point - - - - - Error creating or updating cut spline path point - - - - - Error creating or updating cut arc point - - - - Error creating or updating line - Fehler beim Erstellen oder Aktualisieren einer Linie + Fehler beim Erstellen oder Aktualisieren einer Linie - Error creating or updating simple curve - Fehler beim Erstellen oder Aktualisieren einer einfachen Kurve + Fehler beim Erstellen oder Aktualisieren einer einfachen Kurve - Error creating or updating curve path - Fehler beim Erstellen oder Aktualisieren eines Kurvenpfades + Fehler beim Erstellen oder Aktualisieren eines Kurvenpfades - Error creating or updating modeling simple curve - Fehler beim Erstellen oder Aktuallisieren der Modellierung einer einfachen Kurve + Fehler beim Erstellen oder Aktuallisieren der Modellierung einer einfachen Kurve - Error creating or updating modeling curve path - Fehler beim Erstellen oder Aktualisieren der Modellierung eines Kurvenpfades + Fehler beim Erstellen oder Aktualisieren der Modellierung eines Kurvenpfades - Error creating or updating simple arc - Fehler beim Erstellen oder Aktualsieren eines einfachen Bogens + Fehler beim Erstellen oder Aktualsieren eines einfachen Bogens - Error creating or updating modeling arc - Fehler beim Erstellen oder Aktualisieren der Modellierung eines Bogens + Fehler beim Erstellen oder Aktualisieren der Modellierung eines Bogens - Error creating or updating union details - Fehler beim Vereinigen der Details + Fehler beim Vereinigen der Details - Error! - Fehler! + Fehler! - Error parsing file. - Fehler beim Parsen der Datei. + Fehler beim Parsen der Datei. VDrawTool - + Can not find the element after which you want to insert. Kann das Element nicht finden, nach dem eingefügt werden soll. - + Can't find tag Calculation Kann den Tag Calculation nicht finden - + Options Optionen - + Delete Löschen + + VException + + + Critical error! + + + + + VPattern + + + Can't find tool id = %1 in table. + + + + + Error no unique id. + Fehler keine eindeutige id. + + + + Error! + Fehler! + + + + Error parsing file. + Fehler beim Parsen der Datei. + + + + Error creating or updating detail + Fehler beim Erstellen oder Aktualisieren des Details + + + + Error creating or updating single point + Fehler beim Erstellen oder Aktualisieren eines Einzelpunktes + + + + + Error creating or updating point of end line + Fehler beim Erstellen oder Aktualisieren eines Punktes am Ende einer Linie + + + + + Error creating or updating point along line + Fehler beim Erstellen oder Aktualisieren eines Punktes auf einer Linie + + + + + Error creating or updating point of shoulder + Fehler beim Erstellen oder Aktualisieren eines Schulterpunktes + + + + + Error creating or updating point of normal + Fehler beim Erstellen oder Aktualisieren eines Punktes einer Normalen + + + + + Error creating or updating point of bisector + Fehler beim Erstellen oder Aktualisieren einer Winkelhalbierenden + + + + Error creating or updating point of lineintersection + Fehler beim Erstellen oder Aktualisieren eines Linienschnittpunktes + + + + + Error creating or updating point of contact + Fehler beim Erstellen oder Aktualisieren eines Berührungpunktes + + + + Error creating or updating modeling point + Fehler beim Erstellen oder Aktualisieren beim Modellieren eines Punktes + + + + Error creating or updating height + Fehler beim Erstellen oder Aktualisieren der Größe + + + + Error creating or updating triangle + Fehler beim Erstellen oder Aktualisieren eines Dreiecks + + + + Error creating or updating point of intersection + Fehler beim Erstellen oder Aktualisieren eines Schnittpunktes + + + + + Error creating or updating cut spline point + + + + + + Error creating or updating cut spline path point + + + + + + Error creating or updating cut arc point + + + + + Error creating or updating line + Fehler beim Erstellen oder Aktualisieren einer Linie + + + + Error creating or updating simple curve + Fehler beim Erstellen oder Aktualisieren einer einfachen Kurve + + + + Error creating or updating curve path + Fehler beim Erstellen oder Aktualisieren eines Kurvenpfades + + + + Error creating or updating modeling simple curve + Fehler beim Erstellen oder Aktuallisieren der Modellierung einer einfachen Kurve + + + + Error creating or updating modeling curve path + Fehler beim Erstellen oder Aktualisieren der Modellierung eines Kurvenpfades + + + + + Error creating or updating simple arc + Fehler beim Erstellen oder Aktualsieren eines einfachen Bogens + + + + Error creating or updating modeling arc + Fehler beim Erstellen oder Aktualisieren der Modellierung eines Bogens + + + + Error creating or updating union details + Fehler beim Vereinigen der Details + + + + Got wrong parameter id. Need only id > 0. + Falsche Parameter id übermittelt. Erwarte id > 0. + + + + This id is not unique. + Diese Id ist kein Unikat. + + VSplinePath - + Not enough points to create the spline. Nicht genügend Punkte um den Spline zu erstellen. - - - + + + This spline does not exist. Dieser Spline existiert nicht. - + Can't cut spline path with one point Splinepfad mit nur einem Punkt kann nicht zerschnitten werden @@ -3206,12 +6182,12 @@ Do you want to save your changes? VTableGraphicsView - + can't find detail Kann Detail nicht finden - + detail found Detail gefunden @@ -3219,12 +6195,12 @@ Do you want to save your changes? VToolDetail - + Options Optionen - + Delete Löschen @@ -3232,17 +6208,48 @@ Do you want to save your changes? VToolTriangle - Can't find point. - Punkt kann nicht gefunden werden. + Punkt kann nicht gefunden werden. VToolUnionDetails - + Can't find tag Modeling Kann den Tag Modeling nicht finden + + Variables + + + Line_ + Left symbol _ in name + + + + + AngleLine_ + Left symbol _ in name + + + + + Arc_ + Left symbol _ in name + + + + + Spl_ + Left symbol _ in name + + + + + SplPath + + + diff --git a/src/app/share/translations/valentina_fr.ts b/src/app/share/translations/valentina_fr.ts index 17d0e4ff1..3bd53fc36 100644 --- a/src/app/share/translations/valentina_fr.ts +++ b/src/app/share/translations/valentina_fr.ts @@ -1,35 +1,35 @@ - + ConfigDialog - + Apply - + &Cancel - + &Ok - + Config Dialog - + Configuration - + Pattern @@ -37,171 +37,214 @@ ConfigurationPage - + Setup user interface language updated and will be used the next time start - + Save - + Auto-save modified pattern - + Interval: - + min - + Language - + GUI language - + Decimal separator parts - + With OS options (.) + + DialogAboutApp + + + About Valentina + + + + + Valentina version + + + + + Contributors + + + + + Based on Qt %2 (32 bit) + + + + + Built on %3 at %4 + + + + + Web site : %1 + + + + + Warning + + + + + Cannot open your default browser + + + DialogAlongLine - + Point along line - + Length Longueur - + Formula for the calculation of length of line - + Insert variable into the formula - - + + ... - + Calculate value Calculer valeur - + Value of length - + _ - + Point label Désignation de point - + First point Premier point - + First point of line - + Second point - + Second point of line - + Type of line Type de ligne - + Show line from first point to this point - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula - + Select second point of line @@ -209,151 +252,151 @@ DialogArc - + Arc - + Radius Rayon - + Formula for the calculation of radius of arc - + Insert variable into the formula - - - - - - + + + + + + ... - - - + + + Calculate value Calculer valeur - + Value of radius - - - + + + _ - + First angle degree - + First angle of arc counterclockwise - + Insert variable into formula - + Value of first angle - + Second angle degree - + Second angle of arc counterclockwise - + Insert marked variable into formula - + Value of second angle - + Center point - + Select point of center of arc - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Angle of lines - + Variables - + Value of angle of line. @@ -361,138 +404,138 @@ DialogBisector - + Bisector - + Length Longueur - + Calculation of length of bisector by using the formula - + Insert marked variable into the formula - - + + ... - + Calculate value Calculer valeur - + Value of length - + _ - + Point label Désignation de point - + First point Premier point - + First point of angle - + Second point - + Second point of angle - + Third point - + Third point of angle - + Type of line Type de ligne - + Show line from second point to this point - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula - + Select second point of angle - + Select third point of angle @@ -500,93 +543,93 @@ DialogCutArc - + Dialog - + Length Longueur - + Formula for the calculation of the spline - - + + ... - + Calculate value Calculer valeur - + Value of length - + _ - + Arc - + Selected curve - + Point label Désignation de point - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula @@ -594,93 +637,93 @@ DialogCutSpline - + Dialog - + Length Longueur - + Formula for the calculation of the spline - - + + ... - + Calculate value Calculer valeur - + Value of length - + _ - + Curve - + Selected curve - + Point label Désignation de point - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula @@ -688,93 +731,93 @@ DialogCutSplinePath - + Dialog - + Length Longueur - + Formula for the calculation of the curve length - - + + ... - + Calculate value Calculer valeur - + Value of length - + _ - + Curve - + Selected curve path - + Point label Désignation de point - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula @@ -782,180 +825,175 @@ DialogDetail - - + + Detail - + Bias X - + Bias Y - + Options - + Name of detail - + Seam allowance - + Width - + Closed - + Delete - + Got wrong scene object. Ignore. - - - Got wrong tools. Ignore. - - DialogEndLine - + Point in the end of a line - + Length Longueur - + Formula for calculation of length of line - - - - - - - - - - + + + + + + + + + + ... - + Calculate value Calculer valeur - + Value of length - + _ - + Base point - + First point of line - + Point label Désignation de point - + Degree of angle - + Angle of line - + Type of line Type de ligne - + Show line from first point to this point - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula @@ -963,50 +1001,50 @@ DialogHeight - + Dialog - + Point label Désignation de point - + Base point - - - - + + + + First point of line - + Second point of line - + Type of line Type de ligne - + Show line from first point to our point - + Select first point of line - + Select second point of line @@ -1014,242 +1052,402 @@ DialogHistory - + History - - + + Tool - + + + + + Can't create record. + + + + %1 - Base point - - + + %1_%2 - Line from point %1 to point %2 - + %3 - Point along line %1_%2 - + %1 - Point of shoulder - + %3 - normal to line %1_%2 - + %4 - bisector of angle %1_%2_%3 - + %5 - intersection of lines %1_%2 and %3_%4 - + Curve %1_%2 - + Arc with center in point %1 - + Curve point %1 - + %4 - point of contact of arc with the center in point %1 and line %2_%3 - + Point of perpendicular from point %1 to line %2_%3 - + Triangle: axis %1_%2, points %3 and %4 - + %1 - point of intersection %2 and %3 - + %1 - cut arc with center %2 - + %1 - cut curve %2_%3 - + %1 - cut curve path %2 - - - Got wrong tool type. Ignore. - - DialogIncrements - - + + Increments - - Sizes table + + Email - - + + Name - - + + The calculated value - - + + Base value - - + + In sizes - - - In growths - - - - - - - + + + Description - - + + + ... - + + + Measurements + + + + + Load another measurements table + + + + + Personal information + + + + + Given name + + + + + Family name + + + + + Birth date + + + + + Sex + + + + + + In heights + + + + Lines - + Line - - - + + + Length Longueur - + Curves - + Curve - + Arcs - + Arc - - Name_%1 + + + + File error. - - Can't convert toDouble value. + + male + + + + + female + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + Individual measurements (*.vit) + + + + + + Open file + + + + + + Wrong units. + + + + + Standard measurements (*.vst) + + + + + Name_%1 + + + + + DialogIndividualMeasurements + + + Individual measurements + + + + + Pattern piece name + + + + + Exist measurements + + + + + + Path: + + + + + + ... + + + + + New measurements + + + + + Units: + + + + + Could not create measurements file + + + + + Please try again or change file + + + + + + File error. + + + + + + Individual measurements (*.vit) + + + + + Open file + + + + + Where save measurements? + + + + + centimeter + + + + + inch DialogLine - + Line - + First point Premier point - + Second point - + Type of line Type de ligne - + Show line from first point to this point - + Select second point @@ -1257,291 +1455,347 @@ DialogLineIntersect - + Intersection of lines - + Point label Désignation de point - + First line - - + + First point Premier point - - + + Second point - + Second line - + Select second point of first line - + Select first point of second line - + Select second point of second line + + DialogMeasurements + + + Measurements + + + + + <html><head/><body><p><span style=" font-size:18pt;">Please, choose pattern type.</span></p></body></html> + + + + + Graduation + + + + + Use for creation pattern standard measurement table + + + + + Individual + + + + + Use for creation pattern individual measurements + + + DialogNormal - + Normal - + Length Longueur - + Formula for calculation of length of normal - + Insert variable into formula - - - - - - - - - - + + + + + + + + + + ... - + Calculate value Calculer valeur - + Value of length - + _ - + Point label Désignation de point - + First point Premier point - + Second point - + Additional angle degrees - + Type of line Type de ligne - + Show line from first point to this point - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula - + Select second point of line + + DialogPatternProperties + + + Pattern properties + + + + + Author name + + + + + Pattern description + + + + + For technical notes. + + + DialogPointOfContact - + Point of contact - + Radius Rayon - + Formula for calculation of radius of arc - + Insert variable into formula - - + + ... - + Calculate value Calculer valeur - + Value of radius - + _ - + Point label Désignation de point - + Center of arc - - + + Select point of center of arc - + Top of the line - + End of the line - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - + Length of lines - + Length of arcs - + Length of curves - + Variables - Click twice to insert into formula. - + Select second point of line @@ -1549,37 +1803,37 @@ DialogPointOfIntersection - + Dialog - + Point label Désignation de point - + vertical point - + First point of angle - + horizontal point - + Second point of angle - + Select point horizontally @@ -1587,115 +1841,115 @@ DialogShoulderPoint - - + + Point of shoulder - + Length Longueur - + Formula for calculation of length of line - + Insert variable into formula - - + + ... - + Calculate value Calculer valeur - + Value of length - + _ - + Point label Désignation de point - + First point Premier point - + Second point - + Type of line Type de ligne - + Show line from first point to our point - + Input data - + Size and height confection et taille - + Standard table tableau des mesures - + Increments - - + + Length of lines - + Length of curves - + Variables - Click twice to insert into formula - + Select second point of line - + Select point of shoulder @@ -1703,32 +1957,32 @@ DialogSinglePoint - + Single point - + Coordinates on the sheet - + Coordinates - + Y coordinate - + X coordinate - + Point label Désignation de point @@ -1736,47 +1990,47 @@ DialogSpline - + Curve - + First point Premier point - + Length ratio of the first control point - + The angle of the first control point - + Second point - + Length ratio of the second control point - + The angle of the second control point - + Coefficient of curvature of the curve - + Select last point of curve @@ -1784,115 +2038,133 @@ DialogSplinePath - + Curve path - + Point of curve - + Length ratio of the first control point - + The angle of the first control point - + Length ratio of the second control point - + The angle of the second control point - + List of points - + Coefficient of curvature of the curve - + Select point of curve path + + DialogStandardMeasurements + + + Standard table + tableau des mesures + + + + Pattern piece name + + + + + Standard measurements table + + + + + File error. + + + DialogTool - + Line - + No line - + Dash Line - + Dot Line - + Dash Dot Line - + Dash Dot Dot Line - - Can't find object by name - - - - + Error - + Height - + Size - + Line length - + Arc length - + Curve length @@ -1900,55 +2172,55 @@ DialogTriangle - + Dialog - + Point label Désignation de point - + First point of axis - - - - + + + + First point of line - + Second point of axis - + First point Premier point - + Second point - + Select second point of axis - + Select first point - + Select second point @@ -1956,766 +2228,3200 @@ DialogUnionDetails - + Dialog - + Do you really want union details? This operation can't be undone. - + Select first point - + Select second point - - + + Select another second point - + Select detail + + Functions + + + sin + sine function + + + + + cos + cosine function + + + + + tan + tangens function + + + + + asin + arcus sine function + + + + + acos + arcus cosine function + + + + + atan + arcus tangens function + + + + + sinh + hyperbolic sine function + + + + + cosh + hyperbolic cosine + + + + + tanh + hyperbolic tangens function + + + + + asinh + hyperbolic arcus sine function + + + + + acosh + hyperbolic arcus tangens function + + + + + atanh + hyperbolic arcur tangens function + + + + + log2 + logarithm to the base 2 + + + + + log10 + logarithm to the base 10 + + + + + log + logarithm to the base 10 + + + + + ln + logarithm to base e (2.71828...) + + + + + exp + e raised to the power of x + + + + + sqrt + square root of a value + + + + + sign + sign function -1 if x<0; 1 if x>0 + + + + + rint + round to nearest integer + + + + + abs + absolute value + + + + + min + min of all arguments + + + + + max + max of all arguments + + + + + sum + sum of all arguments + + + + + avg + mean value of all arguments + + + MainWindow - - + Valentina - + Tools for creating points. - + Point - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + ... - + Tool triangle. - + Tools for creating lines. - + Line - + Point at distance and angle - + Special point on shoulder. - + Point at intersection of arc and line. - + Point along bisector - + Point along perpendicular - + Point at distance along line - + Perpendicular point along line - + Line between points - + Point at line intersection - + Tools for creating curves. - + Curve - + Curve tool. - + Tool for path curve. - + Tool segment a pathed curve. - + Tool for segmenting a curve. - + Tools for creating arcs. - + Arc - + Arc tool. - + Tools for creating details. - + Detail - + Tool new detail. - + &File - + &Help - + &Pattern piece - + Save &As... - + About &Qt - + &About Valentina - + E&xit - + Exit the application - + Options... - + + Pattern properties + + + + toolBar - + toolBar_2 - + toolBar_3 - + New - + &New - + Create a new pattern - + Ctrl+N - + Open - + &Open - + Open file with pattern - + Save - + &Save - + Save pattern - + Ctrl+S - + Save as - + Save not yet saved pattern - + Ctrl+Shift+S - + Draw - + Draw mode - + Ctrl+W - + Details - + Details mode - + Ctrl+E - - + + Pointer tools - + New pattern piece - + Add new pattern piece - + Ctrl+Shift+N - - + + Change the label of pattern piece - + Table of variables - + Tables of variables - + Ctrl+T - + History - + Ctrl+H - + Layout - + Create layout - + Ctrl+L - + About Qt - - About Valentina - - - - + Ctrl+Q - + Pattern piece %1 - - + Pattern piece: - - Enter a label for the pattern piece. - - - - - Error. Pattern piece of same label already exists. - - - - - Error creating pattern with the name - - - - + Enter a new label for the pattern piece. - - Error. Pattern piece of same name already exists. - - - - + Error saving change!!! - + Can't save new label of pattern piece - - + + Select point - + Select first point - - - + + + Select first point of line - + Select first point of angle - + Select first point of first line - + Select first point curve - + Select simple curve - + Select point of center of arc - + Select point of curve path - + Select curve path - + Select points, arcs, curves clockwise. - + Select base point - + Select first point of axis - + Select point vertically - + Select detail - + Select arc - - Based on Qt %2 (32 bit) + + Measurements use different units than pattern. This pattern required measurements in %1 - - Built on %3 at %4 + + + Wrong units. - - <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 + + File error. - - Cannot read file %1: -%2. + + The measurements file <br/><br/> <b>%1</b> <br/><br/> %3 - + + could not be found. Do you want to update the file location + + + + + Standard measurements (*.vst) + + + + + Individual measurements (*.vit) + + + + File loaded - + Height: - + Size: - + Pattern Piece: - - + + Pattern files (*.val) - - + + /pattern.val - - Can't open pattern file %1: -%2. - - - - - Can't open schema file %1: -%2. - - - - + File saved - - Can not save pattern - - - - + untitled.val - + Unsaved change - + The pattern has been modified. Do you want to save your changes? - - - Error! - - - - + + Open file - - - Error no unique id. - - - - - Got empty file name. - - - - - Could not copy temp file to pattern file - - - - - Could not remove pattern file - - - - + + Error parsing file. - + Error can't convert value. - + Error empty parameter. - + Error wrong id. + + + Measurements - - Parsing pattern file error. + + head_girth + Short measurement name. Don't use math symbols in name!!!! - - Validation file error. + + Head girth + Full measurement name - - - Error in line %1 column %2 + + Around fullest part of Head + Full measurement description + + + + + mid_neck_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Mid-neck girth + Full measurement name + + + + + Around middle part of Neck + Full measurement description + + + + + neck_base_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck Base girth + Full measurement name + + + + + Around Neck at base + Full measurement description + + + + + head_and_neck_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Head and Neck length + Full measurement name + + + + + Vertical Distance from Crown to Nape + Full measurement description + + + + + center_front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Center length + Full measurement name + + + + + Front Neck Center over tape at Bustline to Front Waist Center + Full measurement description + + + + + center_back_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Center length + Full measurement name + + + + + Back Neck Center to Back Waist Center + Full measurement description + + + + + shoulder_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder length + Full measurement name + + + + + NeckPoint to ShoulderTip + Full measurement description + + + + + side_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Side Waist length + Full measurement name + + + + + Armpit to Waist side + Full measurement description + + + + + trunk_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Trunk length + Full measurement name + + + + + Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning point + Full measurement description + + + + + shoulder_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder girth + Full measurement name + + + + + Around Arms and Torso, at bicep level parallel to floor, with arms hanging at the sides + Full measurement description + + + + + upper_chest_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upper Chest girth + Full measurement name + + + + + Around Chest at Armfold level, will be parallel to floor across back, will not be parallel to floor across front chest + Full measurement description + + + + + bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust girth + Full measurement name + + + + + Around fullest part of Bust, parallel to floor + Full measurement description + + + + + under_bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Under Bust girth + Full measurement name + + + + + Around Chest below the Bust, parallel to floor + Full measurement description + + + + + waist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist girth + Full measurement name + + + + + Tie a string around smallest part of waist, keep string tied while taking meaasurements. Not usually parallel to floor for front waist or back waist. + Full measurement description + + + + + high_hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip girth + Full measurement name + + + + + Around HighHip, parallel to floor + Full measurement description + + + + + hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip girth + Full measurement name + + + + + Around Hip, parallel to floor + Full measurement description + + + + + upper_front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Upper Chest width + Full measurement name + + + + + Across Front UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Chest width + Full measurement name + + + + + Across Front Chest, from armfold to armfold + Full measurement description + + + + + across_front_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Front + Full measurement description + + + + + across_back_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Back + Full measurement description + + + + + Back Upper Chest width + Full measurement name + + + + + Across Back UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + upper_back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Chest width + Full measurement name + + + + + Across Back Chest, from armfold to armfold + Full measurement description + + + + + bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + BustPoint to BustPoint + Full measurement name + + + + + Distance between BustPoints, across Chest + Full measurement description + + + + + halter_bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + Halter Bustpoint to Bustpoint + Full measurement name + + + + + Distance from Bustpoint, behind neck, down to Bustpoint + Full measurement description + + + + + neck_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + NeckPoint to BustPoint + Full measurement name + + + + + From NeckPoint to BustPoint + Full measurement description + + + + + crotch_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch length + Full measurement name + + + + + From Front Waist Center, down to crotch, up to Back Waist Center + Full measurement description + + + + + rise_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Rise height + Full measurement name + + + + + Sit on hard chair, measure from side waist straight down to chair bottom + Full measurement description + + + + + shoulder_drop + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Drop + Full measurement name + + + + + Vertical Distance from NeckPoint level to ShoulderTip level + Full measurement description + + + + + shoulder_slope_degrees + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Slope degrees + Full measurement name + + + + + Degrees of angle from NeckPoint to ShoulderTip – requires goniometer + Full measurement description + + + + + front_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Shoulder Balance + Full measurement name + + + + + ShoulderTip to Front Waist Center + Full measurement description + + + + + back_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Shoulder Balance + Full measurement name + + + + + ShoulderTip to Back Waist Center + Full measurement description + + + + + front_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Full Length + Full measurement name + + + + + NeckPoint straight down front chest to Waistline + Full measurement description + + + + + back_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Full Length + Full measurement name + + + + + Back NeckPoint straight down back chest to Waistline + Full measurement description + + + + + front_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint through Front Neck Center + Full measurement description + + + + + back_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint across Nape + Full measurement description + + + + + front_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + front_upper-bust_arc + Full measurement name + + + + + front_upper-bust_arc + Full measurement description + + + + + back_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperBust arc + Full measurement name + + + + + Back UpperBust side to side + Full measurement description + + + + + front_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist arc + Full measurement name + + + + + Front Waist side to side + Full measurement description + + + + + back_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist arc + Full measurement name + + + + + Back Waist side to side + Full measurement description + + + + + front_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperHip arc + Full measurement name + + + + + Front UpperHip side to side + Full measurement description + + + + + back_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperHip arc + Full measurement name + + + + + Back UpperHip side to side + Full measurement description + + + + + front_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Hip arc + Full measurement name + + + + + Front Hip side to side + Full measurement description + + + + + back_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Hip arc + Full measurement name + + + + + Back Hip side to side + Full measurement description + + + + + chest_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest Balance + Full measurement name + + + + + NeckPoint to Front ArmfoldPoint + Full measurement description + + + + + back_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Balance + Full measurement name + + + + + NeckPoint to Back ArmfoldPoint + Full measurement description + + + + + front_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist Balance + Full measurement name + + + + + NeckPoint across Front Chest to Waist side + Full measurement description + + + + + back_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist Balance + Full measurement name + + + + + NeckPoint across Back Chest to Waist side + Full measurement description + + + + + front_neck_to_upper_chest_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperChest height + Full measurement name + + + + + Front Neck Center straight down to UpperChest line + Full measurement description + + + + + front_neck_to_bust_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust height + Full measurement name + + + + + Front Neck Center straight down to Bust line + Full measurement description + + + + + armscye_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye Girth + Full measurement name + + + + + Around Armscye + Full measurement description + + + + + elbow_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow Girth + Full measurement name + + + + + Around Elbow with elbow bent + Full measurement description + + + + + upper_arm_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upperarm Girth + Full measurement name + + + + + Around UpperArm + Full measurement description + + + + + wrist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Wrist girth + Full measurement name + + + + + Around Wrist + Full measurement description + + + + + scye_depth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye depth + Full measurement name + + + + + Nape straight down to UnderBust line (same as Back UpperBust height) + Full measurement description + + + + + shoulder_and_arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder and Arm length + Full measurement name + + + + + NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + underarm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Underarm length + Full measurement name + + + + + Armpit to Wrist, with arm straight and hanging at side + Full measurement description + + + + + cervicale_to_wrist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to wrist length + Full measurement name + + + + + Nape to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + shoulder_to_elbow_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow length + Full measurement name + + + + + ShoulderTip to Elbow, with elbow bent and hand on hip + Full measurement description + + + + + arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Arm length + Full measurement name + + + + + ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + hand_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand width + Full measurement name + + + + + Hand side to side + Full measurement description + + + + + hand_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand length + Full measurement name + + + + + Hand Middle Finger tip to wrist + Full measurement description + + + + + hand_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand girth + Full measurement name + + + + + Around Hand + Full measurement description + + + + + thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Thigh girth + Full measurement name + + + + + Around Thigh + Full measurement description + + + + + mid_thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Midthigh girth + Full measurement name + + + + + Around MidThigh + Full measurement description + + + + + knee_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee girth + Full measurement name + + + + + Around Knee + Full measurement description + + + + + calf_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Calf girth + Full measurement name + + + + + Around Calf + Full measurement description + + + + + ankle_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle girth + Full measurement name + + + + + Around Ankle + Full measurement description + + + + + knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee height + Full measurement name + + + + + Knee to Floor + Full measurement description + + + + + ankle_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle height + Full measurement name + + + + + Ankle to Floor + Full measurement description + + + + + foot_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot width + Full measurement name + + + + + Widest part of Foot side to side + Full measurement description + + + + + foot_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot length + Full measurement name + + + + + Tip of Longest Toe straight to back of heel + Full measurement description + + + + + height + Short measurement name. Don't use math symbols in name!!!! + + + + + Total Height + Full measurement name + + + + + Top of head to floor + Full measurement description + + + + + cervicale_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape height + Full measurement name + + + + + Nape to Floor + Full measurement description + + + + + cervicale_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to knee height + Full measurement name + + + + + Nape to Knee + Full measurement description + + + + + waist_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist height + Full measurement name + + + + + Waist side to floor + Full measurement description + + + + + high_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip height + Full measurement name + + + + + HighHip side to Floor + Full measurement description + + + + + hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip height + Full measurement name + + + + + Hip side to Floor + Full measurement description + + + + + waist_to_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Hip height + Full measurement name + + + + + Waist side to Hip + Full measurement description + + + + + waist_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Knee height + Full measurement name + + + + + Waist side to Knee + Full measurement description + + + + + crotch_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch height/Inseam + Full measurement name + + + + + Crotch to Floor along inside leg + Full measurement description + + + + + size + Short measurement name. Don't use math symbols in name!!!! + + + + + Size + Full measurement name + + + + + Size + Full measurement description + + + + + height_front_neck_base_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height front neck base point + Full measurement name + + + + + Height of the point base of the neck in front + Full measurement description + + + + + height_base_neck_side_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height base neck side point + Full measurement name + + + + + Height of the base of the neck side point + Full measurement description + + + + + height_shoulder_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height shoulder point + Full measurement name + + + + + The height of the shoulder point + Full measurement description + + + + + height_nipple_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height nipple point + Full measurement name + + + + + Height nipple point + Full measurement description + + + + + height_back_angle_axilla + Short measurement name. Don't use math symbols in name!!!! + + + + + Height back angle axilla + Full measurement name + + + + + Height back angle axilla + Full measurement description + + + + + height_scapular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height scapular point + Full measurement name + + + + + Height scapular point + Full measurement description + + + + + height_under_buttock_folds + Short measurement name. Don't use math symbols in name!!!! + + + + + Height under buttock folds + Full measurement name + + + + + Height under buttock folds + Full measurement description + + + + + hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Hips excluding protruding abdomen + Full measurement name + + + + + Hips excluding protruding abdomen + Full measurement description + + + + + girth_foot_instep + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth foot instep + Full measurement name + + + + + Girth foot instep + Full measurement description + + + + + side_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Side waist to floor + Full measurement name + + + + + The distance from the side waist to floor + Full measurement description + + + + + front_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist to floor + Full measurement name + + + + + The distance from the front waist to floor + Full measurement description + + + + + arc_through_groin_area + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through groin area + Full measurement name + + + + + Arc through groin area + Full measurement description + + + + + waist_to_plane_seat + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to plane seat + Full measurement name + + + + + The distance from the waist to the plane seat + Full measurement description + + + + + neck_to_radial_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to radial point + Full measurement name + + + + + The distance from the base of the neck to the side of the radial point + Full measurement description + + + + + neck_to_third_finger + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to third finger + Full measurement name + + + + + Distance from the base of the neck side point to the end of the third finger + Full measurement description + + + + + neck_to_first_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to first line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the side of the first line in front of chest circumference + Full measurement description + + + + + front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist length + Full measurement name + + + + + The distance from the base of the neck to the waist side front (waist length in the front) + Full measurement description + + + + + arc_through_shoulder_joint + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through shoulder joint + Full measurement name + + + + + Arc through the highest point of the shoulder joint + Full measurement description + + + + + neck_to_back_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to back line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the back line of chest circumference of the first and the second based on ledge vanes + Full measurement description + + + + + waist_to_neck_side + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to neck side + Full measurement name + + + + + The distance from the waist to the back base of the neck side point + Full measurement description + + + + + arc_length_upper_body + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc length upper body + Full measurement name + + + + + Arc length of the upper body through the base of the neck side point + Full measurement description + + + + + chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest width + Full measurement name + + + + + Chest width + Full measurement description + + + + + anteroposterior_diameter_hands + Short measurement name. Don't use math symbols in name!!!! + + + + + Anteroposterior diameter hands + Full measurement name + + + + + Anteroposterior diameter of the hands + Full measurement description + + + + + height_clavicular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height clavicular point + Full measurement name + + + + + Height clavicular point + Full measurement description + + + + + height_armhole_slash + Short measurement name. Don't use math symbols in name!!!! + + + + + Height armhole slash + Full measurement name + + + + + The distance from the point to the cervical level of the posterior angle of the front armpit (underarm height oblique) + Full measurement description + + + + + slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Slash shoulder height + Full measurement name + + + + + Slash shoulder height + Full measurement description + + + + + half_girth_neck + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck + Full measurement name + + + + + Half girth neck + Full measurement description + + + + + half_girth_neck_for_shirts + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck for shirts + Full measurement name + + + + + Half girth neck for shirts + Full measurement description + + + + + half_girth_chest_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest first + Full measurement name + + + + + Half girth chest first + Full measurement description + + + + + half_girth_chest_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest second + Full measurement name + + + + + Half girth chest second + Full measurement description + + + + + half_girth_chest_third + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest third + Full measurement name + + + + + Half girth chest third + Full measurement description + + + + + half_girth_waist + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth waist + Full measurement name + + + + + Half girth waist + Full measurement description + + + + + half_girth_hips_considering_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips considering protruding abdomen + Full measurement name + + + + + Half girth hips considering protruding abdomen + Full measurement description + + + + + half_girth_hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips excluding protruding abdomen + Full measurement name + + + + + Half girth hips excluding protruding abdomen + Full measurement description + + + + + girth_knee_flexed_feet + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth knee flexed feet + Full measurement name + + + + + Girth knee flexed feet + Full measurement description + + + + + neck_transverse_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck transverse diameter + Full measurement name + + + + + Neck transverse diameter + Full measurement description + + + + + front_slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front slash shoulder height + Full measurement name + + + + + Front slash shoulder height + Full measurement description + + + + + neck_to_front_waist_line + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to front waist line + Full measurement name + + + + + The distance from the base of the neck to the waist line front + Full measurement description + + + + + hand_vertical_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand vertical diameter + Full measurement name + + + + + Hand vertical diameter + Full measurement description + + + + + neck_to_knee_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to knee point + Full measurement name + + + + + Distance from neck to knee point + Full measurement description + + + + + waist_to_knee + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to knee + Full measurement name + + + + + The distance from the waist to the knee + Full measurement description + + + + + shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder height + Full measurement name + + + + + Shoulder height + Full measurement description + + + + + head_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Head height + Full measurement name + + + + + Head height + Full measurement description + + + + + body_position + Short measurement name. Don't use math symbols in name!!!! + + + + + Body position + Full measurement name + + + + + Body position + Full measurement description + + + + + arc_behind_shoulder_girdle + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc behind shoulder girdle + Full measurement name + + + + + Arc behind the shoulder girdle + Full measurement description + + + + + neck_to_neck_base + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to neck base + Full measurement name + + + + + Distance from neck point to point on the base of the neck side neck girth measurement line + Full measurement description + + + + + depth_waist_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist first + Full measurement name + + + + + Depth waist first + Full measurement description + + + + + depth_waist_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist second + Full measurement name + + + + + Depth waist second + Full measurement description PatternPage - + User - + User name - + Graphical output - + Use antialiasing - + Undone - + Count steps + + PostfixOperators + + + cm + centimeter + + + + + mm + millimeter + + + + + in + inch + + + QObject - + Create new pattern piece to start working. @@ -2723,130 +5429,160 @@ Do you want to save your changes? TableWindow - + Create a layout - + toolBar - + Save - - + + Save layout - + Next - + Next detail - + Turn - + Turn the detail 90 degrees - + Stop - + Stop laying - + Enlarge letter - + Enlarge the length of the sheet - + Reduce sheet - + Reduce the length of the sheet - - + + Mirroring - - + + Zoom In - - + + Zoom Out - + 0 details left. - - + + Collisions not found. - + %1 details left. - + + untitled + + + + + Svg files (*.svg) + + + + + PDF files (*.pdf) + + + + + Images (*.png) + + + + + PS files (*.ps) + + + + + EPS files (*.eps) + + + + Collisions found. - - SVG Generator Example Drawing + + Creating file '%1' failed! %2 - - An SVG drawing created by the SVG Generator Example provided with Qt. + + Critical error! VAbstractNode - + Can't find tag Modeling @@ -2854,12 +5590,12 @@ Do you want to save your changes? VAbstractTool - + Confirm the deletion. - + Do you really want delete? @@ -2867,42 +5603,32 @@ Do you want to save your changes? VApplication - - - - - - - Error! - - - - + Error parsing file. Program will be terminated. - + Error bad id. Program will be terminated. - + Error can't convert value. Program will be terminated. - + Error empty parameter. Program will be terminated. - + Error wrong id. Program will be terminated. - + Something's wrong!! @@ -2910,215 +5636,269 @@ Do you want to save your changes? VContainer - - - + + + Can't find object + + + Can't cast object + + VDomDocument - - Can't find tool id = %1 in table. + + Can't convert toUInt parameter - - Got wrong parameter id. Need only id > 0. - - - - - Can't convert toLongLong parameter - - - - + Got empty parameter - + Can't convert toDouble parameter - - This id is not unique. + + + Can't open file %1: +%2. - - Error creating or updating detail + + Can't open schema file %1: +%2. - - Error creating or updating single point + + Validation error in line %1 column %2 - - Error creating or updating point of end line - - - - - Error creating or updating point along line - - - - - Error creating or updating point of shoulder - - - - - Error creating or updating point of normal - - - - - Error creating or updating point of bisector - - - - - Error creating or updating point of lineintersection - - - - - Error creating or updating point of contact - - - - - Error creating or updating modeling point - - - - - Error creating or updating height - - - - - Error creating or updating triangle - - - - - Error creating or updating point of intersection - - - - - Error creating or updating cut spline point - - - - - Error creating or updating cut spline path point - - - - - Error creating or updating cut arc point - - - - - Error creating or updating line - - - - - Error creating or updating simple curve - - - - - Error creating or updating curve path - - - - - Error creating or updating modeling simple curve - - - - - Error creating or updating modeling curve path - - - - - Error creating or updating simple arc - - - - - Error creating or updating modeling arc - - - - - Error creating or updating union details - - - - - Error! - - - - - Error parsing file. + + Parcing error in line %1 column %2 VDrawTool - + Can not find the element after which you want to insert. - + Can't find tag Calculation - + Options - + Delete + + VException + + + Critical error! + + + + + VPattern + + + Can't find tool id = %1 in table. + + + + + Error no unique id. + + + + + Error! + + + + + Error parsing file. + + + + + Error creating or updating detail + + + + + Error creating or updating single point + + + + + + Error creating or updating point of end line + + + + + + Error creating or updating point along line + + + + + + Error creating or updating point of shoulder + + + + + + Error creating or updating point of normal + + + + + + Error creating or updating point of bisector + + + + + Error creating or updating point of lineintersection + + + + + + Error creating or updating point of contact + + + + + Error creating or updating modeling point + + + + + Error creating or updating height + + + + + Error creating or updating triangle + + + + + Error creating or updating point of intersection + + + + + + Error creating or updating cut spline point + + + + + + Error creating or updating cut spline path point + + + + + + Error creating or updating cut arc point + + + + + Error creating or updating line + + + + + Error creating or updating simple curve + + + + + Error creating or updating curve path + + + + + Error creating or updating modeling simple curve + + + + + Error creating or updating modeling curve path + + + + + + Error creating or updating simple arc + + + + + Error creating or updating modeling arc + + + + + Error creating or updating union details + + + + + Got wrong parameter id. Need only id > 0. + + + + + This id is not unique. + + + VSplinePath - + Not enough points to create the spline. - - - + + + This spline does not exist. - + Can't cut spline path with one point @@ -3126,12 +5906,12 @@ Do you want to save your changes? VTableGraphicsView - + can't find detail - + detail found @@ -3139,30 +5919,54 @@ Do you want to save your changes? VToolDetail - + Options - + Delete - - VToolTriangle - - - Can't find point. - - - VToolUnionDetails - + Can't find tag Modeling + + Variables + + + Line_ + Left symbol _ in name + + + + + AngleLine_ + Left symbol _ in name + + + + + Arc_ + Left symbol _ in name + + + + + Spl_ + Left symbol _ in name + + + + + SplPath + + + diff --git a/src/app/share/translations/valentina_he_IL.ts b/src/app/share/translations/valentina_he_IL.ts index 212035b30..553f72530 100644 --- a/src/app/share/translations/valentina_he_IL.ts +++ b/src/app/share/translations/valentina_he_IL.ts @@ -1,35 +1,35 @@ - + ConfigDialog - + Apply - + &Cancel - + &Ok - + Config Dialog - + Configuration - + Pattern @@ -37,171 +37,214 @@ ConfigurationPage - + Setup user interface language updated and will be used the next time start - + Save שמור - + Auto-save modified pattern - + Interval: - + min - + Language - + GUI language - + Decimal separator parts - + With OS options (.) + + DialogAboutApp + + + About Valentina + + + + + Valentina version + + + + + Contributors + + + + + Based on Qt %2 (32 bit) + + + + + Built on %3 at %4 + + + + + Web site : %1 + + + + + Warning + + + + + Cannot open your default browser + + + DialogAlongLine - + Point along line - + Length אורך - + Formula for the calculation of length of line - + Insert variable into the formula - - + + ... ... - + Calculate value לחשב ערך - + Value of length ערך האורך - + _ _ - + Point label תווית הנקודה - + First point נקודה ראשונה - + First point of line נקודה ראשונה בקו - + Second point נקודה שנייה - + Second point of line נקודה שנייה בקו - + Type of line סוג הקו - + Show line from first point to this point - + Input data - + Size and height - + Standard table - + Increments - + Length of lines אורך הקווים - + Length of arcs - + Length of curves אורך העקומות - + Variables - Click twice to insert into formula - + Select second point of line @@ -209,151 +252,151 @@ DialogArc - + Arc - + Radius רדיוס - + Formula for the calculation of radius of arc - + Insert variable into the formula - - - - - - + + + + + + ... ... - - - + + + Calculate value לחשב ערך - + Value of radius ערך הרדיוס - - - + + + _ _ - + First angle degree - + First angle of arc counterclockwise - + Insert variable into formula - + Value of first angle - + Second angle degree - + Second angle of arc counterclockwise - + Insert marked variable into formula - + Value of second angle - + Center point נקודת מרכז - + Select point of center of arc - + Input data - + Size and height - + Standard table - + Increments - + Length of lines אורך הקווים - + Length of arcs - + Length of curves אורך העקומות - + Angle of lines - + Variables - + Value of angle of line. @@ -361,138 +404,138 @@ DialogBisector - + Bisector - + Length אורך - + Calculation of length of bisector by using the formula - + Insert marked variable into the formula - - + + ... ... - + Calculate value לחשב ערך - + Value of length ערך האורך - + _ _ - + Point label תווית הנקודה - + First point נקודה ראשונה - + First point of angle - + Second point נקודה שנייה - + Second point of angle - + Third point - + Third point of angle - + Type of line סוג הקו - + Show line from second point to this point - + Input data - + Size and height - + Standard table - + Increments - + Length of lines אורך הקווים - + Length of arcs - + Length of curves אורך העקומות - + Variables - Click twice to insert into formula - + Select second point of angle - + Select third point of angle @@ -500,93 +543,93 @@ DialogCutArc - + Dialog - + Length אורך - + Formula for the calculation of the spline - - + + ... ... - + Calculate value לחשב ערך - + Value of length ערך האורך - + _ _ - + Arc - + Selected curve - + Point label תווית הנקודה - + Input data - + Size and height - + Standard table - + Increments - + Length of lines אורך הקווים - + Length of arcs - + Length of curves אורך העקומות - + Variables - Click twice to insert into formula @@ -594,93 +637,93 @@ DialogCutSpline - + Dialog - + Length אורך - + Formula for the calculation of the spline - - + + ... ... - + Calculate value לחשב ערך - + Value of length ערך האורך - + _ _ - + Curve עקומה - + Selected curve - + Point label תווית הנקודה - + Input data - + Size and height - + Standard table - + Increments - + Length of lines אורך הקווים - + Length of arcs - + Length of curves אורך העקומות - + Variables - Click twice to insert into formula @@ -688,93 +731,93 @@ DialogCutSplinePath - + Dialog - + Length אורך - + Formula for the calculation of the curve length - - + + ... ... - + Calculate value לחשב ערך - + Value of length ערך האורך - + _ _ - + Curve עקומה - + Selected curve path - + Point label תווית הנקודה - + Input data - + Size and height - + Standard table - + Increments - + Length of lines אורך הקווים - + Length of arcs - + Length of curves אורך העקומות - + Variables - Click twice to insert into formula @@ -782,180 +825,175 @@ DialogDetail - - + + Detail - + Bias X - + Bias Y - + Options אפשרויות - + Name of detail - + Seam allowance - + Width רוחב - + Closed - + Delete למחוק - + Got wrong scene object. Ignore. - - - Got wrong tools. Ignore. - - DialogEndLine - + Point in the end of a line - + Length אורך - + Formula for calculation of length of line - - - - - - - - - - + + + + + + + + + + ... ... - + Calculate value לחשב ערך - + Value of length ערך האורך - + _ _ - + Base point - + First point of line נקודה ראשונה בשורה - + Point label תווית הנקודה - + Degree of angle - + Angle of line - + Type of line סוג הקו - + Show line from first point to this point - + Input data - + Size and height - + Standard table - + Increments - + Length of lines אורך הקווים - + Length of arcs - + Length of curves אורך העקומות - + Variables - Click twice to insert into formula @@ -963,50 +1001,50 @@ DialogHeight - + Dialog - + Point label תווית הנקודה - + Base point - - - - + + + + First point of line נקודה ראשונה בשורה - + Second point of line נקודה שנייה בשורה - + Type of line סוג הקו - + Show line from first point to our point - + Select first point of line לבחור נקודה ראשונה - + Select second point of line @@ -1014,242 +1052,402 @@ DialogHistory - + History - - + + Tool כלי - + + + + + Can't create record. + + + + %1 - Base point - - + + %1_%2 - Line from point %1 to point %2 - + %3 - Point along line %1_%2 - + %1 - Point of shoulder - + %3 - normal to line %1_%2 - + %4 - bisector of angle %1_%2_%3 - + %5 - intersection of lines %1_%2 and %3_%4 - + Curve %1_%2 - + Arc with center in point %1 - + Curve point %1 - + %4 - point of contact of arc with the center in point %1 and line %2_%3 - + Point of perpendicular from point %1 to line %2_%3 - + Triangle: axis %1_%2, points %3 and %4 - + %1 - point of intersection %2 and %3 - + %1 - cut arc with center %2 - + %1 - cut curve %2_%3 - + %1 - cut curve path %2 - - - Got wrong tool type. Ignore. - - DialogIncrements - - + + Increments - - Sizes table + + Email - - + + Name - - + + The calculated value הערך המחושב - - + + Base value - - + + In sizes - - - In growths - - - - - - - + + + Description - - + + + ... ... - + + + Measurements + + + + + Load another measurements table + + + + + Personal information + + + + + Given name + + + + + Family name + + + + + Birth date + + + + + Sex + + + + + + In heights + + + + Lines קווים - + Line קו - - - + + + Length אורך - + Curves עקומות - + Curve עקומה - + Arcs - + Arc - - Name_%1 + + + + File error. - - Can't convert toDouble value. + + male + + + + + female + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + Individual measurements (*.vit) + + + + + + Open file + + + + + + Wrong units. + + + + + Standard measurements (*.vst) + + + + + Name_%1 + + + + + DialogIndividualMeasurements + + + Individual measurements + + + + + Pattern piece name + + + + + Exist measurements + + + + + + Path: + + + + + + ... + ... + + + + New measurements + + + + + Units: + + + + + Could not create measurements file + + + + + Please try again or change file + + + + + + File error. + + + + + + Individual measurements (*.vit) + + + + + Open file + + + + + Where save measurements? + + + + + centimeter + + + + + inch DialogLine - + Line קו - + First point נקודה ראשונה - + Second point נקודה שנייה - + Type of line סוג הקו - + Show line from first point to this point - + Select second point לבחור נקודה שנייה @@ -1257,291 +1455,347 @@ DialogLineIntersect - + Intersection of lines הצטלבות של קווים - + Point label תווית הנקודה - + First line - - + + First point נקודה ראשונה - - + + Second point נקודה שנייה - + Second line - + Select second point of first line - + Select first point of second line - + Select second point of second line + + DialogMeasurements + + + Measurements + + + + + <html><head/><body><p><span style=" font-size:18pt;">Please, choose pattern type.</span></p></body></html> + + + + + Graduation + + + + + Use for creation pattern standard measurement table + + + + + Individual + + + + + Use for creation pattern individual measurements + + + DialogNormal - + Normal - + Length אורך - + Formula for calculation of length of normal - + Insert variable into formula - - - - - - - - - - + + + + + + + + + + ... ... - + Calculate value לחשב ערך - + Value of length ערך האורך - + _ _ - + Point label תווית הנקודה - + First point נקודה ראשונה - + Second point נקודה שנייה - + Additional angle degrees - + Type of line סוג הקו - + Show line from first point to this point - + Input data - + Size and height - + Standard table - + Increments - + Length of lines אורך הקווים - + Length of arcs - + Length of curves אורך העקומות - + Variables - Click twice to insert into formula - + Select second point of line + + DialogPatternProperties + + + Pattern properties + + + + + Author name + + + + + Pattern description + + + + + For technical notes. + + + DialogPointOfContact - + Point of contact - + Radius רדיוס - + Formula for calculation of radius of arc - + Insert variable into formula - - + + ... ... - + Calculate value לחשב ערך - + Value of radius ערך הרדיוס - + _ _ - + Point label תווית הנקודה - + Center of arc - - + + Select point of center of arc - + Top of the line - + End of the line - + Input data - + Size and height - + Standard table - + Increments - + Length of lines אורך הקווים - + Length of arcs - + Length of curves אורך העקומות - + Variables - Click twice to insert into formula. - + Select second point of line @@ -1549,37 +1803,37 @@ DialogPointOfIntersection - + Dialog - + Point label תווית הנקודה - + vertical point - + First point of angle - + horizontal point - + Second point of angle - + Select point horizontally @@ -1587,115 +1841,115 @@ DialogShoulderPoint - - + + Point of shoulder - + Length אורך - + Formula for calculation of length of line - + Insert variable into formula - - + + ... ... - + Calculate value לחשב ערך - + Value of length ערך האורך - + _ _ - + Point label תווית הנקודה - + First point נקודה ראשונה - + Second point נקודה שנייה - + Type of line סוג הקו - + Show line from first point to our point - + Input data - + Size and height - + Standard table - + Increments - - + + Length of lines אורך הקווים - + Length of curves אורך העקומות - + Variables - Click twice to insert into formula - + Select second point of line - + Select point of shoulder @@ -1703,32 +1957,32 @@ DialogSinglePoint - + Single point - + Coordinates on the sheet - + Coordinates - + Y coordinate - + X coordinate - + Point label תווית הנקודה @@ -1736,47 +1990,47 @@ DialogSpline - + Curve עקומה - + First point נקודה ראשונה - + Length ratio of the first control point - + The angle of the first control point - + Second point נקודה שנייה - + Length ratio of the second control point - + The angle of the second control point - + Coefficient of curvature of the curve - + Select last point of curve @@ -1784,115 +2038,133 @@ DialogSplinePath - + Curve path - + Point of curve - + Length ratio of the first control point - + The angle of the first control point - + Length ratio of the second control point - + The angle of the second control point - + List of points - + Coefficient of curvature of the curve - + Select point of curve path + + DialogStandardMeasurements + + + Standard table + + + + + Pattern piece name + + + + + Standard measurements table + + + + + File error. + + + DialogTool - + Line קו - + No line - + Dash Line - + Dot Line - + Dash Dot Line - + Dash Dot Dot Line - - Can't find object by name - - - - + Error - + Height - + Size - + Line length אורך הקו - + Arc length - + Curve length אורך העקומה @@ -1900,55 +2172,55 @@ DialogTriangle - + Dialog - + Point label תווית הנקודה - + First point of axis - - - - + + + + First point of line - + Second point of axis - + First point נקודה ראשונה - + Second point נקודה שנייה - + Select second point of axis - + Select first point לבחור נקודה ראשונה - + Select second point לבחור נקודה שנייה @@ -1956,90 +2228,242 @@ DialogUnionDetails - + Dialog - + Do you really want union details? This operation can't be undone. - + Select first point לבחור נקודה ראשונה - + Select second point לבחור נקודה שנייה - - + + Select another second point - + Select detail + + Functions + + + sin + sine function + + + + + cos + cosine function + + + + + tan + tangens function + + + + + asin + arcus sine function + + + + + acos + arcus cosine function + + + + + atan + arcus tangens function + + + + + sinh + hyperbolic sine function + + + + + cosh + hyperbolic cosine + + + + + tanh + hyperbolic tangens function + + + + + asinh + hyperbolic arcus sine function + + + + + acosh + hyperbolic arcus tangens function + + + + + atanh + hyperbolic arcur tangens function + + + + + log2 + logarithm to the base 2 + + + + + log10 + logarithm to the base 10 + + + + + log + logarithm to the base 10 + + + + + ln + logarithm to base e (2.71828...) + + + + + exp + e raised to the power of x + + + + + sqrt + square root of a value + + + + + sign + sign function -1 if x<0; 1 if x>0 + + + + + rint + round to nearest integer + + + + + abs + absolute value + + + + + min + min of all arguments + + + + + max + max of all arguments + + + + + sum + sum of all arguments + + + + + avg + mean value of all arguments + + + MainWindow - - + Valentina - + Tools for creating points. - + Point נקודה - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + ... ... - + Tool triangle. - + Tools for creating lines. כלים ליצירת קווים. - + Line קו @@ -2048,682 +2472,2968 @@ כלי ליצירת נקודה בהצטלבות של 2 קווים. - + Point at distance and angle - + Special point on shoulder. - + Point at intersection of arc and line. - + Point along bisector - + Point along perpendicular - + Point at distance along line - + Perpendicular point along line - + Line between points - + Point at line intersection - + Tools for creating curves. - + Curve עקומה - + Curve tool. - + Tool for path curve. - + Tool segment a pathed curve. - + Tool for segmenting a curve. - + Tools for creating arcs. - + Arc - + Arc tool. - + Tools for creating details. - + Detail - + Tool new detail. - + &File - + &Help - + &Pattern piece - + Save &As... - + About &Qt - + &About Valentina - + E&xit - + Exit the application - + Options... + + + Pattern properties + + File קובץ - + toolBar - + toolBar_2 - + toolBar_3 - + New חדש - + &New - + Create a new pattern - + Ctrl+N - + Open - + &Open - + Open file with pattern - + Save שמור - + &Save - + Save pattern - + Ctrl+S - + Save as - + Save not yet saved pattern - + Ctrl+Shift+S - + Draw - + Draw mode - + Ctrl+W - + Details - + Details mode - + Ctrl+E - - + + Pointer tools - + New pattern piece - + Add new pattern piece - + Ctrl+Shift+N - - + + Change the label of pattern piece - + Table of variables - + Tables of variables - + Ctrl+T - + History - + Ctrl+H - + Layout - + Create layout - + Ctrl+L - + About Qt - - About Valentina - - - - + Ctrl+Q - + Pattern piece %1 - - + Pattern piece: - - Enter a label for the pattern piece. - - - - - Error. Pattern piece of same label already exists. - - - - - Error creating pattern with the name - - - - + Enter a new label for the pattern piece. - - Error. Pattern piece of same name already exists. - - - - + Error saving change!!! - + Can't save new label of pattern piece - - + + Select point - + Select first point לבחור נקודה ראשונה - - - + + + Select first point of line לבחור נקודה ראשונה - + Select first point of angle - + Select first point of first line - + Select first point curve - + Select simple curve - + Select point of center of arc - + Select point of curve path - + Select curve path - + Select points, arcs, curves clockwise. - + Select base point - + Select first point of axis - + Select point vertically - + Select detail - + Select arc - - Based on Qt %2 (32 bit) + + Measurements use different units than pattern. This pattern required measurements in %1 - - Built on %3 at %4 + + + Wrong units. + + + + + File error. + + + + + The measurements file <br/><br/> <b>%1</b> <br/><br/> %3 + + + + + could not be found. Do you want to update the file location + + + + + Standard measurements (*.vst) + + + + + Individual measurements (*.vit) - <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 - <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 + <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 - - Cannot read file %1: -%2. - - - - + File loaded - + Height: - + Size: - + Pattern Piece: - - + + Pattern files (*.val) - - + + /pattern.val - - Can't open pattern file %1: -%2. - - - - - Can't open schema file %1: -%2. - - - - + File saved - - Can not save pattern - - - - + untitled.val - + Unsaved change - + The pattern has been modified. Do you want to save your changes? - - - Error! - - - - + + Open file - - - Error no unique id. - - - - - Got empty file name. - - - - - Could not copy temp file to pattern file - - - - - Could not remove pattern file - - - - + + Error parsing file. - + Error can't convert value. - + Error empty parameter. - + Error wrong id. + + + Measurements - - Parsing pattern file error. + + head_girth + Short measurement name. Don't use math symbols in name!!!! - - Validation file error. + + Head girth + Full measurement name - - - Error in line %1 column %2 + + Around fullest part of Head + Full measurement description + + + + + mid_neck_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Mid-neck girth + Full measurement name + + + + + Around middle part of Neck + Full measurement description + + + + + neck_base_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck Base girth + Full measurement name + + + + + Around Neck at base + Full measurement description + + + + + head_and_neck_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Head and Neck length + Full measurement name + + + + + Vertical Distance from Crown to Nape + Full measurement description + + + + + center_front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Center length + Full measurement name + + + + + Front Neck Center over tape at Bustline to Front Waist Center + Full measurement description + + + + + center_back_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Center length + Full measurement name + + + + + Back Neck Center to Back Waist Center + Full measurement description + + + + + shoulder_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder length + Full measurement name + + + + + NeckPoint to ShoulderTip + Full measurement description + + + + + side_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Side Waist length + Full measurement name + + + + + Armpit to Waist side + Full measurement description + + + + + trunk_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Trunk length + Full measurement name + + + + + Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning point + Full measurement description + + + + + shoulder_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder girth + Full measurement name + + + + + Around Arms and Torso, at bicep level parallel to floor, with arms hanging at the sides + Full measurement description + + + + + upper_chest_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upper Chest girth + Full measurement name + + + + + Around Chest at Armfold level, will be parallel to floor across back, will not be parallel to floor across front chest + Full measurement description + + + + + bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust girth + Full measurement name + + + + + Around fullest part of Bust, parallel to floor + Full measurement description + + + + + under_bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Under Bust girth + Full measurement name + + + + + Around Chest below the Bust, parallel to floor + Full measurement description + + + + + waist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist girth + Full measurement name + + + + + Tie a string around smallest part of waist, keep string tied while taking meaasurements. Not usually parallel to floor for front waist or back waist. + Full measurement description + + + + + high_hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip girth + Full measurement name + + + + + Around HighHip, parallel to floor + Full measurement description + + + + + hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip girth + Full measurement name + + + + + Around Hip, parallel to floor + Full measurement description + + + + + upper_front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Upper Chest width + Full measurement name + + + + + Across Front UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Chest width + Full measurement name + + + + + Across Front Chest, from armfold to armfold + Full measurement description + + + + + across_front_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Front + Full measurement description + + + + + across_back_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Back + Full measurement description + + + + + Back Upper Chest width + Full measurement name + + + + + Across Back UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + upper_back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Chest width + Full measurement name + + + + + Across Back Chest, from armfold to armfold + Full measurement description + + + + + bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + BustPoint to BustPoint + Full measurement name + + + + + Distance between BustPoints, across Chest + Full measurement description + + + + + halter_bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + Halter Bustpoint to Bustpoint + Full measurement name + + + + + Distance from Bustpoint, behind neck, down to Bustpoint + Full measurement description + + + + + neck_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + NeckPoint to BustPoint + Full measurement name + + + + + From NeckPoint to BustPoint + Full measurement description + + + + + crotch_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch length + Full measurement name + + + + + From Front Waist Center, down to crotch, up to Back Waist Center + Full measurement description + + + + + rise_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Rise height + Full measurement name + + + + + Sit on hard chair, measure from side waist straight down to chair bottom + Full measurement description + + + + + shoulder_drop + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Drop + Full measurement name + + + + + Vertical Distance from NeckPoint level to ShoulderTip level + Full measurement description + + + + + shoulder_slope_degrees + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Slope degrees + Full measurement name + + + + + Degrees of angle from NeckPoint to ShoulderTip – requires goniometer + Full measurement description + + + + + front_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Shoulder Balance + Full measurement name + + + + + ShoulderTip to Front Waist Center + Full measurement description + + + + + back_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Shoulder Balance + Full measurement name + + + + + ShoulderTip to Back Waist Center + Full measurement description + + + + + front_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Full Length + Full measurement name + + + + + NeckPoint straight down front chest to Waistline + Full measurement description + + + + + back_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Full Length + Full measurement name + + + + + Back NeckPoint straight down back chest to Waistline + Full measurement description + + + + + front_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint through Front Neck Center + Full measurement description + + + + + back_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint across Nape + Full measurement description + + + + + front_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + front_upper-bust_arc + Full measurement name + + + + + front_upper-bust_arc + Full measurement description + + + + + back_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperBust arc + Full measurement name + + + + + Back UpperBust side to side + Full measurement description + + + + + front_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist arc + Full measurement name + + + + + Front Waist side to side + Full measurement description + + + + + back_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist arc + Full measurement name + + + + + Back Waist side to side + Full measurement description + + + + + front_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperHip arc + Full measurement name + + + + + Front UpperHip side to side + Full measurement description + + + + + back_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperHip arc + Full measurement name + + + + + Back UpperHip side to side + Full measurement description + + + + + front_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Hip arc + Full measurement name + + + + + Front Hip side to side + Full measurement description + + + + + back_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Hip arc + Full measurement name + + + + + Back Hip side to side + Full measurement description + + + + + chest_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest Balance + Full measurement name + + + + + NeckPoint to Front ArmfoldPoint + Full measurement description + + + + + back_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Balance + Full measurement name + + + + + NeckPoint to Back ArmfoldPoint + Full measurement description + + + + + front_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist Balance + Full measurement name + + + + + NeckPoint across Front Chest to Waist side + Full measurement description + + + + + back_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist Balance + Full measurement name + + + + + NeckPoint across Back Chest to Waist side + Full measurement description + + + + + front_neck_to_upper_chest_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperChest height + Full measurement name + + + + + Front Neck Center straight down to UpperChest line + Full measurement description + + + + + front_neck_to_bust_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust height + Full measurement name + + + + + Front Neck Center straight down to Bust line + Full measurement description + + + + + armscye_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye Girth + Full measurement name + + + + + Around Armscye + Full measurement description + + + + + elbow_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow Girth + Full measurement name + + + + + Around Elbow with elbow bent + Full measurement description + + + + + upper_arm_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upperarm Girth + Full measurement name + + + + + Around UpperArm + Full measurement description + + + + + wrist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Wrist girth + Full measurement name + + + + + Around Wrist + Full measurement description + + + + + scye_depth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye depth + Full measurement name + + + + + Nape straight down to UnderBust line (same as Back UpperBust height) + Full measurement description + + + + + shoulder_and_arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder and Arm length + Full measurement name + + + + + NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + underarm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Underarm length + Full measurement name + + + + + Armpit to Wrist, with arm straight and hanging at side + Full measurement description + + + + + cervicale_to_wrist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to wrist length + Full measurement name + + + + + Nape to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + shoulder_to_elbow_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow length + Full measurement name + + + + + ShoulderTip to Elbow, with elbow bent and hand on hip + Full measurement description + + + + + arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Arm length + Full measurement name + + + + + ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + hand_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand width + Full measurement name + + + + + Hand side to side + Full measurement description + + + + + hand_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand length + Full measurement name + + + + + Hand Middle Finger tip to wrist + Full measurement description + + + + + hand_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand girth + Full measurement name + + + + + Around Hand + Full measurement description + + + + + thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Thigh girth + Full measurement name + + + + + Around Thigh + Full measurement description + + + + + mid_thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Midthigh girth + Full measurement name + + + + + Around MidThigh + Full measurement description + + + + + knee_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee girth + Full measurement name + + + + + Around Knee + Full measurement description + + + + + calf_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Calf girth + Full measurement name + + + + + Around Calf + Full measurement description + + + + + ankle_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle girth + Full measurement name + + + + + Around Ankle + Full measurement description + + + + + knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee height + Full measurement name + + + + + Knee to Floor + Full measurement description + + + + + ankle_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle height + Full measurement name + + + + + Ankle to Floor + Full measurement description + + + + + foot_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot width + Full measurement name + + + + + Widest part of Foot side to side + Full measurement description + + + + + foot_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot length + Full measurement name + + + + + Tip of Longest Toe straight to back of heel + Full measurement description + + + + + height + Short measurement name. Don't use math symbols in name!!!! + + + + + Total Height + Full measurement name + + + + + Top of head to floor + Full measurement description + + + + + cervicale_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape height + Full measurement name + + + + + Nape to Floor + Full measurement description + + + + + cervicale_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to knee height + Full measurement name + + + + + Nape to Knee + Full measurement description + + + + + waist_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist height + Full measurement name + + + + + Waist side to floor + Full measurement description + + + + + high_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip height + Full measurement name + + + + + HighHip side to Floor + Full measurement description + + + + + hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip height + Full measurement name + + + + + Hip side to Floor + Full measurement description + + + + + waist_to_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Hip height + Full measurement name + + + + + Waist side to Hip + Full measurement description + + + + + waist_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Knee height + Full measurement name + + + + + Waist side to Knee + Full measurement description + + + + + crotch_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch height/Inseam + Full measurement name + + + + + Crotch to Floor along inside leg + Full measurement description + + + + + size + Short measurement name. Don't use math symbols in name!!!! + + + + + Size + Full measurement name + + + + + Size + Full measurement description + + + + + height_front_neck_base_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height front neck base point + Full measurement name + + + + + Height of the point base of the neck in front + Full measurement description + + + + + height_base_neck_side_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height base neck side point + Full measurement name + + + + + Height of the base of the neck side point + Full measurement description + + + + + height_shoulder_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height shoulder point + Full measurement name + + + + + The height of the shoulder point + Full measurement description + + + + + height_nipple_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height nipple point + Full measurement name + + + + + Height nipple point + Full measurement description + + + + + height_back_angle_axilla + Short measurement name. Don't use math symbols in name!!!! + + + + + Height back angle axilla + Full measurement name + + + + + Height back angle axilla + Full measurement description + + + + + height_scapular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height scapular point + Full measurement name + + + + + Height scapular point + Full measurement description + + + + + height_under_buttock_folds + Short measurement name. Don't use math symbols in name!!!! + + + + + Height under buttock folds + Full measurement name + + + + + Height under buttock folds + Full measurement description + + + + + hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Hips excluding protruding abdomen + Full measurement name + + + + + Hips excluding protruding abdomen + Full measurement description + + + + + girth_foot_instep + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth foot instep + Full measurement name + + + + + Girth foot instep + Full measurement description + + + + + side_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Side waist to floor + Full measurement name + + + + + The distance from the side waist to floor + Full measurement description + + + + + front_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist to floor + Full measurement name + + + + + The distance from the front waist to floor + Full measurement description + + + + + arc_through_groin_area + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through groin area + Full measurement name + + + + + Arc through groin area + Full measurement description + + + + + waist_to_plane_seat + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to plane seat + Full measurement name + + + + + The distance from the waist to the plane seat + Full measurement description + + + + + neck_to_radial_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to radial point + Full measurement name + + + + + The distance from the base of the neck to the side of the radial point + Full measurement description + + + + + neck_to_third_finger + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to third finger + Full measurement name + + + + + Distance from the base of the neck side point to the end of the third finger + Full measurement description + + + + + neck_to_first_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to first line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the side of the first line in front of chest circumference + Full measurement description + + + + + front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist length + Full measurement name + + + + + The distance from the base of the neck to the waist side front (waist length in the front) + Full measurement description + + + + + arc_through_shoulder_joint + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through shoulder joint + Full measurement name + + + + + Arc through the highest point of the shoulder joint + Full measurement description + + + + + neck_to_back_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to back line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the back line of chest circumference of the first and the second based on ledge vanes + Full measurement description + + + + + waist_to_neck_side + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to neck side + Full measurement name + + + + + The distance from the waist to the back base of the neck side point + Full measurement description + + + + + arc_length_upper_body + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc length upper body + Full measurement name + + + + + Arc length of the upper body through the base of the neck side point + Full measurement description + + + + + chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest width + Full measurement name + + + + + Chest width + Full measurement description + + + + + anteroposterior_diameter_hands + Short measurement name. Don't use math symbols in name!!!! + + + + + Anteroposterior diameter hands + Full measurement name + + + + + Anteroposterior diameter of the hands + Full measurement description + + + + + height_clavicular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height clavicular point + Full measurement name + + + + + Height clavicular point + Full measurement description + + + + + height_armhole_slash + Short measurement name. Don't use math symbols in name!!!! + + + + + Height armhole slash + Full measurement name + + + + + The distance from the point to the cervical level of the posterior angle of the front armpit (underarm height oblique) + Full measurement description + + + + + slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Slash shoulder height + Full measurement name + + + + + Slash shoulder height + Full measurement description + + + + + half_girth_neck + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck + Full measurement name + + + + + Half girth neck + Full measurement description + + + + + half_girth_neck_for_shirts + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck for shirts + Full measurement name + + + + + Half girth neck for shirts + Full measurement description + + + + + half_girth_chest_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest first + Full measurement name + + + + + Half girth chest first + Full measurement description + + + + + half_girth_chest_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest second + Full measurement name + + + + + Half girth chest second + Full measurement description + + + + + half_girth_chest_third + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest third + Full measurement name + + + + + Half girth chest third + Full measurement description + + + + + half_girth_waist + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth waist + Full measurement name + + + + + Half girth waist + Full measurement description + + + + + half_girth_hips_considering_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips considering protruding abdomen + Full measurement name + + + + + Half girth hips considering protruding abdomen + Full measurement description + + + + + half_girth_hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips excluding protruding abdomen + Full measurement name + + + + + Half girth hips excluding protruding abdomen + Full measurement description + + + + + girth_knee_flexed_feet + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth knee flexed feet + Full measurement name + + + + + Girth knee flexed feet + Full measurement description + + + + + neck_transverse_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck transverse diameter + Full measurement name + + + + + Neck transverse diameter + Full measurement description + + + + + front_slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front slash shoulder height + Full measurement name + + + + + Front slash shoulder height + Full measurement description + + + + + neck_to_front_waist_line + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to front waist line + Full measurement name + + + + + The distance from the base of the neck to the waist line front + Full measurement description + + + + + hand_vertical_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand vertical diameter + Full measurement name + + + + + Hand vertical diameter + Full measurement description + + + + + neck_to_knee_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to knee point + Full measurement name + + + + + Distance from neck to knee point + Full measurement description + + + + + waist_to_knee + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to knee + Full measurement name + + + + + The distance from the waist to the knee + Full measurement description + + + + + shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder height + Full measurement name + + + + + Shoulder height + Full measurement description + + + + + head_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Head height + Full measurement name + + + + + Head height + Full measurement description + + + + + body_position + Short measurement name. Don't use math symbols in name!!!! + + + + + Body position + Full measurement name + + + + + Body position + Full measurement description + + + + + arc_behind_shoulder_girdle + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc behind shoulder girdle + Full measurement name + + + + + Arc behind the shoulder girdle + Full measurement description + + + + + neck_to_neck_base + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to neck base + Full measurement name + + + + + Distance from neck point to point on the base of the neck side neck girth measurement line + Full measurement description + + + + + depth_waist_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist first + Full measurement name + + + + + Depth waist first + Full measurement description + + + + + depth_waist_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist second + Full measurement name + + + + + Depth waist second + Full measurement description PatternPage - + User - + User name - + Graphical output - + Use antialiasing - + Undone - + Count steps + + PostfixOperators + + + cm + centimeter + + + + + mm + millimeter + + + + + in + inch + + + QObject - + Create new pattern piece to start working. @@ -2731,130 +5441,160 @@ Do you want to save your changes? TableWindow - + Create a layout - + toolBar - + Save שמור - - + + Save layout - + Next - + Next detail - + Turn - + Turn the detail 90 degrees - + Stop - + Stop laying - + Enlarge letter - + Enlarge the length of the sheet - + Reduce sheet - + Reduce the length of the sheet - - + + Mirroring - - + + Zoom In - - + + Zoom Out - + 0 details left. - - + + Collisions not found. - + %1 details left. - + + untitled + + + + + Svg files (*.svg) + + + + + PDF files (*.pdf) + + + + + Images (*.png) + + + + + PS files (*.ps) + + + + + EPS files (*.eps) + + + + Collisions found. - - SVG Generator Example Drawing + + Creating file '%1' failed! %2 - - An SVG drawing created by the SVG Generator Example provided with Qt. + + Critical error! VAbstractNode - + Can't find tag Modeling @@ -2862,12 +5602,12 @@ Do you want to save your changes? VAbstractTool - + Confirm the deletion. - + Do you really want delete? @@ -2875,42 +5615,32 @@ Do you want to save your changes? VApplication - - - - - - - Error! - - - - + Error parsing file. Program will be terminated. - + Error bad id. Program will be terminated. - + Error can't convert value. Program will be terminated. - + Error empty parameter. Program will be terminated. - + Error wrong id. Program will be terminated. - + Something's wrong!! @@ -2918,215 +5648,269 @@ Do you want to save your changes? VContainer - - - + + + Can't find object + + + Can't cast object + + VDomDocument - - Can't find tool id = %1 in table. + + Can't convert toUInt parameter - - Got wrong parameter id. Need only id > 0. - - - - - Can't convert toLongLong parameter - - - - + Got empty parameter - + Can't convert toDouble parameter - - This id is not unique. + + + Can't open file %1: +%2. - - Error creating or updating detail + + Can't open schema file %1: +%2. - - Error creating or updating single point + + Validation error in line %1 column %2 - - Error creating or updating point of end line - - - - - Error creating or updating point along line - - - - - Error creating or updating point of shoulder - - - - - Error creating or updating point of normal - - - - - Error creating or updating point of bisector - - - - - Error creating or updating point of lineintersection - - - - - Error creating or updating point of contact - - - - - Error creating or updating modeling point - - - - - Error creating or updating height - - - - - Error creating or updating triangle - - - - - Error creating or updating point of intersection - - - - - Error creating or updating cut spline point - - - - - Error creating or updating cut spline path point - - - - - Error creating or updating cut arc point - - - - - Error creating or updating line - - - - - Error creating or updating simple curve - - - - - Error creating or updating curve path - - - - - Error creating or updating modeling simple curve - - - - - Error creating or updating modeling curve path - - - - - Error creating or updating simple arc - - - - - Error creating or updating modeling arc - - - - - Error creating or updating union details - - - - - Error! - - - - - Error parsing file. + + Parcing error in line %1 column %2 VDrawTool - + Can not find the element after which you want to insert. - + Can't find tag Calculation - + Options אפשרויות - + Delete למחוק + + VException + + + Critical error! + + + + + VPattern + + + Can't find tool id = %1 in table. + + + + + Error no unique id. + + + + + Error! + + + + + Error parsing file. + + + + + Error creating or updating detail + + + + + Error creating or updating single point + + + + + + Error creating or updating point of end line + + + + + + Error creating or updating point along line + + + + + + Error creating or updating point of shoulder + + + + + + Error creating or updating point of normal + + + + + + Error creating or updating point of bisector + + + + + Error creating or updating point of lineintersection + + + + + + Error creating or updating point of contact + + + + + Error creating or updating modeling point + + + + + Error creating or updating height + + + + + Error creating or updating triangle + + + + + Error creating or updating point of intersection + + + + + + Error creating or updating cut spline point + + + + + + Error creating or updating cut spline path point + + + + + + Error creating or updating cut arc point + + + + + Error creating or updating line + + + + + Error creating or updating simple curve + + + + + Error creating or updating curve path + + + + + Error creating or updating modeling simple curve + + + + + Error creating or updating modeling curve path + + + + + + Error creating or updating simple arc + + + + + Error creating or updating modeling arc + + + + + Error creating or updating union details + + + + + Got wrong parameter id. Need only id > 0. + + + + + This id is not unique. + + + VSplinePath - + Not enough points to create the spline. - - - + + + This spline does not exist. - + Can't cut spline path with one point @@ -3134,12 +5918,12 @@ Do you want to save your changes? VTableGraphicsView - + can't find detail - + detail found @@ -3147,30 +5931,54 @@ Do you want to save your changes? VToolDetail - + Options אפשרויות - + Delete למחוק - - VToolTriangle - - - Can't find point. - - - VToolUnionDetails - + Can't find tag Modeling + + Variables + + + Line_ + Left symbol _ in name + + + + + AngleLine_ + Left symbol _ in name + + + + + Arc_ + Left symbol _ in name + + + + + Spl_ + Left symbol _ in name + + + + + SplPath + + + diff --git a/src/app/share/translations/valentina_it.ts b/src/app/share/translations/valentina_it.ts new file mode 100644 index 000000000..ff5be508e --- /dev/null +++ b/src/app/share/translations/valentina_it.ts @@ -0,0 +1,5976 @@ + + + + + ConfigDialog + + + Apply + + + + + &Cancel + + + + + &Ok + + + + + Config Dialog + + + + + Configuration + + + + + Pattern + + + + + ConfigurationPage + + + Setup user interface language updated and will be used the next time start + + + + + Save + + + + + Auto-save modified pattern + + + + + Interval: + + + + + min + + + + + Language + + + + + GUI language + + + + + Decimal separator parts + + + + + With OS options (.) + + + + + DialogAboutApp + + + About Valentina + + + + + Valentina version + + + + + Contributors + + + + + Based on Qt %2 (32 bit) + + + + + Built on %3 at %4 + + + + + Web site : %1 + + + + + Warning + + + + + Cannot open your default browser + + + + + DialogAlongLine + + + Point along line + + + + + Length + + + + + Formula for the calculation of length of line + + + + + Insert variable into the formula + + + + + + ... + ... + + + + Calculate value + + + + + Value of length + + + + + _ + _ + + + + Point label + + + + + First point + + + + + First point of line + + + + + Second point + + + + + Second point of line + + + + + Type of line + + + + + Show line from first point to this point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + Select second point of line + + + + + DialogArc + + + Arc + + + + + Radius + + + + + Formula for the calculation of radius of arc + + + + + Insert variable into the formula + + + + + + + + + + ... + ... + + + + + + Calculate value + + + + + Value of radius + + + + + + + _ + _ + + + + First angle degree + + + + + First angle of arc counterclockwise + + + + + Insert variable into formula + + + + + Value of first angle + + + + + Second angle degree + + + + + Second angle of arc counterclockwise + + + + + Insert marked variable into formula + + + + + Value of second angle + + + + + Center point + + + + + Select point of center of arc + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Angle of lines + + + + + Variables + + + + + Value of angle of line. + + + + + DialogBisector + + + Bisector + + + + + Length + + + + + Calculation of length of bisector by using the formula + + + + + Insert marked variable into the formula + + + + + + ... + ... + + + + Calculate value + + + + + Value of length + + + + + _ + _ + + + + Point label + + + + + First point + + + + + First point of angle + + + + + Second point + + + + + Second point of angle + + + + + Third point + + + + + Third point of angle + + + + + Type of line + + + + + Show line from second point to this point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + Select second point of angle + + + + + Select third point of angle + + + + + DialogCutArc + + + Dialog + + + + + Length + + + + + Formula for the calculation of the spline + + + + + + ... + ... + + + + Calculate value + + + + + Value of length + + + + + _ + _ + + + + Arc + + + + + Selected curve + + + + + Point label + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + DialogCutSpline + + + Dialog + + + + + Length + + + + + Formula for the calculation of the spline + + + + + + ... + ... + + + + Calculate value + + + + + Value of length + + + + + _ + _ + + + + Curve + + + + + Selected curve + + + + + Point label + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + DialogCutSplinePath + + + Dialog + + + + + Length + + + + + Formula for the calculation of the curve length + + + + + + ... + ... + + + + Calculate value + + + + + Value of length + + + + + _ + _ + + + + Curve + + + + + Selected curve path + + + + + Point label + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + DialogDetail + + + + Detail + + + + + Bias X + + + + + Bias Y + + + + + Options + + + + + Name of detail + + + + + Seam allowance + + + + + Width + + + + + Closed + + + + + Delete + + + + + Got wrong scene object. Ignore. + + + + + DialogEndLine + + + Point in the end of a line + + + + + Length + + + + + Formula for calculation of length of line + + + + + + + + + + + + + + ... + ... + + + + Calculate value + + + + + Value of length + + + + + _ + _ + + + + Base point + + + + + First point of line + + + + + Point label + + + + + Degree of angle + + + + + Angle of line + + + + + Type of line + + + + + Show line from first point to this point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + DialogHeight + + + Dialog + + + + + Point label + + + + + Base point + + + + + + + + First point of line + + + + + Second point of line + + + + + Type of line + + + + + Show line from first point to our point + + + + + Select first point of line + + + + + Select second point of line + + + + + DialogHistory + + + History + + + + + + Tool + + + + + + + + Can't create record. + + + + + %1 - Base point + + + + + + %1_%2 - Line from point %1 to point %2 + + + + + %3 - Point along line %1_%2 + + + + + %1 - Point of shoulder + + + + + %3 - normal to line %1_%2 + + + + + %4 - bisector of angle %1_%2_%3 + + + + + %5 - intersection of lines %1_%2 and %3_%4 + + + + + Curve %1_%2 + + + + + Arc with center in point %1 + + + + + Curve point %1 + + + + + %4 - point of contact of arc with the center in point %1 and line %2_%3 + + + + + Point of perpendicular from point %1 to line %2_%3 + + + + + Triangle: axis %1_%2, points %3 and %4 + + + + + %1 - point of intersection %2 and %3 + + + + + %1 - cut arc with center %2 + + + + + %1 - cut curve %2_%3 + + + + + %1 - cut curve path %2 + + + + + DialogIncrements + + + + Increments + + + + + Email + + + + + + Name + + + + + + The calculated value + + + + + + Base value + + + + + + In sizes + + + + + + + Description + + + + + + + ... + ... + + + + + Measurements + + + + + Load another measurements table + + + + + Personal information + + + + + Given name + + + + + Family name + + + + + Birth date + + + + + Sex + + + + + + In heights + + + + + Lines + + + + + Line + + + + + + + Length + + + + + Curves + + + + + Curve + + + + + Arcs + + + + + Arc + + + + + + + File error. + + + + + male + + + + + female + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + Individual measurements (*.vit) + + + + + + Open file + + + + + + Wrong units. + + + + + Standard measurements (*.vst) + + + + + Name_%1 + + + + + DialogIndividualMeasurements + + + Individual measurements + + + + + Pattern piece name + + + + + Exist measurements + + + + + + Path: + + + + + + ... + ... + + + + New measurements + + + + + Units: + + + + + Could not create measurements file + + + + + Please try again or change file + + + + + + File error. + + + + + + Individual measurements (*.vit) + + + + + Open file + + + + + Where save measurements? + + + + + centimeter + + + + + inch + + + + + DialogLine + + + Line + + + + + First point + + + + + Second point + + + + + Type of line + + + + + Show line from first point to this point + + + + + Select second point + + + + + DialogLineIntersect + + + Intersection of lines + + + + + Point label + + + + + First line + + + + + + First point + + + + + + Second point + + + + + Second line + + + + + Select second point of first line + + + + + Select first point of second line + + + + + Select second point of second line + + + + + DialogMeasurements + + + Measurements + + + + + <html><head/><body><p><span style=" font-size:18pt;">Please, choose pattern type.</span></p></body></html> + + + + + Graduation + + + + + Use for creation pattern standard measurement table + + + + + Individual + + + + + Use for creation pattern individual measurements + + + + + DialogNormal + + + Normal + + + + + Length + + + + + Formula for calculation of length of normal + + + + + Insert variable into formula + + + + + + + + + + + + + + ... + ... + + + + Calculate value + + + + + Value of length + + + + + _ + _ + + + + Point label + + + + + First point + + + + + Second point + + + + + Additional angle degrees + + + + + Type of line + + + + + Show line from first point to this point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + Select second point of line + + + + + DialogPatternProperties + + + Pattern properties + + + + + Author name + + + + + Pattern description + + + + + For technical notes. + + + + + DialogPointOfContact + + + Point of contact + + + + + Radius + + + + + Formula for calculation of radius of arc + + + + + Insert variable into formula + + + + + + ... + ... + + + + Calculate value + + + + + Value of radius + + + + + _ + _ + + + + Point label + + + + + Center of arc + + + + + + Select point of center of arc + + + + + Top of the line + + + + + End of the line + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula. + + + + + Select second point of line + + + + + DialogPointOfIntersection + + + Dialog + + + + + Point label + + + + + vertical point + + + + + First point of angle + + + + + horizontal point + + + + + Second point of angle + + + + + Select point horizontally + + + + + DialogShoulderPoint + + + + Point of shoulder + + + + + Length + + + + + Formula for calculation of length of line + + + + + Insert variable into formula + + + + + + ... + ... + + + + Calculate value + + + + + Value of length + + + + + _ + _ + + + + Point label + + + + + First point + + + + + Second point + + + + + Type of line + + + + + Show line from first point to our point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + + Length of lines + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + Select second point of line + + + + + Select point of shoulder + + + + + DialogSinglePoint + + + Single point + + + + + Coordinates on the sheet + + + + + Coordinates + + + + + Y coordinate + + + + + X coordinate + + + + + Point label + + + + + DialogSpline + + + Curve + + + + + First point + + + + + Length ratio of the first control point + + + + + The angle of the first control point + + + + + Second point + + + + + Length ratio of the second control point + + + + + The angle of the second control point + + + + + Coefficient of curvature of the curve + + + + + Select last point of curve + + + + + DialogSplinePath + + + Curve path + + + + + Point of curve + + + + + Length ratio of the first control point + + + + + The angle of the first control point + + + + + Length ratio of the second control point + + + + + The angle of the second control point + + + + + List of points + + + + + Coefficient of curvature of the curve + + + + + Select point of curve path + + + + + DialogStandardMeasurements + + + Standard table + + + + + Pattern piece name + + + + + Standard measurements table + + + + + File error. + + + + + DialogTool + + + Line + + + + + No line + + + + + Dash Line + + + + + Dot Line + + + + + Dash Dot Line + + + + + Dash Dot Dot Line + + + + + Error + + + + + Height + + + + + Size + + + + + Line length + + + + + Arc length + + + + + Curve length + + + + + DialogTriangle + + + Dialog + + + + + Point label + + + + + First point of axis + + + + + + + + First point of line + + + + + Second point of axis + + + + + First point + + + + + Second point + + + + + Select second point of axis + + + + + Select first point + + + + + Select second point + + + + + DialogUnionDetails + + + Dialog + + + + + Do you really want union details? This operation can't be undone. + + + + + Select first point + + + + + Select second point + + + + + + Select another second point + + + + + Select detail + + + + + Functions + + + sin + sine function + + + + + cos + cosine function + + + + + tan + tangens function + + + + + asin + arcus sine function + + + + + acos + arcus cosine function + + + + + atan + arcus tangens function + + + + + sinh + hyperbolic sine function + + + + + cosh + hyperbolic cosine + + + + + tanh + hyperbolic tangens function + + + + + asinh + hyperbolic arcus sine function + + + + + acosh + hyperbolic arcus tangens function + + + + + atanh + hyperbolic arcur tangens function + + + + + log2 + logarithm to the base 2 + + + + + log10 + logarithm to the base 10 + + + + + log + logarithm to the base 10 + + + + + ln + logarithm to base e (2.71828...) + + + + + exp + e raised to the power of x + + + + + sqrt + square root of a value + + + + + sign + sign function -1 if x<0; 1 if x>0 + + + + + rint + round to nearest integer + + + + + abs + absolute value + + + + + min + min of all arguments + + + + + max + max of all arguments + + + + + sum + sum of all arguments + + + + + avg + mean value of all arguments + + + + + MainWindow + + + Valentina + + + + + Tools for creating points. + + + + + Point + + + + + + + + + + + + + + + + + + + + + + + ... + ... + + + + Tool triangle. + + + + + Tools for creating lines. + + + + + Line + + + + + Tools for creating curves. + + + + + Curve + + + + + Curve tool. + + + + + Tool for path curve. + + + + + Tool segment a pathed curve. + + + + + Tool for segmenting a curve. + + + + + Tools for creating arcs. + + + + + Arc + + + + + Arc tool. + + + + + Tools for creating details. + + + + + Detail + + + + + Tool new detail. + + + + + toolBar + + + + + toolBar_2 + + + + + toolBar_3 + + + + + New + + + + + Create a new pattern + + + + + Ctrl+N + + + + + Open + + + + + Open file with pattern + + + + + Save + + + + + Save pattern + + + + + Ctrl+S + + + + + Save as + + + + + Point at distance and angle + + + + + Special point on shoulder. + + + + + Point at intersection of arc and line. + + + + + Point along bisector + + + + + Point along perpendicular + + + + + Point at distance along line + + + + + Perpendicular point along line + + + + + Line between points + + + + + Point at line intersection + + + + + &File + + + + + &Help + + + + + &Pattern piece + + + + + &New + + + + + &Open + + + + + &Save + + + + + Save &As... + + + + + Save not yet saved pattern + + + + + Ctrl+Shift+S + + + + + Draw + + + + + Draw mode + + + + + Ctrl+W + + + + + Details + + + + + Details mode + + + + + Ctrl+E + Ctrl+E + + + + + Pointer tools + + + + + New pattern piece + + + + + Add new pattern piece + + + + + Ctrl+Shift+N + Ctrl+Shift+N + + + + + Change the label of pattern piece + + + + + Table of variables + + + + + Tables of variables + + + + + Ctrl+T + Ctrl+T + + + + History + + + + + Ctrl+H + Ctrl+H + + + + Layout + + + + + Create layout + + + + + Ctrl+L + Ctrl+L + + + + About &Qt + + + + + &About Valentina + + + + + E&xit + + + + + Exit the application + + + + + Options... + + + + + Pattern properties + + + + + About Qt + + + + + Ctrl+Q + Ctrl+Q + + + + Pattern piece %1 + + + + + + /pattern.val + + + + + File saved + + + + + untitled.val + + + + + Unsaved change + + + + + The pattern has been modified. +Do you want to save your changes? + + + + + Pattern piece: + + + + + Enter a new label for the pattern piece. + + + + + Error saving change!!! + + + + + Can't save new label of pattern piece + + + + + + Select point + + + + + Select first point + + + + + + + Select first point of line + + + + + Select first point of angle + + + + + Select first point of first line + + + + + Select first point curve + + + + + Select simple curve + + + + + Select point of center of arc + + + + + Select point of curve path + + + + + Select curve path + + + + + Select points, arcs, curves clockwise. + + + + + Select base point + + + + + Select first point of axis + + + + + Select point vertically + + + + + Select detail + + + + + Select arc + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + + Wrong units. + + + + + File error. + + + + + File loaded + + + + + The measurements file <br/><br/> <b>%1</b> <br/><br/> %3 + + + + + could not be found. Do you want to update the file location + + + + + Standard measurements (*.vst) + + + + + Individual measurements (*.vit) + + + + <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 + <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 + + + + Height: + + + + + Size: + + + + + Pattern Piece: + + + + + + Pattern files (*.val) + + + + + + Open file + + + + + + Error parsing file. + + + + + Error can't convert value. + + + + + Error empty parameter. + + + + + Error wrong id. + + + + + Measurements + + + head_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Head girth + Full measurement name + + + + + Around fullest part of Head + Full measurement description + + + + + mid_neck_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Mid-neck girth + Full measurement name + + + + + Around middle part of Neck + Full measurement description + + + + + neck_base_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck Base girth + Full measurement name + + + + + Around Neck at base + Full measurement description + + + + + head_and_neck_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Head and Neck length + Full measurement name + + + + + Vertical Distance from Crown to Nape + Full measurement description + + + + + center_front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Center length + Full measurement name + + + + + Front Neck Center over tape at Bustline to Front Waist Center + Full measurement description + + + + + center_back_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Center length + Full measurement name + + + + + Back Neck Center to Back Waist Center + Full measurement description + + + + + shoulder_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder length + Full measurement name + + + + + NeckPoint to ShoulderTip + Full measurement description + + + + + side_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Side Waist length + Full measurement name + + + + + Armpit to Waist side + Full measurement description + + + + + trunk_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Trunk length + Full measurement name + + + + + Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning point + Full measurement description + + + + + shoulder_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder girth + Full measurement name + + + + + Around Arms and Torso, at bicep level parallel to floor, with arms hanging at the sides + Full measurement description + + + + + upper_chest_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upper Chest girth + Full measurement name + + + + + Around Chest at Armfold level, will be parallel to floor across back, will not be parallel to floor across front chest + Full measurement description + + + + + bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust girth + Full measurement name + + + + + Around fullest part of Bust, parallel to floor + Full measurement description + + + + + under_bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Under Bust girth + Full measurement name + + + + + Around Chest below the Bust, parallel to floor + Full measurement description + + + + + waist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist girth + Full measurement name + + + + + Tie a string around smallest part of waist, keep string tied while taking meaasurements. Not usually parallel to floor for front waist or back waist. + Full measurement description + + + + + high_hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip girth + Full measurement name + + + + + Around HighHip, parallel to floor + Full measurement description + + + + + hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip girth + Full measurement name + + + + + Around Hip, parallel to floor + Full measurement description + + + + + upper_front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Upper Chest width + Full measurement name + + + + + Across Front UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Chest width + Full measurement name + + + + + Across Front Chest, from armfold to armfold + Full measurement description + + + + + across_front_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Front + Full measurement description + + + + + across_back_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Back + Full measurement description + + + + + Back Upper Chest width + Full measurement name + + + + + Across Back UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + upper_back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Chest width + Full measurement name + + + + + Across Back Chest, from armfold to armfold + Full measurement description + + + + + bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + BustPoint to BustPoint + Full measurement name + + + + + Distance between BustPoints, across Chest + Full measurement description + + + + + halter_bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + Halter Bustpoint to Bustpoint + Full measurement name + + + + + Distance from Bustpoint, behind neck, down to Bustpoint + Full measurement description + + + + + neck_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + NeckPoint to BustPoint + Full measurement name + + + + + From NeckPoint to BustPoint + Full measurement description + + + + + crotch_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch length + Full measurement name + + + + + From Front Waist Center, down to crotch, up to Back Waist Center + Full measurement description + + + + + rise_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Rise height + Full measurement name + + + + + Sit on hard chair, measure from side waist straight down to chair bottom + Full measurement description + + + + + shoulder_drop + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Drop + Full measurement name + + + + + Vertical Distance from NeckPoint level to ShoulderTip level + Full measurement description + + + + + shoulder_slope_degrees + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Slope degrees + Full measurement name + + + + + Degrees of angle from NeckPoint to ShoulderTip – requires goniometer + Full measurement description + + + + + front_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Shoulder Balance + Full measurement name + + + + + ShoulderTip to Front Waist Center + Full measurement description + + + + + back_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Shoulder Balance + Full measurement name + + + + + ShoulderTip to Back Waist Center + Full measurement description + + + + + front_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Full Length + Full measurement name + + + + + NeckPoint straight down front chest to Waistline + Full measurement description + + + + + back_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Full Length + Full measurement name + + + + + Back NeckPoint straight down back chest to Waistline + Full measurement description + + + + + front_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint through Front Neck Center + Full measurement description + + + + + back_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint across Nape + Full measurement description + + + + + front_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + front_upper-bust_arc + Full measurement name + + + + + front_upper-bust_arc + Full measurement description + + + + + back_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperBust arc + Full measurement name + + + + + Back UpperBust side to side + Full measurement description + + + + + front_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist arc + Full measurement name + + + + + Front Waist side to side + Full measurement description + + + + + back_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist arc + Full measurement name + + + + + Back Waist side to side + Full measurement description + + + + + front_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperHip arc + Full measurement name + + + + + Front UpperHip side to side + Full measurement description + + + + + back_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperHip arc + Full measurement name + + + + + Back UpperHip side to side + Full measurement description + + + + + front_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Hip arc + Full measurement name + + + + + Front Hip side to side + Full measurement description + + + + + back_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Hip arc + Full measurement name + + + + + Back Hip side to side + Full measurement description + + + + + chest_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest Balance + Full measurement name + + + + + NeckPoint to Front ArmfoldPoint + Full measurement description + + + + + back_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Balance + Full measurement name + + + + + NeckPoint to Back ArmfoldPoint + Full measurement description + + + + + front_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist Balance + Full measurement name + + + + + NeckPoint across Front Chest to Waist side + Full measurement description + + + + + back_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist Balance + Full measurement name + + + + + NeckPoint across Back Chest to Waist side + Full measurement description + + + + + front_neck_to_upper_chest_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperChest height + Full measurement name + + + + + Front Neck Center straight down to UpperChest line + Full measurement description + + + + + front_neck_to_bust_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust height + Full measurement name + + + + + Front Neck Center straight down to Bust line + Full measurement description + + + + + armscye_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye Girth + Full measurement name + + + + + Around Armscye + Full measurement description + + + + + elbow_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow Girth + Full measurement name + + + + + Around Elbow with elbow bent + Full measurement description + + + + + upper_arm_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upperarm Girth + Full measurement name + + + + + Around UpperArm + Full measurement description + + + + + wrist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Wrist girth + Full measurement name + + + + + Around Wrist + Full measurement description + + + + + scye_depth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye depth + Full measurement name + + + + + Nape straight down to UnderBust line (same as Back UpperBust height) + Full measurement description + + + + + shoulder_and_arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder and Arm length + Full measurement name + + + + + NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + underarm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Underarm length + Full measurement name + + + + + Armpit to Wrist, with arm straight and hanging at side + Full measurement description + + + + + cervicale_to_wrist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to wrist length + Full measurement name + + + + + Nape to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + shoulder_to_elbow_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow length + Full measurement name + + + + + ShoulderTip to Elbow, with elbow bent and hand on hip + Full measurement description + + + + + arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Arm length + Full measurement name + + + + + ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + hand_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand width + Full measurement name + + + + + Hand side to side + Full measurement description + + + + + hand_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand length + Full measurement name + + + + + Hand Middle Finger tip to wrist + Full measurement description + + + + + hand_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand girth + Full measurement name + + + + + Around Hand + Full measurement description + + + + + thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Thigh girth + Full measurement name + + + + + Around Thigh + Full measurement description + + + + + mid_thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Midthigh girth + Full measurement name + + + + + Around MidThigh + Full measurement description + + + + + knee_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee girth + Full measurement name + + + + + Around Knee + Full measurement description + + + + + calf_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Calf girth + Full measurement name + + + + + Around Calf + Full measurement description + + + + + ankle_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle girth + Full measurement name + + + + + Around Ankle + Full measurement description + + + + + knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee height + Full measurement name + + + + + Knee to Floor + Full measurement description + + + + + ankle_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle height + Full measurement name + + + + + Ankle to Floor + Full measurement description + + + + + foot_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot width + Full measurement name + + + + + Widest part of Foot side to side + Full measurement description + + + + + foot_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot length + Full measurement name + + + + + Tip of Longest Toe straight to back of heel + Full measurement description + + + + + height + Short measurement name. Don't use math symbols in name!!!! + + + + + Total Height + Full measurement name + + + + + Top of head to floor + Full measurement description + + + + + cervicale_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape height + Full measurement name + + + + + Nape to Floor + Full measurement description + + + + + cervicale_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to knee height + Full measurement name + + + + + Nape to Knee + Full measurement description + + + + + waist_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist height + Full measurement name + + + + + Waist side to floor + Full measurement description + + + + + high_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip height + Full measurement name + + + + + HighHip side to Floor + Full measurement description + + + + + hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip height + Full measurement name + + + + + Hip side to Floor + Full measurement description + + + + + waist_to_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Hip height + Full measurement name + + + + + Waist side to Hip + Full measurement description + + + + + waist_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Knee height + Full measurement name + + + + + Waist side to Knee + Full measurement description + + + + + crotch_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch height/Inseam + Full measurement name + + + + + Crotch to Floor along inside leg + Full measurement description + + + + + size + Short measurement name. Don't use math symbols in name!!!! + + + + + Size + Full measurement name + + + + + Size + Full measurement description + + + + + height_front_neck_base_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height front neck base point + Full measurement name + + + + + Height of the point base of the neck in front + Full measurement description + + + + + height_base_neck_side_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height base neck side point + Full measurement name + + + + + Height of the base of the neck side point + Full measurement description + + + + + height_shoulder_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height shoulder point + Full measurement name + + + + + The height of the shoulder point + Full measurement description + + + + + height_nipple_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height nipple point + Full measurement name + + + + + Height nipple point + Full measurement description + + + + + height_back_angle_axilla + Short measurement name. Don't use math symbols in name!!!! + + + + + Height back angle axilla + Full measurement name + + + + + Height back angle axilla + Full measurement description + + + + + height_scapular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height scapular point + Full measurement name + + + + + Height scapular point + Full measurement description + + + + + height_under_buttock_folds + Short measurement name. Don't use math symbols in name!!!! + + + + + Height under buttock folds + Full measurement name + + + + + Height under buttock folds + Full measurement description + + + + + hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Hips excluding protruding abdomen + Full measurement name + + + + + Hips excluding protruding abdomen + Full measurement description + + + + + girth_foot_instep + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth foot instep + Full measurement name + + + + + Girth foot instep + Full measurement description + + + + + side_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Side waist to floor + Full measurement name + + + + + The distance from the side waist to floor + Full measurement description + + + + + front_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist to floor + Full measurement name + + + + + The distance from the front waist to floor + Full measurement description + + + + + arc_through_groin_area + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through groin area + Full measurement name + + + + + Arc through groin area + Full measurement description + + + + + waist_to_plane_seat + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to plane seat + Full measurement name + + + + + The distance from the waist to the plane seat + Full measurement description + + + + + neck_to_radial_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to radial point + Full measurement name + + + + + The distance from the base of the neck to the side of the radial point + Full measurement description + + + + + neck_to_third_finger + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to third finger + Full measurement name + + + + + Distance from the base of the neck side point to the end of the third finger + Full measurement description + + + + + neck_to_first_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to first line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the side of the first line in front of chest circumference + Full measurement description + + + + + front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist length + Full measurement name + + + + + The distance from the base of the neck to the waist side front (waist length in the front) + Full measurement description + + + + + arc_through_shoulder_joint + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through shoulder joint + Full measurement name + + + + + Arc through the highest point of the shoulder joint + Full measurement description + + + + + neck_to_back_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to back line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the back line of chest circumference of the first and the second based on ledge vanes + Full measurement description + + + + + waist_to_neck_side + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to neck side + Full measurement name + + + + + The distance from the waist to the back base of the neck side point + Full measurement description + + + + + arc_length_upper_body + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc length upper body + Full measurement name + + + + + Arc length of the upper body through the base of the neck side point + Full measurement description + + + + + chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest width + Full measurement name + + + + + Chest width + Full measurement description + + + + + anteroposterior_diameter_hands + Short measurement name. Don't use math symbols in name!!!! + + + + + Anteroposterior diameter hands + Full measurement name + + + + + Anteroposterior diameter of the hands + Full measurement description + + + + + height_clavicular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height clavicular point + Full measurement name + + + + + Height clavicular point + Full measurement description + + + + + height_armhole_slash + Short measurement name. Don't use math symbols in name!!!! + + + + + Height armhole slash + Full measurement name + + + + + The distance from the point to the cervical level of the posterior angle of the front armpit (underarm height oblique) + Full measurement description + + + + + slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Slash shoulder height + Full measurement name + + + + + Slash shoulder height + Full measurement description + + + + + half_girth_neck + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck + Full measurement name + + + + + Half girth neck + Full measurement description + + + + + half_girth_neck_for_shirts + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck for shirts + Full measurement name + + + + + Half girth neck for shirts + Full measurement description + + + + + half_girth_chest_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest first + Full measurement name + + + + + Half girth chest first + Full measurement description + + + + + half_girth_chest_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest second + Full measurement name + + + + + Half girth chest second + Full measurement description + + + + + half_girth_chest_third + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest third + Full measurement name + + + + + Half girth chest third + Full measurement description + + + + + half_girth_waist + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth waist + Full measurement name + + + + + Half girth waist + Full measurement description + + + + + half_girth_hips_considering_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips considering protruding abdomen + Full measurement name + + + + + Half girth hips considering protruding abdomen + Full measurement description + + + + + half_girth_hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips excluding protruding abdomen + Full measurement name + + + + + Half girth hips excluding protruding abdomen + Full measurement description + + + + + girth_knee_flexed_feet + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth knee flexed feet + Full measurement name + + + + + Girth knee flexed feet + Full measurement description + + + + + neck_transverse_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck transverse diameter + Full measurement name + + + + + Neck transverse diameter + Full measurement description + + + + + front_slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front slash shoulder height + Full measurement name + + + + + Front slash shoulder height + Full measurement description + + + + + neck_to_front_waist_line + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to front waist line + Full measurement name + + + + + The distance from the base of the neck to the waist line front + Full measurement description + + + + + hand_vertical_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand vertical diameter + Full measurement name + + + + + Hand vertical diameter + Full measurement description + + + + + neck_to_knee_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to knee point + Full measurement name + + + + + Distance from neck to knee point + Full measurement description + + + + + waist_to_knee + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to knee + Full measurement name + + + + + The distance from the waist to the knee + Full measurement description + + + + + shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder height + Full measurement name + + + + + Shoulder height + Full measurement description + + + + + head_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Head height + Full measurement name + + + + + Head height + Full measurement description + + + + + body_position + Short measurement name. Don't use math symbols in name!!!! + + + + + Body position + Full measurement name + + + + + Body position + Full measurement description + + + + + arc_behind_shoulder_girdle + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc behind shoulder girdle + Full measurement name + + + + + Arc behind the shoulder girdle + Full measurement description + + + + + neck_to_neck_base + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to neck base + Full measurement name + + + + + Distance from neck point to point on the base of the neck side neck girth measurement line + Full measurement description + + + + + depth_waist_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist first + Full measurement name + + + + + Depth waist first + Full measurement description + + + + + depth_waist_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist second + Full measurement name + + + + + Depth waist second + Full measurement description + + + + + PatternPage + + + User + + + + + User name + + + + + Graphical output + + + + + Use antialiasing + + + + + Undone + + + + + Count steps + + + + + PostfixOperators + + + cm + centimeter + + + + + mm + millimeter + + + + + in + inch + + + + + QObject + + + Create new pattern piece to start working. + + + + + TableWindow + + + Create a layout + + + + + toolBar + + + + + Save + + + + + + Save layout + + + + + Next + + + + + Next detail + + + + + Turn + + + + + Turn the detail 90 degrees + + + + + Stop + + + + + Stop laying + + + + + Enlarge letter + + + + + Enlarge the length of the sheet + + + + + Reduce sheet + + + + + Reduce the length of the sheet + + + + + + Mirroring + + + + + + Zoom In + + + + + + Zoom Out + + + + + 0 details left. + + + + + + Collisions not found. + + + + + %1 details left. + + + + + untitled + + + + + Svg files (*.svg) + + + + + PDF files (*.pdf) + + + + + Images (*.png) + + + + + PS files (*.ps) + + + + + EPS files (*.eps) + + + + + Collisions found. + + + + + Creating file '%1' failed! %2 + + + + + Critical error! + + + + + VAbstractNode + + + Can't find tag Modeling + + + + + VAbstractTool + + + Confirm the deletion. + + + + + Do you really want delete? + + + + + VApplication + + + Error parsing file. Program will be terminated. + + + + + Error bad id. Program will be terminated. + + + + + Error can't convert value. Program will be terminated. + + + + + Error empty parameter. Program will be terminated. + + + + + Error wrong id. Program will be terminated. + + + + + Something's wrong!! + + + + + VContainer + + + + + Can't find object + + + + + Can't cast object + + + + + VDomDocument + + + Can't convert toUInt parameter + + + + + Got empty parameter + + + + + Can't convert toDouble parameter + + + + + + Can't open file %1: +%2. + + + + + Can't open schema file %1: +%2. + + + + + Validation error in line %1 column %2 + + + + + Parcing error in line %1 column %2 + + + + + VDrawTool + + + Can not find the element after which you want to insert. + + + + + Can't find tag Calculation + + + + + Options + + + + + Delete + + + + + VException + + + Critical error! + + + + + VPattern + + + Can't find tool id = %1 in table. + + + + + Error no unique id. + + + + + Error! + + + + + Error parsing file. + + + + + Error creating or updating detail + + + + + Error creating or updating single point + + + + + + Error creating or updating point of end line + + + + + + Error creating or updating point along line + + + + + + Error creating or updating point of shoulder + + + + + + Error creating or updating point of normal + + + + + + Error creating or updating point of bisector + + + + + Error creating or updating point of lineintersection + + + + + + Error creating or updating point of contact + + + + + Error creating or updating modeling point + + + + + Error creating or updating height + + + + + Error creating or updating triangle + + + + + Error creating or updating point of intersection + + + + + + Error creating or updating cut spline point + + + + + + Error creating or updating cut spline path point + + + + + + Error creating or updating cut arc point + + + + + Error creating or updating line + + + + + Error creating or updating simple curve + + + + + Error creating or updating curve path + + + + + Error creating or updating modeling simple curve + + + + + Error creating or updating modeling curve path + + + + + + Error creating or updating simple arc + + + + + Error creating or updating modeling arc + + + + + Error creating or updating union details + + + + + Got wrong parameter id. Need only id > 0. + + + + + This id is not unique. + + + + + VSplinePath + + + Not enough points to create the spline. + + + + + + + This spline does not exist. + + + + + Can't cut spline path with one point + + + + + VTableGraphicsView + + + can't find detail + + + + + detail found + + + + + VToolDetail + + + Options + + + + + Delete + + + + + VToolUnionDetails + + + Can't find tag Modeling + + + + + Variables + + + Line_ + Left symbol _ in name + + + + + AngleLine_ + Left symbol _ in name + + + + + Arc_ + Left symbol _ in name + + + + + Spl_ + Left symbol _ in name + + + + + SplPath + + + + diff --git a/src/app/share/translations/valentina_nl.ts b/src/app/share/translations/valentina_nl.ts new file mode 100644 index 000000000..d2a3e44f7 --- /dev/null +++ b/src/app/share/translations/valentina_nl.ts @@ -0,0 +1,5972 @@ + + + + + ConfigDialog + + + Apply + + + + + &Cancel + + + + + &Ok + + + + + Config Dialog + + + + + Configuration + + + + + Pattern + + + + + ConfigurationPage + + + Setup user interface language updated and will be used the next time start + + + + + Save + + + + + Auto-save modified pattern + + + + + Interval: + + + + + min + + + + + Language + + + + + GUI language + + + + + Decimal separator parts + + + + + With OS options (.) + + + + + DialogAboutApp + + + About Valentina + + + + + Valentina version + + + + + Contributors + + + + + Based on Qt %2 (32 bit) + + + + + Built on %3 at %4 + + + + + Web site : %1 + + + + + Warning + + + + + Cannot open your default browser + + + + + DialogAlongLine + + + Point along line + + + + + Length + + + + + Formula for the calculation of length of line + + + + + Insert variable into the formula + + + + + + ... + + + + + Calculate value + + + + + Value of length + + + + + _ + + + + + Point label + + + + + First point + + + + + First point of line + + + + + Second point + + + + + Second point of line + + + + + Type of line + + + + + Show line from first point to this point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + Select second point of line + + + + + DialogArc + + + Arc + + + + + Radius + + + + + Formula for the calculation of radius of arc + + + + + Insert variable into the formula + + + + + + + + + + ... + + + + + + + Calculate value + + + + + Value of radius + + + + + + + _ + + + + + First angle degree + + + + + First angle of arc counterclockwise + + + + + Insert variable into formula + + + + + Value of first angle + + + + + Second angle degree + + + + + Second angle of arc counterclockwise + + + + + Insert marked variable into formula + + + + + Value of second angle + + + + + Center point + + + + + Select point of center of arc + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Angle of lines + + + + + Variables + + + + + Value of angle of line. + + + + + DialogBisector + + + Bisector + + + + + Length + + + + + Calculation of length of bisector by using the formula + + + + + Insert marked variable into the formula + + + + + + ... + + + + + Calculate value + + + + + Value of length + + + + + _ + + + + + Point label + + + + + First point + + + + + First point of angle + + + + + Second point + + + + + Second point of angle + + + + + Third point + + + + + Third point of angle + + + + + Type of line + + + + + Show line from second point to this point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + Select second point of angle + + + + + Select third point of angle + + + + + DialogCutArc + + + Dialog + + + + + Length + + + + + Formula for the calculation of the spline + + + + + + ... + + + + + Calculate value + + + + + Value of length + + + + + _ + + + + + Arc + + + + + Selected curve + + + + + Point label + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + DialogCutSpline + + + Dialog + + + + + Length + + + + + Formula for the calculation of the spline + + + + + + ... + + + + + Calculate value + + + + + Value of length + + + + + _ + + + + + Curve + + + + + Selected curve + + + + + Point label + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + DialogCutSplinePath + + + Dialog + + + + + Length + + + + + Formula for the calculation of the curve length + + + + + + ... + + + + + Calculate value + + + + + Value of length + + + + + _ + + + + + Curve + + + + + Selected curve path + + + + + Point label + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + DialogDetail + + + + Detail + + + + + Bias X + + + + + Bias Y + + + + + Options + + + + + Name of detail + + + + + Seam allowance + + + + + Width + + + + + Closed + + + + + Delete + + + + + Got wrong scene object. Ignore. + + + + + DialogEndLine + + + Point in the end of a line + + + + + Length + + + + + Formula for calculation of length of line + + + + + + + + + + + + + + ... + + + + + Calculate value + + + + + Value of length + + + + + _ + + + + + Base point + + + + + First point of line + + + + + Point label + + + + + Degree of angle + + + + + Angle of line + + + + + Type of line + + + + + Show line from first point to this point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + DialogHeight + + + Dialog + + + + + Point label + + + + + Base point + + + + + + + + First point of line + + + + + Second point of line + + + + + Type of line + + + + + Show line from first point to our point + + + + + Select first point of line + + + + + Select second point of line + + + + + DialogHistory + + + History + + + + + + Tool + + + + + + + + Can't create record. + + + + + %1 - Base point + + + + + + %1_%2 - Line from point %1 to point %2 + + + + + %3 - Point along line %1_%2 + + + + + %1 - Point of shoulder + + + + + %3 - normal to line %1_%2 + + + + + %4 - bisector of angle %1_%2_%3 + + + + + %5 - intersection of lines %1_%2 and %3_%4 + + + + + Curve %1_%2 + + + + + Arc with center in point %1 + + + + + Curve point %1 + + + + + %4 - point of contact of arc with the center in point %1 and line %2_%3 + + + + + Point of perpendicular from point %1 to line %2_%3 + + + + + Triangle: axis %1_%2, points %3 and %4 + + + + + %1 - point of intersection %2 and %3 + + + + + %1 - cut arc with center %2 + + + + + %1 - cut curve %2_%3 + + + + + %1 - cut curve path %2 + + + + + DialogIncrements + + + + Increments + + + + + Email + + + + + + Name + + + + + + The calculated value + + + + + + Base value + + + + + + In sizes + + + + + + + Description + + + + + + + ... + + + + + + Measurements + + + + + Load another measurements table + + + + + Personal information + + + + + Given name + + + + + Family name + + + + + Birth date + + + + + Sex + + + + + + In heights + + + + + Lines + + + + + Line + + + + + + + Length + + + + + Curves + + + + + Curve + + + + + Arcs + + + + + Arc + + + + + + + File error. + + + + + male + + + + + female + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + Individual measurements (*.vit) + + + + + + Open file + + + + + + Wrong units. + + + + + Standard measurements (*.vst) + + + + + Name_%1 + + + + + DialogIndividualMeasurements + + + Individual measurements + + + + + Pattern piece name + + + + + Exist measurements + + + + + + Path: + + + + + + ... + + + + + New measurements + + + + + Units: + + + + + Could not create measurements file + + + + + Please try again or change file + + + + + + File error. + + + + + + Individual measurements (*.vit) + + + + + Open file + + + + + Where save measurements? + + + + + centimeter + + + + + inch + + + + + DialogLine + + + Line + + + + + First point + + + + + Second point + + + + + Type of line + + + + + Show line from first point to this point + + + + + Select second point + + + + + DialogLineIntersect + + + Intersection of lines + + + + + Point label + + + + + First line + + + + + + First point + + + + + + Second point + + + + + Second line + + + + + Select second point of first line + + + + + Select first point of second line + + + + + Select second point of second line + + + + + DialogMeasurements + + + Measurements + + + + + <html><head/><body><p><span style=" font-size:18pt;">Please, choose pattern type.</span></p></body></html> + + + + + Graduation + + + + + Use for creation pattern standard measurement table + + + + + Individual + + + + + Use for creation pattern individual measurements + + + + + DialogNormal + + + Normal + + + + + Length + + + + + Formula for calculation of length of normal + + + + + Insert variable into formula + + + + + + + + + + + + + + ... + + + + + Calculate value + + + + + Value of length + + + + + _ + + + + + Point label + + + + + First point + + + + + Second point + + + + + Additional angle degrees + + + + + Type of line + + + + + Show line from first point to this point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + Select second point of line + + + + + DialogPatternProperties + + + Pattern properties + + + + + Author name + + + + + Pattern description + + + + + For technical notes. + + + + + DialogPointOfContact + + + Point of contact + + + + + Radius + + + + + Formula for calculation of radius of arc + + + + + Insert variable into formula + + + + + + ... + + + + + Calculate value + + + + + Value of radius + + + + + _ + + + + + Point label + + + + + Center of arc + + + + + + Select point of center of arc + + + + + Top of the line + + + + + End of the line + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + Length of lines + + + + + Length of arcs + + + + + Length of curves + + + + + Variables - Click twice to insert into formula. + + + + + Select second point of line + + + + + DialogPointOfIntersection + + + Dialog + + + + + Point label + + + + + vertical point + + + + + First point of angle + + + + + horizontal point + + + + + Second point of angle + + + + + Select point horizontally + + + + + DialogShoulderPoint + + + + Point of shoulder + + + + + Length + + + + + Formula for calculation of length of line + + + + + Insert variable into formula + + + + + + ... + + + + + Calculate value + + + + + Value of length + + + + + _ + + + + + Point label + + + + + First point + + + + + Second point + + + + + Type of line + + + + + Show line from first point to our point + + + + + Input data + + + + + Size and height + + + + + Standard table + + + + + Increments + + + + + + Length of lines + + + + + Length of curves + + + + + Variables - Click twice to insert into formula + + + + + Select second point of line + + + + + Select point of shoulder + + + + + DialogSinglePoint + + + Single point + + + + + Coordinates on the sheet + + + + + Coordinates + + + + + Y coordinate + + + + + X coordinate + + + + + Point label + + + + + DialogSpline + + + Curve + + + + + First point + + + + + Length ratio of the first control point + + + + + The angle of the first control point + + + + + Second point + + + + + Length ratio of the second control point + + + + + The angle of the second control point + + + + + Coefficient of curvature of the curve + + + + + Select last point of curve + + + + + DialogSplinePath + + + Curve path + + + + + Point of curve + + + + + Length ratio of the first control point + + + + + The angle of the first control point + + + + + Length ratio of the second control point + + + + + The angle of the second control point + + + + + List of points + + + + + Coefficient of curvature of the curve + + + + + Select point of curve path + + + + + DialogStandardMeasurements + + + Standard table + + + + + Pattern piece name + + + + + Standard measurements table + + + + + File error. + + + + + DialogTool + + + Line + + + + + No line + + + + + Dash Line + + + + + Dot Line + + + + + Dash Dot Line + + + + + Dash Dot Dot Line + + + + + Error + + + + + Height + + + + + Size + + + + + Line length + + + + + Arc length + + + + + Curve length + + + + + DialogTriangle + + + Dialog + + + + + Point label + + + + + First point of axis + + + + + + + + First point of line + + + + + Second point of axis + + + + + First point + + + + + Second point + + + + + Select second point of axis + + + + + Select first point + + + + + Select second point + + + + + DialogUnionDetails + + + Dialog + + + + + Do you really want union details? This operation can't be undone. + + + + + Select first point + + + + + Select second point + + + + + + Select another second point + + + + + Select detail + + + + + Functions + + + sin + sine function + + + + + cos + cosine function + + + + + tan + tangens function + + + + + asin + arcus sine function + + + + + acos + arcus cosine function + + + + + atan + arcus tangens function + + + + + sinh + hyperbolic sine function + + + + + cosh + hyperbolic cosine + + + + + tanh + hyperbolic tangens function + + + + + asinh + hyperbolic arcus sine function + + + + + acosh + hyperbolic arcus tangens function + + + + + atanh + hyperbolic arcur tangens function + + + + + log2 + logarithm to the base 2 + + + + + log10 + logarithm to the base 10 + + + + + log + logarithm to the base 10 + + + + + ln + logarithm to base e (2.71828...) + + + + + exp + e raised to the power of x + + + + + sqrt + square root of a value + + + + + sign + sign function -1 if x<0; 1 if x>0 + + + + + rint + round to nearest integer + + + + + abs + absolute value + + + + + min + min of all arguments + + + + + max + max of all arguments + + + + + sum + sum of all arguments + + + + + avg + mean value of all arguments + + + + + MainWindow + + + Valentina + + + + + Tools for creating points. + + + + + Point + + + + + + + + + + + + + + + + + + + + + + + ... + + + + + Tool triangle. + + + + + Tools for creating lines. + + + + + Line + + + + + Tools for creating curves. + + + + + Curve + + + + + Curve tool. + + + + + Tool for path curve. + + + + + Tool segment a pathed curve. + + + + + Tool for segmenting a curve. + + + + + Tools for creating arcs. + + + + + Arc + + + + + Arc tool. + + + + + Tools for creating details. + + + + + Detail + + + + + Tool new detail. + + + + + toolBar + + + + + toolBar_2 + + + + + toolBar_3 + + + + + New + + + + + Create a new pattern + + + + + Ctrl+N + + + + + Open + + + + + Open file with pattern + + + + + Save + + + + + Save pattern + + + + + Ctrl+S + + + + + Save as + + + + + Point at distance and angle + + + + + Special point on shoulder. + + + + + Point at intersection of arc and line. + + + + + Point along bisector + + + + + Point along perpendicular + + + + + Point at distance along line + + + + + Perpendicular point along line + + + + + Line between points + + + + + Point at line intersection + + + + + &File + + + + + &Help + + + + + &Pattern piece + + + + + &New + + + + + &Open + + + + + &Save + + + + + Save &As... + + + + + Save not yet saved pattern + + + + + Ctrl+Shift+S + + + + + Draw + + + + + Draw mode + + + + + Ctrl+W + + + + + Details + + + + + Details mode + + + + + Ctrl+E + + + + + + Pointer tools + + + + + New pattern piece + + + + + Add new pattern piece + + + + + Ctrl+Shift+N + + + + + + Change the label of pattern piece + + + + + Table of variables + + + + + Tables of variables + + + + + Ctrl+T + + + + + History + + + + + Ctrl+H + + + + + Layout + + + + + Create layout + + + + + Ctrl+L + + + + + About &Qt + + + + + &About Valentina + + + + + E&xit + + + + + Exit the application + + + + + Options... + + + + + Pattern properties + + + + + About Qt + + + + + Ctrl+Q + + + + + Pattern piece %1 + + + + + + /pattern.val + + + + + File saved + + + + + untitled.val + + + + + Unsaved change + + + + + The pattern has been modified. +Do you want to save your changes? + + + + + Pattern piece: + + + + + Enter a new label for the pattern piece. + + + + + Error saving change!!! + + + + + Can't save new label of pattern piece + + + + + + Select point + + + + + Select first point + + + + + + + Select first point of line + + + + + Select first point of angle + + + + + Select first point of first line + + + + + Select first point curve + + + + + Select simple curve + + + + + Select point of center of arc + + + + + Select point of curve path + + + + + Select curve path + + + + + Select points, arcs, curves clockwise. + + + + + Select base point + + + + + Select first point of axis + + + + + Select point vertically + + + + + Select detail + + + + + Select arc + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + + Wrong units. + + + + + File error. + + + + + File loaded + + + + + The measurements file <br/><br/> <b>%1</b> <br/><br/> %3 + + + + + could not be found. Do you want to update the file location + + + + + Standard measurements (*.vst) + + + + + Individual measurements (*.vit) + + + + + Height: + + + + + Size: + + + + + Pattern Piece: + + + + + + Pattern files (*.val) + + + + + + Open file + + + + + + Error parsing file. + + + + + Error can't convert value. + + + + + Error empty parameter. + + + + + Error wrong id. + + + + + Measurements + + + head_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Head girth + Full measurement name + + + + + Around fullest part of Head + Full measurement description + + + + + mid_neck_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Mid-neck girth + Full measurement name + + + + + Around middle part of Neck + Full measurement description + + + + + neck_base_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck Base girth + Full measurement name + + + + + Around Neck at base + Full measurement description + + + + + head_and_neck_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Head and Neck length + Full measurement name + + + + + Vertical Distance from Crown to Nape + Full measurement description + + + + + center_front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Center length + Full measurement name + + + + + Front Neck Center over tape at Bustline to Front Waist Center + Full measurement description + + + + + center_back_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Center length + Full measurement name + + + + + Back Neck Center to Back Waist Center + Full measurement description + + + + + shoulder_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder length + Full measurement name + + + + + NeckPoint to ShoulderTip + Full measurement description + + + + + side_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Side Waist length + Full measurement name + + + + + Armpit to Waist side + Full measurement description + + + + + trunk_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Trunk length + Full measurement name + + + + + Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning point + Full measurement description + + + + + shoulder_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder girth + Full measurement name + + + + + Around Arms and Torso, at bicep level parallel to floor, with arms hanging at the sides + Full measurement description + + + + + upper_chest_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upper Chest girth + Full measurement name + + + + + Around Chest at Armfold level, will be parallel to floor across back, will not be parallel to floor across front chest + Full measurement description + + + + + bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust girth + Full measurement name + + + + + Around fullest part of Bust, parallel to floor + Full measurement description + + + + + under_bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Under Bust girth + Full measurement name + + + + + Around Chest below the Bust, parallel to floor + Full measurement description + + + + + waist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist girth + Full measurement name + + + + + Tie a string around smallest part of waist, keep string tied while taking meaasurements. Not usually parallel to floor for front waist or back waist. + Full measurement description + + + + + high_hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip girth + Full measurement name + + + + + Around HighHip, parallel to floor + Full measurement description + + + + + hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip girth + Full measurement name + + + + + Around Hip, parallel to floor + Full measurement description + + + + + upper_front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Upper Chest width + Full measurement name + + + + + Across Front UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Chest width + Full measurement name + + + + + Across Front Chest, from armfold to armfold + Full measurement description + + + + + across_front_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Front + Full measurement description + + + + + across_back_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Back + Full measurement description + + + + + Back Upper Chest width + Full measurement name + + + + + Across Back UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + upper_back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Chest width + Full measurement name + + + + + Across Back Chest, from armfold to armfold + Full measurement description + + + + + bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + BustPoint to BustPoint + Full measurement name + + + + + Distance between BustPoints, across Chest + Full measurement description + + + + + halter_bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + Halter Bustpoint to Bustpoint + Full measurement name + + + + + Distance from Bustpoint, behind neck, down to Bustpoint + Full measurement description + + + + + neck_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + NeckPoint to BustPoint + Full measurement name + + + + + From NeckPoint to BustPoint + Full measurement description + + + + + crotch_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch length + Full measurement name + + + + + From Front Waist Center, down to crotch, up to Back Waist Center + Full measurement description + + + + + rise_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Rise height + Full measurement name + + + + + Sit on hard chair, measure from side waist straight down to chair bottom + Full measurement description + + + + + shoulder_drop + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Drop + Full measurement name + + + + + Vertical Distance from NeckPoint level to ShoulderTip level + Full measurement description + + + + + shoulder_slope_degrees + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Slope degrees + Full measurement name + + + + + Degrees of angle from NeckPoint to ShoulderTip – requires goniometer + Full measurement description + + + + + front_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Shoulder Balance + Full measurement name + + + + + ShoulderTip to Front Waist Center + Full measurement description + + + + + back_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Shoulder Balance + Full measurement name + + + + + ShoulderTip to Back Waist Center + Full measurement description + + + + + front_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Full Length + Full measurement name + + + + + NeckPoint straight down front chest to Waistline + Full measurement description + + + + + back_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Full Length + Full measurement name + + + + + Back NeckPoint straight down back chest to Waistline + Full measurement description + + + + + front_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint through Front Neck Center + Full measurement description + + + + + back_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint across Nape + Full measurement description + + + + + front_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + front_upper-bust_arc + Full measurement name + + + + + front_upper-bust_arc + Full measurement description + + + + + back_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperBust arc + Full measurement name + + + + + Back UpperBust side to side + Full measurement description + + + + + front_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist arc + Full measurement name + + + + + Front Waist side to side + Full measurement description + + + + + back_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist arc + Full measurement name + + + + + Back Waist side to side + Full measurement description + + + + + front_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperHip arc + Full measurement name + + + + + Front UpperHip side to side + Full measurement description + + + + + back_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperHip arc + Full measurement name + + + + + Back UpperHip side to side + Full measurement description + + + + + front_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Hip arc + Full measurement name + + + + + Front Hip side to side + Full measurement description + + + + + back_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Hip arc + Full measurement name + + + + + Back Hip side to side + Full measurement description + + + + + chest_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest Balance + Full measurement name + + + + + NeckPoint to Front ArmfoldPoint + Full measurement description + + + + + back_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Balance + Full measurement name + + + + + NeckPoint to Back ArmfoldPoint + Full measurement description + + + + + front_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist Balance + Full measurement name + + + + + NeckPoint across Front Chest to Waist side + Full measurement description + + + + + back_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist Balance + Full measurement name + + + + + NeckPoint across Back Chest to Waist side + Full measurement description + + + + + front_neck_to_upper_chest_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperChest height + Full measurement name + + + + + Front Neck Center straight down to UpperChest line + Full measurement description + + + + + front_neck_to_bust_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust height + Full measurement name + + + + + Front Neck Center straight down to Bust line + Full measurement description + + + + + armscye_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye Girth + Full measurement name + + + + + Around Armscye + Full measurement description + + + + + elbow_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow Girth + Full measurement name + + + + + Around Elbow with elbow bent + Full measurement description + + + + + upper_arm_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upperarm Girth + Full measurement name + + + + + Around UpperArm + Full measurement description + + + + + wrist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Wrist girth + Full measurement name + + + + + Around Wrist + Full measurement description + + + + + scye_depth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye depth + Full measurement name + + + + + Nape straight down to UnderBust line (same as Back UpperBust height) + Full measurement description + + + + + shoulder_and_arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder and Arm length + Full measurement name + + + + + NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + underarm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Underarm length + Full measurement name + + + + + Armpit to Wrist, with arm straight and hanging at side + Full measurement description + + + + + cervicale_to_wrist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to wrist length + Full measurement name + + + + + Nape to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + shoulder_to_elbow_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow length + Full measurement name + + + + + ShoulderTip to Elbow, with elbow bent and hand on hip + Full measurement description + + + + + arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Arm length + Full measurement name + + + + + ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + hand_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand width + Full measurement name + + + + + Hand side to side + Full measurement description + + + + + hand_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand length + Full measurement name + + + + + Hand Middle Finger tip to wrist + Full measurement description + + + + + hand_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand girth + Full measurement name + + + + + Around Hand + Full measurement description + + + + + thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Thigh girth + Full measurement name + + + + + Around Thigh + Full measurement description + + + + + mid_thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Midthigh girth + Full measurement name + + + + + Around MidThigh + Full measurement description + + + + + knee_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee girth + Full measurement name + + + + + Around Knee + Full measurement description + + + + + calf_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Calf girth + Full measurement name + + + + + Around Calf + Full measurement description + + + + + ankle_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle girth + Full measurement name + + + + + Around Ankle + Full measurement description + + + + + knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee height + Full measurement name + + + + + Knee to Floor + Full measurement description + + + + + ankle_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle height + Full measurement name + + + + + Ankle to Floor + Full measurement description + + + + + foot_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot width + Full measurement name + + + + + Widest part of Foot side to side + Full measurement description + + + + + foot_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot length + Full measurement name + + + + + Tip of Longest Toe straight to back of heel + Full measurement description + + + + + height + Short measurement name. Don't use math symbols in name!!!! + + + + + Total Height + Full measurement name + + + + + Top of head to floor + Full measurement description + + + + + cervicale_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape height + Full measurement name + + + + + Nape to Floor + Full measurement description + + + + + cervicale_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to knee height + Full measurement name + + + + + Nape to Knee + Full measurement description + + + + + waist_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist height + Full measurement name + + + + + Waist side to floor + Full measurement description + + + + + high_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip height + Full measurement name + + + + + HighHip side to Floor + Full measurement description + + + + + hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip height + Full measurement name + + + + + Hip side to Floor + Full measurement description + + + + + waist_to_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Hip height + Full measurement name + + + + + Waist side to Hip + Full measurement description + + + + + waist_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Knee height + Full measurement name + + + + + Waist side to Knee + Full measurement description + + + + + crotch_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch height/Inseam + Full measurement name + + + + + Crotch to Floor along inside leg + Full measurement description + + + + + size + Short measurement name. Don't use math symbols in name!!!! + + + + + Size + Full measurement name + + + + + Size + Full measurement description + + + + + height_front_neck_base_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height front neck base point + Full measurement name + + + + + Height of the point base of the neck in front + Full measurement description + + + + + height_base_neck_side_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height base neck side point + Full measurement name + + + + + Height of the base of the neck side point + Full measurement description + + + + + height_shoulder_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height shoulder point + Full measurement name + + + + + The height of the shoulder point + Full measurement description + + + + + height_nipple_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height nipple point + Full measurement name + + + + + Height nipple point + Full measurement description + + + + + height_back_angle_axilla + Short measurement name. Don't use math symbols in name!!!! + + + + + Height back angle axilla + Full measurement name + + + + + Height back angle axilla + Full measurement description + + + + + height_scapular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height scapular point + Full measurement name + + + + + Height scapular point + Full measurement description + + + + + height_under_buttock_folds + Short measurement name. Don't use math symbols in name!!!! + + + + + Height under buttock folds + Full measurement name + + + + + Height under buttock folds + Full measurement description + + + + + hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Hips excluding protruding abdomen + Full measurement name + + + + + Hips excluding protruding abdomen + Full measurement description + + + + + girth_foot_instep + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth foot instep + Full measurement name + + + + + Girth foot instep + Full measurement description + + + + + side_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Side waist to floor + Full measurement name + + + + + The distance from the side waist to floor + Full measurement description + + + + + front_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist to floor + Full measurement name + + + + + The distance from the front waist to floor + Full measurement description + + + + + arc_through_groin_area + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through groin area + Full measurement name + + + + + Arc through groin area + Full measurement description + + + + + waist_to_plane_seat + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to plane seat + Full measurement name + + + + + The distance from the waist to the plane seat + Full measurement description + + + + + neck_to_radial_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to radial point + Full measurement name + + + + + The distance from the base of the neck to the side of the radial point + Full measurement description + + + + + neck_to_third_finger + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to third finger + Full measurement name + + + + + Distance from the base of the neck side point to the end of the third finger + Full measurement description + + + + + neck_to_first_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to first line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the side of the first line in front of chest circumference + Full measurement description + + + + + front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist length + Full measurement name + + + + + The distance from the base of the neck to the waist side front (waist length in the front) + Full measurement description + + + + + arc_through_shoulder_joint + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through shoulder joint + Full measurement name + + + + + Arc through the highest point of the shoulder joint + Full measurement description + + + + + neck_to_back_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to back line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the back line of chest circumference of the first and the second based on ledge vanes + Full measurement description + + + + + waist_to_neck_side + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to neck side + Full measurement name + + + + + The distance from the waist to the back base of the neck side point + Full measurement description + + + + + arc_length_upper_body + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc length upper body + Full measurement name + + + + + Arc length of the upper body through the base of the neck side point + Full measurement description + + + + + chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest width + Full measurement name + + + + + Chest width + Full measurement description + + + + + anteroposterior_diameter_hands + Short measurement name. Don't use math symbols in name!!!! + + + + + Anteroposterior diameter hands + Full measurement name + + + + + Anteroposterior diameter of the hands + Full measurement description + + + + + height_clavicular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height clavicular point + Full measurement name + + + + + Height clavicular point + Full measurement description + + + + + height_armhole_slash + Short measurement name. Don't use math symbols in name!!!! + + + + + Height armhole slash + Full measurement name + + + + + The distance from the point to the cervical level of the posterior angle of the front armpit (underarm height oblique) + Full measurement description + + + + + slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Slash shoulder height + Full measurement name + + + + + Slash shoulder height + Full measurement description + + + + + half_girth_neck + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck + Full measurement name + + + + + Half girth neck + Full measurement description + + + + + half_girth_neck_for_shirts + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck for shirts + Full measurement name + + + + + Half girth neck for shirts + Full measurement description + + + + + half_girth_chest_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest first + Full measurement name + + + + + Half girth chest first + Full measurement description + + + + + half_girth_chest_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest second + Full measurement name + + + + + Half girth chest second + Full measurement description + + + + + half_girth_chest_third + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest third + Full measurement name + + + + + Half girth chest third + Full measurement description + + + + + half_girth_waist + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth waist + Full measurement name + + + + + Half girth waist + Full measurement description + + + + + half_girth_hips_considering_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips considering protruding abdomen + Full measurement name + + + + + Half girth hips considering protruding abdomen + Full measurement description + + + + + half_girth_hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips excluding protruding abdomen + Full measurement name + + + + + Half girth hips excluding protruding abdomen + Full measurement description + + + + + girth_knee_flexed_feet + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth knee flexed feet + Full measurement name + + + + + Girth knee flexed feet + Full measurement description + + + + + neck_transverse_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck transverse diameter + Full measurement name + + + + + Neck transverse diameter + Full measurement description + + + + + front_slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front slash shoulder height + Full measurement name + + + + + Front slash shoulder height + Full measurement description + + + + + neck_to_front_waist_line + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to front waist line + Full measurement name + + + + + The distance from the base of the neck to the waist line front + Full measurement description + + + + + hand_vertical_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand vertical diameter + Full measurement name + + + + + Hand vertical diameter + Full measurement description + + + + + neck_to_knee_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to knee point + Full measurement name + + + + + Distance from neck to knee point + Full measurement description + + + + + waist_to_knee + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to knee + Full measurement name + + + + + The distance from the waist to the knee + Full measurement description + + + + + shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder height + Full measurement name + + + + + Shoulder height + Full measurement description + + + + + head_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Head height + Full measurement name + + + + + Head height + Full measurement description + + + + + body_position + Short measurement name. Don't use math symbols in name!!!! + + + + + Body position + Full measurement name + + + + + Body position + Full measurement description + + + + + arc_behind_shoulder_girdle + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc behind shoulder girdle + Full measurement name + + + + + Arc behind the shoulder girdle + Full measurement description + + + + + neck_to_neck_base + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to neck base + Full measurement name + + + + + Distance from neck point to point on the base of the neck side neck girth measurement line + Full measurement description + + + + + depth_waist_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist first + Full measurement name + + + + + Depth waist first + Full measurement description + + + + + depth_waist_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist second + Full measurement name + + + + + Depth waist second + Full measurement description + + + + + PatternPage + + + User + + + + + User name + + + + + Graphical output + + + + + Use antialiasing + + + + + Undone + + + + + Count steps + + + + + PostfixOperators + + + cm + centimeter + + + + + mm + millimeter + + + + + in + inch + + + + + QObject + + + Create new pattern piece to start working. + + + + + TableWindow + + + Create a layout + + + + + toolBar + + + + + Save + + + + + + Save layout + + + + + Next + + + + + Next detail + + + + + Turn + + + + + Turn the detail 90 degrees + + + + + Stop + + + + + Stop laying + + + + + Enlarge letter + + + + + Enlarge the length of the sheet + + + + + Reduce sheet + + + + + Reduce the length of the sheet + + + + + + Mirroring + + + + + + Zoom In + + + + + + Zoom Out + + + + + 0 details left. + + + + + + Collisions not found. + + + + + %1 details left. + + + + + untitled + + + + + Svg files (*.svg) + + + + + PDF files (*.pdf) + + + + + Images (*.png) + + + + + PS files (*.ps) + + + + + EPS files (*.eps) + + + + + Collisions found. + + + + + Creating file '%1' failed! %2 + + + + + Critical error! + + + + + VAbstractNode + + + Can't find tag Modeling + + + + + VAbstractTool + + + Confirm the deletion. + + + + + Do you really want delete? + + + + + VApplication + + + Error parsing file. Program will be terminated. + + + + + Error bad id. Program will be terminated. + + + + + Error can't convert value. Program will be terminated. + + + + + Error empty parameter. Program will be terminated. + + + + + Error wrong id. Program will be terminated. + + + + + Something's wrong!! + + + + + VContainer + + + + + Can't find object + + + + + Can't cast object + + + + + VDomDocument + + + Can't convert toUInt parameter + + + + + Got empty parameter + + + + + Can't convert toDouble parameter + + + + + + Can't open file %1: +%2. + + + + + Can't open schema file %1: +%2. + + + + + Validation error in line %1 column %2 + + + + + Parcing error in line %1 column %2 + + + + + VDrawTool + + + Can not find the element after which you want to insert. + + + + + Can't find tag Calculation + + + + + Options + + + + + Delete + + + + + VException + + + Critical error! + + + + + VPattern + + + Can't find tool id = %1 in table. + + + + + Error no unique id. + + + + + Error! + + + + + Error parsing file. + + + + + Error creating or updating detail + + + + + Error creating or updating single point + + + + + + Error creating or updating point of end line + + + + + + Error creating or updating point along line + + + + + + Error creating or updating point of shoulder + + + + + + Error creating or updating point of normal + + + + + + Error creating or updating point of bisector + + + + + Error creating or updating point of lineintersection + + + + + + Error creating or updating point of contact + + + + + Error creating or updating modeling point + + + + + Error creating or updating height + + + + + Error creating or updating triangle + + + + + Error creating or updating point of intersection + + + + + + Error creating or updating cut spline point + + + + + + Error creating or updating cut spline path point + + + + + + Error creating or updating cut arc point + + + + + Error creating or updating line + + + + + Error creating or updating simple curve + + + + + Error creating or updating curve path + + + + + Error creating or updating modeling simple curve + + + + + Error creating or updating modeling curve path + + + + + + Error creating or updating simple arc + + + + + Error creating or updating modeling arc + + + + + Error creating or updating union details + + + + + Got wrong parameter id. Need only id > 0. + + + + + This id is not unique. + + + + + VSplinePath + + + Not enough points to create the spline. + + + + + + + This spline does not exist. + + + + + Can't cut spline path with one point + + + + + VTableGraphicsView + + + can't find detail + + + + + detail found + + + + + VToolDetail + + + Options + + + + + Delete + + + + + VToolUnionDetails + + + Can't find tag Modeling + + + + + Variables + + + Line_ + Left symbol _ in name + + + + + AngleLine_ + Left symbol _ in name + + + + + Arc_ + Left symbol _ in name + + + + + Spl_ + Left symbol _ in name + + + + + SplPath + + + + diff --git a/src/app/share/translations/valentina_ru.ts b/src/app/share/translations/valentina_ru.ts index 809d068e9..d17a8d472 100644 --- a/src/app/share/translations/valentina_ru.ts +++ b/src/app/share/translations/valentina_ru.ts @@ -1,35 +1,35 @@ - + ConfigDialog - + Apply Применить - + &Cancel &Отмена - + &Ok &Ок - + Config Dialog Диалог параметров - + Configuration Настройки - + Pattern Лекала @@ -37,146 +37,189 @@ ConfigurationPage - + Setup user interface language updated and will be used the next time start Настройки языка интерфейса пользователя оновлены и будут задействованы при следующем запуске - + Save Сохранить - + Auto-save modified pattern Автосохранение измененного лекала - + Interval: Интервал: - + min мин - + Language Язык - + GUI language Язык интерфейса - + Decimal separator parts Разделитель дробовой части - + With OS options (.) С параметров ОС (.) + + DialogAboutApp + + + About Valentina + Про Valentina + + + + Valentina version + Версия Valentina + + + + Contributors + Авторы + + + + Based on Qt %2 (32 bit) + Базируется на Qt %2 (32 bit) + + + + Built on %3 at %4 + Создано %3 в %4 + + + + Web site : %1 + Веб сайт : %1 + + + + Warning + Предупреждение + + + + Cannot open your default browser + Не могу открыть браузер по умолчанию + + DialogAlongLine - + Point along line Точка вдоль линии - + Length Длина - - + + ... - + Value of length Значение длины - + _ - + Formula for the calculation of length of line Формула расчета длины линии - + Calculate value Расчитать значение - + Point label Имя точки - + Insert variable into the formula Вставить переменную в формулу - + First point Первая точка - + First point of line Первая точка линии - + Second point Вторая точка - + Second point of line Вторая точка линии - + Type of line Тип линии - + Show line from first point to this point Показать линию с первой точки до этой - + Size and height Размер и рост - + Standard table Стандартная таблица - + Variables - Click twice to insert into formula Переменные - кликнете дважды для вставки в формулу - + Input data Входные данные @@ -185,27 +228,27 @@ Размер и рост - + Increments Прибавки - + Length of lines Длина линий - + Length of arcs Длина дуг - + Length of curves Длина кривых - + Select second point of line Выберить вторую точку линии @@ -213,111 +256,111 @@ DialogArc - + Arc Дуга - + Radius Радиус - - - - - - + + + + + + ... - + Formula for the calculation of radius of arc Формула расчета радиуса дуги - + Insert variable into the formula Вставить переменную в формулу - - - + + + Calculate value Расчитать значение - + Value of radius Значение радиуса - - - + + + _ - + First angle degree Первый угол градусы - + First angle of arc counterclockwise Первый угол дуги против часовой стрелки - + Insert variable into formula Вставить переменную в формулу - + Value of first angle Значение первого угла - + Second angle degree Второй угол градусы - + Second angle of arc counterclockwise Второй угол дуги против часвой стрелки - + Insert marked variable into formula Вставить выбраную переменную в формулу - + Value of second angle Значение второго угла - + Center point Центральная точка - + Select point of center of arc Выберите точку центра дуги - + Input data Входные данные - + Size and height Размер и рост @@ -326,42 +369,42 @@ Размер и рост - + Standard table Стандартная таблица - + Increments Прибавки - + Length of lines Длина линий - + Length of arcs Длина дуг - + Length of curves Длина кривых - + Angle of lines Уголы линий - + Variables Переменные - + Value of angle of line. Значение угла линии. @@ -369,108 +412,108 @@ DialogBisector - + Bisector Бисектриса - + Length Длина - - + + ... - + Value of length Значение длины - + _ - + Calculation of length of bisector by using the formula Расчет длины бисектрисы используя формулу - + Insert marked variable into the formula Вставить выбраную переменную в формулу - + Calculate value Расчитать значение - + Point label Имя точки - + First point Первая точка - + First point of angle Первая точка угла - + Second point Вторая точка - + Second point of angle Вторая точка угла - + Third point Треться точка - + Third point of angle Третья точка угла - + Type of line Тип линии - + Show line from second point to this point Показать линию с первой точки до этой - + Size and height Размер и рост - + Standard table Стандартная таблица - + Variables - Click twice to insert into formula Переменные - кликнете дважды для вставки в формулу - + Input data Входные данные @@ -479,32 +522,32 @@ Размер и рост - + Increments Прибавки - + Length of lines Длина линий - + Length of arcs Длина дуг - + Length of curves Длина кривых - + Select second point of angle Выберить вторую точку угла - + Select third point of angle Выберить третью точку угла @@ -512,93 +555,93 @@ DialogCutArc - + Dialog Диалог - + Length Длина - + Formula for the calculation of the spline Формула расчета сплайна - - + + ... ... - + Calculate value Расчитать значение - + Value of length Значение длины - + _ _ - + Arc Дуга - + Selected curve Выбраная кривая - + Point label Имя точки - + Input data Входные данные - + Size and height Размер и рост - + Standard table Стандартная таблица - + Increments Прибавки - + Length of lines Длина линий - + Length of arcs Длина дуг - + Length of curves Длина кривых - + Variables - Click twice to insert into formula Переменные - кликнете дважды для вставки в формулу @@ -606,93 +649,93 @@ DialogCutSpline - + Dialog Диалог - + Length Длина - + Formula for the calculation of the spline Формула расчета сплайна - - + + ... ... - + Calculate value Расчитать значение - + Value of length Значение длины - + _ _ - + Curve Кривая - + Selected curve Выбраная кривая - + Point label Имя точки - + Input data Входные данные - + Size and height Размер и рост - + Standard table Стандартная таблица - + Increments Прибавки - + Length of lines Длина линий - + Length of arcs Длина дуг - + Length of curves Длина кривых - + Variables - Click twice to insert into formula Переменные - кликнете дважды для вставки в формулу @@ -700,93 +743,93 @@ DialogCutSplinePath - + Dialog Диалог - + Length Длина - + Formula for the calculation of the curve length Формула для расчета длины кривои - - + + ... ... - + Calculate value Расчитать значение - + Value of length Значение длины - + _ _ - + Curve Кривая - + Selected curve path Выбраная сложная кривая - + Point label Имя точки - + Input data Входные данные - + Size and height Размер и рост - + Standard table Стандартная таблица - + Increments Прибавки - + Length of lines Длина линий - + Length of arcs Длина дуг - + Length of curves Длина кривых - + Variables - Click twice to insert into formula Переменные - кликнете дважды для вставки в формулу @@ -794,160 +837,159 @@ DialogDetail - - + + Detail Деталь - + Bias X Смещение по Х - + Bias Y Смещение по Y - + Options Параметры - + Seam allowance Прибавка на швы - + Delete Удалить - + Name of detail Имя детали - + Width Ширина - + Closed Замкнутая - + Got wrong scene object. Ignore. Получен не правильный объект сцены. Ингорируем. - Got wrong tools. Ignore. - Получен не правильный инструмент. Игнорируем. + Получен не правильный инструмент. Игнорируем. DialogEndLine - + Length Длина - + Point in the end of a line Точка на конце отрезка - + Formula for calculation of length of line Формула расчета длины линии - + Calculate value Расчитать значение - - - - - - - - - - + + + + + + + + + + ... - + Value of length Значение длины - + _ - + Base point Базовая точка - + First point of line Первая точка линии - + Point label Имя точки - + Type of line Тип линии - + Show line from first point to this point Показать линию с первой точки до этой - + Size and height Размер и рост - + Standard table Стандартная таблица - + Variables - Click twice to insert into formula Переменные - кликнете дважды для вставки в формулу - + Angle of line Угол линии - + Degree of angle Угол - + Input data Входные данные @@ -956,22 +998,22 @@ Размер и рост - + Increments Прибавки - + Length of lines Длина линий - + Length of arcs Длина дуг - + Length of curves Длина кривых @@ -979,50 +1021,50 @@ DialogHeight - + Dialog Диалог - + Point label Имя точки - + Base point Базовая точка - - - - + + + + First point of line Первая точка линии - + Second point of line Вторая точка линии - + Type of line Тип линии - + Show line from first point to our point Показать линию с первой точки к нашей - + Select first point of line Выберить первую точку линии - + Select second point of line Выберить вторую точку линии @@ -1030,74 +1072,74 @@ DialogHistory - + History История - - + + Tool Инструмент - + %1 - Base point %1 - Базовая точка - - + + %1_%2 - Line from point %1 to point %2 %1_%2 - Линия с точки %1 к точке %2 - + %3 - Point along line %1_%2 %3 - Точка вдоль линии %1_%2 - + %1 - Point of shoulder %1 - Точка плеча - + %3 - normal to line %1_%2 %3 - перпендикуляр к линии %1_%2 - + %4 - bisector of angle %1_%2_%3 %4 - бисектриса угла %1_%2_%3 - + %4 - point of contact of arc with the center in point %1 and line %2_%3 %4 - точка пересичения дуги с центром в точке %1 и линии %2_%3 - + Point of perpendicular from point %1 to line %2_%3 Точка перпендикуляра с точки %1 до линии %2_%3 - + %1 - point of intersection %2 and %3 %1 - точка пересичения %2 и %3 - + %1 - cut arc with center %2 %1 - разрезает дугу с центром в %2 - + %1 - cut curve %2_%3 %1 - разрезает кривую %2_%3 - + %1 - cut curve path %2 %1 - разрезает сложную кривую %2 @@ -1106,32 +1148,39 @@ %1 - разрезает сложную кривую %2 - Got wrong tool type. Ignore. - Получено неправильный тип инструмента. Игнорируем. + Получено неправильный тип инструмента. Игнорируем. - + Curve %1_%2 Кривая %1_%2 - + %5 - intersection of lines %1_%2 and %3_%4 %5 - пересичение линий %1_%2 и %3_%4 - + + + + + Can't create record. + Не могу создать запись. + + + Arc with center in point %1 Дуга з центром в точке %1 - + Curve point %1 Точка кривой %1 - + Triangle: axis %1_%2, points %3 and %4 Триугольник: ось %1_%2, точки %3 и %4 @@ -1139,51 +1188,83 @@ DialogIncrements - - + + Increments Прибавки - Sizes table - Стандартная таблица + Стандартная таблица - - + + + Measurements + Мерки + + + + Load another measurements table + Загрузить другую таблицу с мерками + + + + Personal information + Персональная информация + + + + Given name + Имя + + + + Family name + Фамилия + + + + Birth date + Дата рождения + + + + Sex + Стать + + + + Name Обозначение - - + + The calculated value Расчитаное значение - - + + Base value Базовое значение - - + + In sizes В размерах - - In growths - В ростах + В ростах - - - - + + + Description Опис @@ -1196,18 +1277,30 @@ В ростах - - + + + ... - + + Email + E-mail + + + + + In heights + В ростах + + + Lines Линии - + Line Линия @@ -1216,12 +1309,12 @@ Длина линии - + Curves Кривые - + Curve Кривая @@ -1230,12 +1323,12 @@ Длина кривой - + Arcs Дуги - + Arc Дуга @@ -1248,56 +1341,185 @@ Обозначение %1 - + + + + File error. + Ошибка файла. + + + + male + мужчина + + + + female + женщина + + + + Measurements use different units than pattern. This pattern required measurements in %1 + Мерки используют другие единицы измерения нежели лекало. Ето леколо требует мерки в %1 + + + + Individual measurements (*.vit) + Индивидуальные мерки (*.vit) + + + + + Open file + Открыть файл + + + + + Wrong units. + Неправильные единицы измерения. + + + + Standard measurements (*.vst) + Стандартные мерки (*.vst) + + + Name_%1 Имя_%1 - Can't convert toDouble value. - Не могу конвертировать к toDouble значение. + Не могу конвертировать к toDouble значение. Calculated value Расчитаное значение - - - + + + Length Длина + + DialogIndividualMeasurements + + Dialog + Диалог + + + + Individual measurements + Индивидуальные мерки + + + + Pattern piece name + Имя лекала + + + + Exist measurements + Существующие мерки + + + + + Path: + Путь: + + + + + ... + ... + + + + New measurements + Новые мерки + + + + Units: + Единицы измерения: + + + + Could not create measurements file + Не могу создать файл мерок + + + + Please try again or change file + Пожайлуста попробуйте снова или смените файл + + + + + File error. + Ошибка файла. + + + + + Individual measurements (*.vit) + Индивидуальные мерки (*.vit) + + + + Open file + Открыть файл + + + + Where save measurements? + Где сохранить мерки? + + + + centimeter + сантиметры + + + + inch + дюймы + + DialogLine - + Line Линия - + First point Первая точка - + Second point Вторая точка - + Type of line Тип линии - + Show line from first point to this point Показать линию с первой точки до этой - + Select second point Выберить вторую точку @@ -1309,106 +1531,139 @@ Точка пересичения линий - + Intersection of lines Пересичение линий - + Point label Имя точки - + First line Первая линия - - + + First point Первая точка - - + + Second point Вторая точка - + Second line Вторая линия - + Select second point of first line Выберить вторую точку первой линии - + Select first point of second line Выберить первую точку второй линии - + Select second point of second line Выберить вторую точку второй линии + + DialogMeasurements + + + Measurements + Мерки + + + + <html><head/><body><p><span style=" font-size:18pt;">Please, choose pattern type.</span></p></body></html> + <html><head/><body><p><span style=" font-size:18pt;">Пожайлуста, выберите тип лекала.</span></p></body></html> + + + + Graduation + Градация + + + + Use for creation pattern standard measurement table + Лекало со стандартной таблицей + + + + Individual + Индивиндуальные + + + + Use for creation pattern individual measurements + Лекало с индивидуальных мерок + + DialogNormal - + Normal Перпендикуляр - + Length Длина - - - - - - - - - - + + + + + + + + + + ... - + Value of length Значение длины - + _ - + First point Первая точка - + Second point Вторая точка - + Additional angle degrees Дополнительные угол градусы - + Input data Входные данные @@ -1417,141 +1672,164 @@ Размер и рост - + Formula for calculation of length of normal Формула расчета длины перпендикуляра - + Calculate value Расчитать значение - + Point label Имя точки - + Insert variable into formula Вставить переменную в формулу - + Type of line Тип линии - + Show line from first point to this point Показать линию с первой точки до этой - + Size and height Размер и рост - + Standard table Стандартная таблица - + Increments Прибавки - + Length of lines Длина линий - + Length of arcs Длина дуг - + Length of curves Длина кривых - + Variables - Click twice to insert into formula Переменные - кликнете дважды для вставки в формулу - + Select second point of line Выберить вторую точку линии + + DialogPatternProperties + + + Pattern properties + Свойства лекала + + + + Author name + Имя автора + + + + Pattern description + Опись лекала + + + + For technical notes. + Для технических заметок. + + DialogPointOfContact - + Point of contact Точка касания - + Radius Радиус - - + + ... - + Value of radius Значение радиуса - + _ - + Center of arc Центр дуги - + Formula for calculation of radius of arc Формула расчета радиуса дуги - + Calculate value Расчитать значение - + Point label Имя точки - + Insert variable into formula Вставить переменную в формулу - + Top of the line Начало линии - + End of the line Конец линии - + Input data Входные данные @@ -1560,48 +1838,48 @@ Размер и рост - + Standard table Стандартная таблица - + Variables - Click twice to insert into formula. Переменные - кликнете дважды для вставки в формулу. - + Increments Прибавки - + Size and height Размер и рост - + Length of lines Длина линий - + Length of arcs Длина дуг - + Length of curves Длина кривых - + Select second point of line Выберить вторую точку линии - - + + Select point of center of arc Выберите точку центра дуги @@ -1609,37 +1887,37 @@ DialogPointOfIntersection - + Dialog Диалог - + Point label Имя точки - + vertical point Точка вертикали - + horizontal point Точка горизонтали - + First point of angle Первая точка угла - + Second point of angle Вторая точка угла - + Select point horizontally Выберить точку по горозинтали @@ -1647,74 +1925,74 @@ DialogShoulderPoint - - + + Point of shoulder Точка плеча - + Length Длина - - + + ... - + Value of length Значение длины - + _ - + Formula for calculation of length of line Формула расчета длины линии - + Calculate value Расчитать значение - + Point label Имя точки - + Insert variable into formula Вставить переменную в формулу - + First point Первая точка - + Second point Вторая точка - + Type of line Тип линии - + Show line from first point to our point Показать линию с первой точки к нашей - + Input data Входные данные @@ -1723,43 +2001,43 @@ Размер и рост - + Standard table Стандартная таблица - + Variables - Click twice to insert into formula Переменные - кликнете дважды для вставки в формулу - + Increments Прибавки - + Size and height Размер и рост - - + + Length of lines Длина линий - + Length of curves Длина кривых - + Select second point of line Выберить вторую точку линии - + Select point of shoulder Выберить точку плеча @@ -1767,32 +2045,32 @@ DialogSinglePoint - + Single point Одиночная точка - + Coordinates on the sheet Координаты на листе - + Coordinates Координаты - + Y coordinate Y координата - + X coordinate Х координата - + Point label Имя точки @@ -1800,47 +2078,47 @@ DialogSpline - + Curve Кривая - + First point Первая точка - + Length ratio of the first control point Коефициент длины первой контрольной точки - + The angle of the first control point Угол первой контрольной точки - + Second point Вторая точка - + Length ratio of the second control point Коефициент длины второй контрольной точки - + The angle of the second control point Угол второй контрольной точки - + Coefficient of curvature of the curve Коефициент кривизные кривой - + Select last point of curve Выберить последнюю точку кривой @@ -1848,51 +2126,74 @@ DialogSplinePath - + Curve path Сложная кривая - + Point of curve Точка кривой - + Length ratio of the first control point Коефициент длины первой контрольной точки - + The angle of the first control point Угол первой контрольной точки - + Length ratio of the second control point Коефициент длины второй контрольной точки - + The angle of the second control point Угол второй контрольной точки - + List of points Список точок - + Coefficient of curvature of the curve Коефициент кривизные кривой - + Select point of curve path Выберить точку сложной кривой + + DialogStandardMeasurements + + + Standard table + Стандартная таблица + + + + Pattern piece name + Имя лекала + + + + Standard measurements table + Стандартная таблица мерок + + + + File error. + Ошибка файла. + + DialogTool @@ -1900,12 +2201,12 @@ Неправильный id детали. - + Line Линия - + No line Без линии @@ -1914,7 +2215,7 @@ Не могу найти точку за именем - + Error Ошибка @@ -1923,52 +2224,51 @@ Рост - + Dash Line Пунктирная линия(-) - + Dot Line Пунктирная линия(.) - + Dash Dot Line Пунктирная линия(-.) - + Dash Dot Dot Line Пунктирная линия(-..) - Can't find object by name - Не могу найти объект за именем + Не могу найти объект за именем - + Height Рост - + Size Размер - + Line length Длина линии - + Arc length Длина дуги - + Curve length Длина кривой @@ -1976,55 +2276,55 @@ DialogTriangle - + Dialog Диалог - + Point label Имя точки - + First point of axis Первая точка оси - - - - + + + + First point of line Первая точка линии - + Second point of axis Вторая точка оси - + First point Первая точка - + Second point Вторая точка - + Select second point of axis Выберить вторую точку оси - + Select first point Выберить первую точку - + Select second point Выберить вторую точку @@ -2032,105 +2332,257 @@ DialogUnionDetails - + Dialog Диалог - + Do you really want union details? This operation can't be undone. Вы точно хотите объединить детали? Эту операцию нельзя будет отменить. - + Select first point Выберить первую точку - + Select second point Выберить вторую точку - - + + Select another second point Выберите другую точку - + Select detail Выберить деталь + + Functions + + + sin + sine function + sin + + + + cos + cosine function + cos + + + + tan + tangens function + tan + + + + asin + arcus sine function + asin + + + + acos + arcus cosine function + acos + + + + atan + arcus tangens function + atan + + + + sinh + hyperbolic sine function + sinh + + + + cosh + hyperbolic cosine + cosh + + + + tanh + hyperbolic tangens function + tanh + + + + asinh + hyperbolic arcus sine function + asibh + + + + acosh + hyperbolic arcus tangens function + acosh + + + + atanh + hyperbolic arcur tangens function + atanh + + + + log2 + logarithm to the base 2 + log2 + + + + log10 + logarithm to the base 10 + log10 + + + + log + logarithm to the base 10 + log + + + + ln + logarithm to base e (2.71828...) + ln + + + + exp + e raised to the power of x + exp + + + + sqrt + square root of a value + sqrt + + + + sign + sign function -1 if x<0; 1 if x>0 + sign + + + + rint + round to nearest integer + rint + + + + abs + absolute value + abs + + + + min + min of all arguments + min + + + + max + max of all arguments + max + + + + sum + sum of all arguments + sum + + + + avg + mean value of all arguments + avg + + MainWindow - - + Valentina Valentina - + Tools for creating points. Инструменты для создания точок. - + Point Точка - + Point along perpendicular Инструмент точка перпендикуляра - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + ... - + Special point on shoulder. Инструмент точка плеча. - + Point at distance and angle Инструмент точка на конце отрезка - + Point at distance along line Инструмент точка вдоль линии - + Point along bisector Инструмент точка бисектрисы - + Point at intersection of arc and line. Инструмент точка касания. @@ -2139,17 +2591,17 @@ Инструмент точка высоты. - + Tool triangle. Инструмент угольник. - + Tools for creating lines. Инструменты создания линий. - + Line Линия @@ -2162,12 +2614,12 @@ Инструмент точка пересичения линий. - + Tools for creating curves. Инструменты создания кривых. - + Curve Кривая @@ -2180,12 +2632,12 @@ Инструмент сложная кривая. - + Tools for creating arcs. Инструменты создания дуг. - + Arc Дуга @@ -2194,17 +2646,17 @@ Инструмент дуга. - + Tools for creating details. Инструменты создания деталей. - + Detail Деталь - + Tool new detail. Инструмент новая деталь. @@ -2221,234 +2673,239 @@ Чертеж - + Details mode Режим деталей - - + + Pointer tools Инструмент указатель - + New pattern piece Новый чертеж - + Add new pattern piece Добавить новый чертеж - + Perpendicular point along line Перпендикулярная точка вдоль линии - + Line between points Линия между точками - + Point at line intersection Точка пересичения линий - + Curve tool. Инструмент кривая. - + Tool for path curve. Инструмент сложная кривая. - + Tool segment a pathed curve. Инструмент разрезания сложной кривой. - + Tool for segmenting a curve. Инструмент разрезания кривой. - + Arc tool. Инструмент дуга. - + &File &Файл - + &Help &Помощь - + &Pattern piece &Чертеж - + toolBar - + toolBar_2 - + toolBar_3 - + New Новое - + &New &Новый - + Create a new pattern Создать новое лекало - + Ctrl+N Ctrl+N - + Open Открыть - + &Open &Открыть - + Open file with pattern Открыть файл с лекалом - + Save Сохранить - + &Save &Сохранить - + Save pattern Сохранить лекало - + Ctrl+S Ctrl+S - + Save &As... Сохранить &как... - + Options... Параметры... - + + Pattern properties + Свойства лекала + + + Save as Сохранить как - + Save not yet saved pattern Сохранить еще не сохраненное лекало - + Ctrl+Shift+S Ctrl+Shift+S - + Draw Рисование - + Draw mode Режим рисования - + Ctrl+W Ctrl+W - + Details Детали - + Ctrl+E Ctrl+E - + Ctrl+Shift+N Ctrl+Shift+N - - + + Change the label of pattern piece Изменить имя чертежа - + About &Qt Про &Qt - + &About Valentina &Про Valentina - + E&xit &Выход - + Exit the application Закрыть программу] - + Ctrl+Q Ctrl+Q @@ -2461,54 +2918,53 @@ Инструмент указатель - + Table of variables Таблица переменных - + Tables of variables Таблици переменных - + Ctrl+T Ctrl+T - + History История - + Ctrl+H Ctrl+H - + Layout Роскладка - + Create layout Создать раскладку - + Ctrl+L Ctrl+L - + About Qt Про Qt - About Valentina - Про Valentina + Про Valentina Exit @@ -2527,7 +2983,7 @@ Ошибка создания чертежа с именем - + Error saving change!!! Пошибка сохранение изменений!!! @@ -2536,131 +2992,161 @@ Создайте новый чертеж для начала работы. - Enter a label for the pattern piece. - Введите имя чертежа. + Введите имя чертежа. - Error. Pattern piece of same label already exists. - Ошибка. Чертеж с таким именем уже сущевствует. + Ошибка. Чертеж с таким именем уже сущевствует. - - + Pattern piece: Чертеж: - + Pattern piece %1 Чертеж %1 - Error creating pattern with the name - Ошибка создания чертежа с именем + Ошибка создания чертежа с именем - + Enter a new label for the pattern piece. Введите новое имя для чертежа. - Error. Pattern piece of same name already exists. - Ошибка. Чертеж с таким именем уже сувществует. + Ошибка. Чертеж с таким именем уже сувществует. - + Can't save new label of pattern piece Не могу сохранить новое имя чертежа - - + + Select point Выберить точку - + Select first point Выберить первую точку - - - + + + Select first point of line Выберить первую точку линии - + Select first point of angle Выберить первую точку угла - + Select first point of first line Выберить первую точку первой линии - + Select first point curve Выберить первую точку кривой - + Select simple curve Выберить простую кривую - + Select point of center of arc Выберить точку центра дуги - + Select point of curve path Выберить точку сложной кривой - + Select curve path Выберить сложною кривую - + Select detail Выберить деталь - + Select arc Выберить дугу - + File saved Файл сохранен - - Can not save pattern - Не могу сохранить лекало + + Measurements use different units than pattern. This pattern required measurements in %1 + Мерки используют другие единицы измерения нежели лекало. Ето леколо требует мерки в %1 - + + + Wrong units. + Неправильные единицы измерения. + + + + File error. + Ошибка файла. + + + + The measurements file <br/><br/> <b>%1</b> <br/><br/> %3 + Файл мерок <br/><br/> <b>%1</b> <br/><br/> %3 + + + + could not be found. Do you want to update the file location + не может быть найден. Вы хотите обновить путь к файлу + + + + Standard measurements (*.vst) + Стандартные мерки (*.vst) + + + + Individual measurements (*.vit) + Индивидуальные мерки (*.vit) + + + Can not save pattern + Не могу сохранить лекало + + + untitled.val без_имени.val - + Unsaved change Не сохраненные изменения - + The pattern has been modified. Do you want to save your changes? Лекало было изменено. Вы хотите сохранить ваши изменения? @@ -2670,13 +3156,12 @@ Do you want to save your changes? &%1 %2 - Cannot read file %1: %2. - Не могу прочитать файл %1:\n%2. + Не могу прочитать файл %1:\n%2. - + File loaded Файл загружен @@ -2689,21 +3174,19 @@ Do you want to save your changes? Вы хочете сохранить изменения? - Parsing pattern file error. - Ошибка парсинга файла лекала. + Ошибка парсинга файла лекала. - Validation file error. - Ошибка валидации файла. + Ошибка валидации файла. Growth: Рост: - + Size: Размер: @@ -2724,107 +3207,92 @@ Do you want to save your changes? Ошибка сохранения файла. Не могу сохранить файл. - + + Open file Открыть файл - Can't open pattern file %1: %2. - Не могу окрыть файл лекала %1:\n%2. + Не могу окрыть файл лекала %1:\n%2. - Can't open schema file %1: %2. - Не могу окрыть файл схемы %1:\n%2. + Не могу окрыть файл схемы %1:\n%2. - - Error no unique id. - Ошибка не уникальный id. + Ошибка не уникальный id. - Got empty file name. - Получено пустое имя файла. + Получено пустое имя файла. - Could not copy temp file to pattern file - Не могу скопировать временный файл у файл лекала + Не могу скопировать временный файл у файл лекала - Could not remove pattern file - Не смог удалить файл лекала + Не смог удалить файл лекала Can't open pattern file. File name empty Не могу открыть файл лекала. Пустое имя файла - - Error! - Ошибка! + Ошибка! - + Select points, arcs, curves clockwise. Выберить точки, дуги, кривые за часовой стрелкой. - + Select base point Выберить базовую точку - + Select first point of axis Выберить первую тчоку оси - + Select point vertically Выберить точку по вертикали - Based on Qt %2 (32 bit) - Базируется на Qt %2 (32 bit) + Базируется на Qt %2 (32 bit) - Built on %3 at %4 - Создано %3 в %4 + Создано %3 в %4 - - <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 - - - - + Height: Рост: - + Pattern Piece: Чертеж: - - + + Pattern files (*.val) Файл лекала (*.val) - - + + /pattern.val /лекало.val @@ -2845,22 +3313,23 @@ Do you want to save your changes? Не могу открыть файл лекала. Имя файла пустое - + + Error parsing file. Ошибка парсинга файла. - + Error can't convert value. Ошибка, не могу конвертовать значение. - + Error empty parameter. Ошибка, пустой параметр. - + Error wrong id. Ошибка, неправильный id. @@ -2869,49 +3338,2393 @@ Do you want to save your changes? Ошибка парсинга файла лекала. - - Error in line %1 column %2 - Ошибка в линии %1 столбец %2 + Ошибка в линии %1 столбец %2 + + + + Measurements + + + head_girth + Short measurement name. Don't use math symbols in name!!!! + Огол + + + + Head girth + Full measurement name + Обхват головы + + + + Around fullest part of Head + Full measurement description + Обхват головы + + + + mid_neck_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Mid-neck girth + Full measurement name + + + + + Around middle part of Neck + Full measurement description + + + + + neck_base_girth + Short measurement name. Don't use math symbols in name!!!! + Ош + + + + Neck Base girth + Full measurement name + Обхват шеи + + + + Around Neck at base + Full measurement description + Обхват шеи + + + + head_and_neck_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Head and Neck length + Full measurement name + + + + + Vertical Distance from Crown to Nape + Full measurement description + + + + + center_front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Center length + Full measurement name + + + + + Front Neck Center over tape at Bustline to Front Waist Center + Full measurement description + + + + + center_back_waist_length + Short measurement name. Don't use math symbols in name!!!! + Дтс + + + + Back Center length + Full measurement name + Длина спины до талии с учетом выступа лопаток + + + + Back Neck Center to Back Waist Center + Full measurement description + Длина спины до талии с учетом выступа лопаток + + + + shoulder_length + Short measurement name. Don't use math symbols in name!!!! + Шп + + + + Shoulder length + Full measurement name + Длина плечевого ската + + + + NeckPoint to ShoulderTip + Full measurement description + Длина плечевого ската + + + + side_waist_length + Short measurement name. Don't use math symbols in name!!!! + Дб + + + + Side Waist length + Full measurement name + Длина боковой части + + + + Armpit to Waist side + Full measurement description + Длина боковой части + + + + trunk_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Trunk length + Full measurement name + + + + + Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning point + Full measurement description + + + + + shoulder_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder girth + Full measurement name + + + + + Around Arms and Torso, at bicep level parallel to floor, with arms hanging at the sides + Full measurement description + + + + + upper_chest_girth + Short measurement name. Don't use math symbols in name!!!! + ОгI + + + + Upper Chest girth + Full measurement name + Обхват груди первый + + + + Around Chest at Armfold level, will be parallel to floor across back, will not be parallel to floor across front chest + Full measurement description + Обхват груди первый + + + + bust_girth + Short measurement name. Don't use math symbols in name!!!! + ОгII + + + + Bust girth + Full measurement name + Обхват груди второй + + + + Around fullest part of Bust, parallel to floor + Full measurement description + Обхват груди второй + + + + under_bust_girth + Short measurement name. Don't use math symbols in name!!!! + ОгIII + + + + Under Bust girth + Full measurement name + Обхват груди третий + + + + Around Chest below the Bust, parallel to floor + Full measurement description + Обхват груди третий + + + + waist_girth + Short measurement name. Don't use math symbols in name!!!! + От + + + + Waist girth + Full measurement name + Обхват талии + + + + Tie a string around smallest part of waist, keep string tied while taking meaasurements. Not usually parallel to floor for front waist or back waist. + Full measurement description + Обхват талии. + + + + high_hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip girth + Full measurement name + + + + + Around HighHip, parallel to floor + Full measurement description + + + + + hip_girth + Short measurement name. Don't use math symbols in name!!!! + Об + + + + Hip girth + Full measurement name + Обхват бедер с учетом выступания живота + + + + Around Hip, parallel to floor + Full measurement description + Обхват бедер с учетом выступания живота + + + + upper_front_chest_width + Short measurement name. Don't use math symbols in name!!!! + Шг1 + + + + Front Upper Chest width + Full measurement name + Ширина груди первая + + + + Across Front UpperChest, smallest width from armscye to armscye + Full measurement description + Ширина груди первая + + + + front_chest_width + Short measurement name. Don't use math symbols in name!!!! + Шг2 + + + + Front Chest width + Full measurement name + Ширина груди вторая + + + + Across Front Chest, from armfold to armfold + Full measurement description + Ширина груди вторая + + + + across_front_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + dпл + + + + Front Across Shoulder width + Full measurement name + Плечевой диаметр + + + + From ShoulderTip to ShoulderTip, across Front + Full measurement description + Плечевой диаметр + + + + across_back_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Back + Full measurement description + + + + + Back Upper Chest width + Full measurement name + + + + + Across Back UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + upper_back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + back_width + Short measurement name. Don't use math symbols in name!!!! + Шс + + + + Back Chest width + Full measurement name + Ширина спины + + + + Across Back Chest, from armfold to armfold + Full measurement description + Ширина спины + + + + bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + Цг + + + + BustPoint to BustPoint + Full measurement name + Расстояние между сосковыми точками + + + + Distance between BustPoints, across Chest + Full measurement description + Расстояние между сосковыми точками + + + + halter_bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + Halter Bustpoint to Bustpoint + Full measurement name + + + + + Distance from Bustpoint, behind neck, down to Bustpoint + Full measurement description + + + + + neck_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + Вг + + + + NeckPoint to BustPoint + Full measurement name + Расстояние от точки основания шеи сбоку до сосковой точки (высота груди) + + + + From NeckPoint to BustPoint + Full measurement description + Расстояние от точки основания шеи сбоку до сосковой точки (высота груди) + + + + crotch_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch length + Full measurement name + + + + + From Front Waist Center, down to crotch, up to Back Waist Center + Full measurement description + + + + + rise_height + Short measurement name. Don't use math symbols in name!!!! + Дпс + + + + Rise height + Full measurement name + Расстояние от линии талии до подъягодичной складки + + + + Sit on hard chair, measure from side waist straight down to chair bottom + Full measurement description + Расстояние от линии талии до подъягодичной складки + + + + shoulder_drop + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Drop + Full measurement name + + + + + Vertical Distance from NeckPoint level to ShoulderTip level + Full measurement description + + + + + shoulder_slope_degrees + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Slope degrees + Full measurement name + + + + + Degrees of angle from NeckPoint to ShoulderTip – requires goniometer + Full measurement description + + + + + front_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Shoulder Balance + Full measurement name + + + + + ShoulderTip to Front Waist Center + Full measurement description + + + + + back_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Shoulder Balance + Full measurement name + + + + + ShoulderTip to Back Waist Center + Full measurement description + + + + + front_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Full Length + Full measurement name + + + + + NeckPoint straight down front chest to Waistline + Full measurement description + + + + + back_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Full Length + Full measurement name + + + + + Back NeckPoint straight down back chest to Waistline + Full measurement description + + + + + front_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint through Front Neck Center + Full measurement description + + + + + back_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint across Nape + Full measurement description + + + + + front_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + front_upper-bust_arc + Full measurement name + + + + + front_upper-bust_arc + Full measurement description + + + + + back_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperBust arc + Full measurement name + + + + + Back UpperBust side to side + Full measurement description + + + + + front_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist arc + Full measurement name + + + + + Front Waist side to side + Full measurement description + + + + + back_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist arc + Full measurement name + + + + + Back Waist side to side + Full measurement description + + + + + front_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperHip arc + Full measurement name + + + + + Front UpperHip side to side + Full measurement description + + + + + back_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperHip arc + Full measurement name + + + + + Back UpperHip side to side + Full measurement description + + + + + front_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Hip arc + Full measurement name + + + + + Front Hip side to side + Full measurement description + + + + + back_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Hip arc + Full measurement name + + + + + Back Hip side to side + Full measurement description + + + + + chest_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest Balance + Full measurement name + + + + + NeckPoint to Front ArmfoldPoint + Full measurement description + + + + + back_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Balance + Full measurement name + + + + + NeckPoint to Back ArmfoldPoint + Full measurement description + + + + + front_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist Balance + Full measurement name + + + + + NeckPoint across Front Chest to Waist side + Full measurement description + + + + + back_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist Balance + Full measurement name + + + + + NeckPoint across Back Chest to Waist side + Full measurement description + + + + + front_neck_to_upper_chest_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperChest height + Full measurement name + + + + + Front Neck Center straight down to UpperChest line + Full measurement description + + + + + front_neck_to_bust_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust height + Full measurement name + + + + + Front Neck Center straight down to Bust line + Full measurement description + + + + + armscye_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye Girth + Full measurement name + + + + + Around Armscye + Full measurement description + + + + + elbow_girth + Short measurement name. Don't use math symbols in name!!!! + Олк + + + + Elbow Girth + Full measurement name + Обхват локтя + + + + Around Elbow with elbow bent + Full measurement description + Обхват локтя + + + + upper_arm_girth + Short measurement name. Don't use math symbols in name!!!! + Оп + + + + Upperarm Girth + Full measurement name + Обхват плеча + + + + Around UpperArm + Full measurement description + Обхват плеча + + + + wrist_girth + Short measurement name. Don't use math symbols in name!!!! + Озап + + + + Wrist girth + Full measurement name + Обхват запястья + + + + Around Wrist + Full measurement description + Обхват запястья + + + + scye_depth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye depth + Full measurement name + + + + + Nape straight down to UnderBust line (same as Back UpperBust height) + Full measurement description + + + + + shoulder_and_arm_length + Short measurement name. Don't use math symbols in name!!!! + Дзап + + + + Shoulder and Arm length + Full measurement name + Расстояние от точки основания шеи сбоку до линии обхвата запястья + + + + NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + Расстояние от точки основания шеи сбоку до линии обхвата запястья + + + + underarm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Underarm length + Full measurement name + + + + + Armpit to Wrist, with arm straight and hanging at side + Full measurement description + + + + + cervicale_to_wrist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to wrist length + Full measurement name + + + + + Nape to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + shoulder_to_elbow_length + Short measurement name. Don't use math symbols in name!!!! + Дрлок + + + + Elbow length + Full measurement name + Длина руки до локтя + + + + ShoulderTip to Elbow, with elbow bent and hand on hip + Full measurement description + Длина руки до локтя + + + + arm_length + Short measurement name. Don't use math symbols in name!!!! + Дрзап + + + + Arm length + Full measurement name + Длина рукава до линии обхвата запястья + + + + ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + Длина рукава до линии обхвата запястья + + + + hand_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand width + Full measurement name + + + + + Hand side to side + Full measurement description + + + + + hand_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand length + Full measurement name + + + + + Hand Middle Finger tip to wrist + Full measurement description + + + + + hand_girth + Short measurement name. Don't use math symbols in name!!!! + Окис + + + + Hand girth + Full measurement name + Обхват кисти + + + + Around Hand + Full measurement description + Обхват кисти + + + + thigh_girth + Short measurement name. Don't use math symbols in name!!!! + Обед + + + + Thigh girth + Full measurement name + Обхват бедра + + + + Around Thigh + Full measurement description + Обхват бедра + + + + mid_thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Midthigh girth + Full measurement name + + + + + Around MidThigh + Full measurement description + + + + + knee_girth + Short measurement name. Don't use math symbols in name!!!! + Ок + + + + Knee girth + Full measurement name + Обхват колена + + + + Around Knee + Full measurement description + Обхват колена + + + + calf_girth + Short measurement name. Don't use math symbols in name!!!! + Ои + + + + Calf girth + Full measurement name + Обхват икры + + + + Around Calf + Full measurement description + Обхват икры + + + + ankle_girth + Short measurement name. Don't use math symbols in name!!!! + Ощ + + + + Ankle girth + Full measurement name + Обхват щиколотки + + + + Around Ankle + Full measurement description + Обхват щиколотки + + + + knee_height + Short measurement name. Don't use math symbols in name!!!! + Вк + + + + Knee height + Full measurement name + Высота коленной точки + + + + Knee to Floor + Full measurement description + Высота коленной точки + + + + ankle_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle height + Full measurement name + + + + + Ankle to Floor + Full measurement description + + + + + foot_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot width + Full measurement name + + + + + Widest part of Foot side to side + Full measurement description + + + + + foot_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot length + Full measurement name + + + + + Tip of Longest Toe straight to back of heel + Full measurement description + + + + + height + Short measurement name. Don't use math symbols in name!!!! + + + + + Total Height + Full measurement name + + + + + Top of head to floor + Full measurement description + + + + + cervicale_height + Short measurement name. Don't use math symbols in name!!!! + Вшт + + + + Nape height + Full measurement name + Высота точки основания шеи сзади + + + + Nape to Floor + Full measurement description + Высота точки основания шеи сзади + + + + cervicale_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to knee height + Full measurement name + + + + + Nape to Knee + Full measurement description + + + + + waist_height + Short measurement name. Don't use math symbols in name!!!! + Влт + + + + Waist height + Full measurement name + Высота линии талии + + + + Waist side to floor + Full measurement description + Высота линии талии + + + + high_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip height + Full measurement name + + + + + HighHip side to Floor + Full measurement description + + + + + hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip height + Full measurement name + + + + + Hip side to Floor + Full measurement description + + + + + waist_to_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Hip height + Full measurement name + + + + + Waist side to Hip + Full measurement description + + + + + waist_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Knee height + Full measurement name + + + + + Waist side to Knee + Full measurement description + + + + + crotch_height + Short measurement name. Don't use math symbols in name!!!! + Дн + + + + Crotch height/Inseam + Full measurement name + Длина ноги по внутренней поверхности + + + + Crotch to Floor along inside leg + Full measurement description + Длина ноги по внутренней поверхности + + + + size + Short measurement name. Don't use math symbols in name!!!! + Сг + + + + Size + Full measurement name + Размер + + + + Size + Full measurement description + Размер + + + + height_front_neck_base_point + Short measurement name. Don't use math symbols in name!!!! + Втос + + + + Height front neck base point + Full measurement name + Высота точки основания шеи спереди + + + + Height of the point base of the neck in front + Full measurement description + Высота точки основания шеи спереди + + + + height_base_neck_side_point + Short measurement name. Don't use math symbols in name!!!! + Втош + + + + Height base neck side point + Full measurement name + Высота точки основания шеи сбоку + + + + Height of the base of the neck side point + Full measurement description + Высота точки основания шеи сбоку + + + + height_shoulder_point + Short measurement name. Don't use math symbols in name!!!! + Впт + + + + Height shoulder point + Full measurement name + Высота плечевой точки + + + + The height of the shoulder point + Full measurement description + Высота плечевой точки + + + + height_nipple_point + Short measurement name. Don't use math symbols in name!!!! + Вст + + + + Height nipple point + Full measurement name + Высота сосковой точки + + + + Height nipple point + Full measurement description + Высота сосковой точки + + + + height_back_angle_axilla + Short measurement name. Don't use math symbols in name!!!! + Взу + + + + Height back angle axilla + Full measurement name + Высота заднего угла подмышечной впадины + + + + Height back angle axilla + Full measurement description + Высота заднего угла подмышечной впадины + + + + height_scapular_point + Short measurement name. Don't use math symbols in name!!!! + Влоп + + + + Height scapular point + Full measurement name + Высота лопаточной точки + + + + Height scapular point + Full measurement description + Высота лопаточной точки + + + + height_under_buttock_folds + Short measurement name. Don't use math symbols in name!!!! + Впс + + + + Height under buttock folds + Full measurement name + Высота подъягодичной складки + + + + Height under buttock folds + Full measurement description + Высота подъягодичной складки + + + + hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + ОбI + + + + Hips excluding protruding abdomen + Full measurement name + Обхват бедер без учета выступания живота + + + + Hips excluding protruding abdomen + Full measurement description + Обхват бедер без учета выступания живота + + + + girth_foot_instep + Short measurement name. Don't use math symbols in name!!!! + Ос + + + + Girth foot instep + Full measurement name + Обхват подъема стопы + + + + Girth foot instep + Full measurement description + Обхват подъема стопы + + + + side_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + Дсб + + + + Side waist to floor + Full measurement name + Расстояние от линии талии до пола сбоку + + + + The distance from the side waist to floor + Full measurement description + Расстояние от линии талии до пола сбоку + + + + front_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + Дсп + + + + Front waist to floor + Full measurement name + Расстояние от линии талии до пола спереди + + + + The distance from the front waist to floor + Full measurement description + Расстояние от линии талии до пола спереди + + + + arc_through_groin_area + Short measurement name. Don't use math symbols in name!!!! + Дпоб + + + + Arc through groin area + Full measurement name + Дуга через паховую область + + + + Arc through groin area + Full measurement description + Дуга через паховую область + + + + waist_to_plane_seat + Short measurement name. Don't use math symbols in name!!!! + Дс + + + + Waist to plane seat + Full measurement name + Расстояние от линии талии до плоскости сидения + + + + The distance from the waist to the plane seat + Full measurement description + Расстояние от линии талии до плоскости сидения + + + + neck_to_radial_point + Short measurement name. Don't use math symbols in name!!!! + Длуч + + + + Neck to radial point + Full measurement name + Расстояние от точки основания шеи сбоку до лучевой точки + + + + The distance from the base of the neck to the side of the radial point + Full measurement description + Расстояние от точки основания шеи сбоку до лучевой точки + + + + neck_to_third_finger + Short measurement name. Don't use math symbols in name!!!! + ДIIIп + + + + Neck to third finger + Full measurement name + Расстояние от точки основания шеи сбоку до конца третьего пальца + + + + Distance from the base of the neck side point to the end of the third finger + Full measurement description + Расстояние от точки основания шеи сбоку до конца третьего пальца + + + + neck_to_first_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + Впрп + + + + Neck to first line chest circumference + Full measurement name + Расстояние от точки основания шеи сбоку до линии обхвата груди первого спереди + + + + The distance from the base of the neck to the side of the first line in front of chest circumference + Full measurement description + Расстояние от точки основания шеи сбоку до линии обхвата груди первого спереди + + + + front_waist_length + Short measurement name. Don't use math symbols in name!!!! + Дтп + + + + Front waist length + Full measurement name + Расстояние от точки основания шеи сбоку до линии талии спереди (длани талии спереди) + + + + The distance from the base of the neck to the waist side front (waist length in the front) + Full measurement description + Расстояние от точки основания шеи сбоку до линии талии спереди (длани талии спереди) + + + + arc_through_shoulder_joint + Short measurement name. Don't use math symbols in name!!!! + Дп + + + + Arc through shoulder joint + Full measurement name + Дуга через высшую точку плечевого сустава + + + + Arc through the highest point of the shoulder joint + Full measurement description + Дуга через высшую точку плечевого сустава + + + + neck_to_back_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + Впрз + + + + Neck to back line chest circumference + Full measurement name + Расстояние от точки основания шеи сзади до линии обхватов груди первого и второго с учетом выступа лопаток + + + + The distance from the base of the neck to the back line of chest circumference of the first and the second based on ledge vanes + Full measurement description + Расстояние от точки основания шеи сзади до линии обхватов груди первого и второго с учетом выступа лопаток + + + + waist_to_neck_side + Short measurement name. Don't use math symbols in name!!!! + ДтсI + + + + Waist to neck side + Full measurement name + Расстояние от линии талии сзади до точки основания шеи сбоку + + + + The distance from the waist to the back base of the neck side point + Full measurement description + Расстояние от линии талии сзади до точки основания шеи сбоку + + + + arc_length_upper_body + Short measurement name. Don't use math symbols in name!!!! + Двчт + + + + Arc length upper body + Full measurement name + Длина дуги верхней части туловища через точку основания шеи сбоку + + + + Arc length of the upper body through the base of the neck side point + Full measurement description + Длина дуги верхней части туловища через точку основания шеи сбоку + + + + chest_width + Short measurement name. Don't use math symbols in name!!!! + Шг + + + + Chest width + Full measurement name + Ширина груди + + + + Chest width + Full measurement description + Ширина груди + + + + anteroposterior_diameter_hands + Short measurement name. Don't use math symbols in name!!!! + dпзр + + + + Anteroposterior diameter hands + Full measurement name + Передне-задний диаметр руки + + + + Anteroposterior diameter of the hands + Full measurement description + Передне-задний диаметр руки + + + + height_clavicular_point + Short measurement name. Don't use math symbols in name!!!! + Вкт + + + + Height clavicular point + Full measurement name + Высота ключичной точки + + + + Height clavicular point + Full measurement description + Высота ключичной точки + + + + height_armhole_slash + Short measurement name. Don't use math symbols in name!!!! + Впрк + + + + Height armhole slash + Full measurement name + Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди (высота проймы косая) + + + + The distance from the point to the cervical level of the posterior angle of the front armpit (underarm height oblique) + Full measurement description + Расстояние от шейной точки до уровня заднего угла подмышечной впадины спереди (высота проймы косая) + + + + slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + Впк + + + + Slash shoulder height + Full measurement name + Высота плеча косая + + + + Slash shoulder height + Full measurement description + Высота плеча косая + + + + half_girth_neck + Short measurement name. Don't use math symbols in name!!!! + Сш + + + + Half girth neck + Full measurement name + Полуобхват шеи + + + + Half girth neck + Full measurement description + Полуобхват шеи + + + + half_girth_neck_for_shirts + Short measurement name. Don't use math symbols in name!!!! + Сш1 + + + + Half girth neck for shirts + Full measurement name + Полуобхват шеи для сорочек + + + + Half girth neck for shirts + Full measurement description + Полуобхват шеи для сорочек + + + + half_girth_chest_first + Short measurement name. Don't use math symbols in name!!!! + СгI + + + + Half girth chest first + Full measurement name + Полуобхват груди первый + + + + Half girth chest first + Full measurement description + Полуобхват груди первый + + + + half_girth_chest_second + Short measurement name. Don't use math symbols in name!!!! + СгII + + + + Half girth chest second + Full measurement name + Полуобхват груди второй + + + + Half girth chest second + Full measurement description + Полуобхват груди второй + + + + half_girth_chest_third + Short measurement name. Don't use math symbols in name!!!! + СгIII + + + + Half girth chest third + Full measurement name + Полуобхват груди третий + + + + Half girth chest third + Full measurement description + Полуобхват груди третий + + + + half_girth_waist + Short measurement name. Don't use math symbols in name!!!! + Ст + + + + Half girth waist + Full measurement name + Полуобхват талии + + + + Half girth waist + Full measurement description + Полуобхват талии + + + + half_girth_hips_considering_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + Сб + + + + Half girth hips considering protruding abdomen + Full measurement name + Полуобхват бедер с учетом выступания живота + + + + Half girth hips considering protruding abdomen + Full measurement description + Полуобхват бедер с учетом выступания живота + + + + half_girth_hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + СбI + + + + Half girth hips excluding protruding abdomen + Full measurement name + Полуобхват бедер без учета выступания живота + + + + Half girth hips excluding protruding abdomen + Full measurement description + Полуобхват бедер без учета выступания живота + + + + girth_knee_flexed_feet + Short measurement name. Don't use math symbols in name!!!! + Окс + + + + Girth knee flexed feet + Full measurement name + Обхват колена в согнутом положении ноги + + + + Girth knee flexed feet + Full measurement description + Обхват колена в согнутом положении ноги + + + + neck_transverse_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck transverse diameter + Full measurement name + Поперечный диаметр шеи + + + + Neck transverse diameter + Full measurement description + Поперечный диаметр шеи + + + + front_slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + Впкп + + + + Front slash shoulder height + Full measurement name + Высота плеча косая спереди + + + + Front slash shoulder height + Full measurement description + Высота плеча косая спереди + + + + neck_to_front_waist_line + Short measurement name. Don't use math symbols in name!!!! + Дтн1 + + + + Neck to front waist line + Full measurement name + Расстояние от точки основания шеи до линии талии спереди + + + + The distance from the base of the neck to the waist line front + Full measurement description + Расстояние от точки основания шеи до линии талии спереди + + + + hand_vertical_diameter + Short measurement name. Don't use math symbols in name!!!! + dвр + + + + Hand vertical diameter + Full measurement name + Вертикальный диаметр руки + + + + Hand vertical diameter + Full measurement description + Вертикальный диаметр руки + + + + neck_to_knee_point + Short measurement name. Don't use math symbols in name!!!! + Дшк + + + + Neck to knee point + Full measurement name + Расстояние от шейной точки до колена + + + + Distance from neck to knee point + Full measurement description + Расстояние от шейной точки до колена + + + + waist_to_knee + Short measurement name. Don't use math symbols in name!!!! + Дтк + + + + Waist to knee + Full measurement name + Расстояние от линии талии до колена + + + + The distance from the waist to the knee + Full measurement description + Расстояние от линии талии до колена + + + + shoulder_height + Short measurement name. Don't use math symbols in name!!!! + Вп + + + + Shoulder height + Full measurement name + Высота плеча + + + + Shoulder height + Full measurement description + Высота плеча + + + + head_height + Short measurement name. Don't use math symbols in name!!!! + Вгол + + + + Head height + Full measurement name + Высота головы + + + + Head height + Full measurement description + Высота головы + + + + body_position + Short measurement name. Don't use math symbols in name!!!! + Пкор + + + + Body position + Full measurement name + Положение корпуса + + + + Body position + Full measurement description + Положение корпуса + + + + arc_behind_shoulder_girdle + Short measurement name. Don't use math symbols in name!!!! + Дпз + + + + Arc behind shoulder girdle + Full measurement name + Дуга плечевого пояса сзади + + + + Arc behind the shoulder girdle + Full measurement description + Дуга плечевого пояса сзади + + + + neck_to_neck_base + Short measurement name. Don't use math symbols in name!!!! + Дшош + + + + Neck to neck base + Full measurement name + Расстояние от шейной точки до точки основания шеи сбоку по линии измерения обхвата шеи + + + + Distance from neck point to point on the base of the neck side neck girth measurement line + Full measurement description + Расстояние от шейной точки до точки основания шеи сбоку по линии измерения обхвата шеи + + + + depth_waist_first + Short measurement name. Don't use math symbols in name!!!! + Гт1 + + + + Depth waist first + Full measurement name + Глубина талии первая + + + + Depth waist first + Full measurement description + Глубина талии первая + + + + depth_waist_second + Short measurement name. Don't use math symbols in name!!!! + ГтII + + + + Depth waist second + Full measurement name + Глубина талии вторая + + + + Depth waist second + Full measurement description + Глубина талии вторая PatternPage - + User Пользователь - + User name Имя пользователя - + Graphical output Графический вывод - + Use antialiasing Использовать сглаживание - + Undone Отменить - + Count steps Количество шагов + + PostfixOperators + + + cm + centimeter + см + + + + mm + millimeter + мм + + + + in + inch + дюйм + + QObject - + Create new pattern piece to start working. Создайте новый чертеж для начала работы. @@ -2919,43 +5732,43 @@ Do you want to save your changes? TableWindow - + Create a layout Создать раскладку - + toolBar toolBar - + Save Сохранить - - + + Save layout Создать раскладку - + Next Следующая - + Next detail Следующая деталь - + Turn Перевернуть - + Turn the detail 90 degrees Перевернуть детальна на 90 градусов @@ -2964,17 +5777,17 @@ Do you want to save your changes? Перевернуть детальна на 180 градусов - + Stop laying Прекратить укладку - + Enlarge letter Увеличить лист - + Enlarge the length of the sheet Увеличить длину листа @@ -2983,74 +5796,112 @@ Do you want to save your changes? Увеличить длину листа - + Reduce sheet Уменьшить лист - + Reduce the length of the sheet Уменьшить длину листа - - + + Mirroring Отражение - - + + Zoom In Увеличить - - + + Zoom Out Уменьшить - + Stop Стоп - + 0 details left. 0 деталей осталось. - - + + Collisions not found. Колизии не обнаружены. - + %1 details left. %1 деталей осталось. - + + untitled + без имени + + + + Svg files (*.svg) + Svg файлы (*svg) + + + + PDF files (*.pdf) + Pdf файлы (*pdf) + + + + Images (*.png) + Изображения (*png) + + + + PS files (*.ps) + Ps файл (*ps) + + + + EPS files (*.eps) + EPS файл (*eps) + + + Collisions found. Найдены колизии. - - SVG Generator Example Drawing - SVG Generator Example Drawing + + Creating file '%1' failed! %2 + Создание файла '%1' не удалось! %2 + + + + Critical error! + Критическая ошибка! + + + SVG Generator Example Drawing + SVG Generator Example Drawing - An SVG drawing created by the SVG Generator Example provided with Qt. - An SVG drawing created by the SVG Generator Example provided with Qt. + An SVG drawing created by the SVG Generator Example provided with Qt. VAbstractNode - + Can't find tag Modeling Не могу найти тег Modeling @@ -3058,12 +5909,12 @@ Do you want to save your changes? VAbstractTool - + Confirm the deletion. Подтвердить удаление. - + Do you really want delete? Вы точно хотите удалить? @@ -3071,42 +5922,36 @@ Do you want to save your changes? VApplication - - - - - - Error! - Ошибка! + Ошибка! - + Error parsing file. Program will be terminated. Ошибка парсинга файла. Програма будет закрыта. - + Error bad id. Program will be terminated. Ошибка, неправильный id. Програма будет закрыта. - + Error can't convert value. Program will be terminated. Ошибка не могу конвертировать значение. Програма будет закрыта. - + Error empty parameter. Program will be terminated. Ошибка пустой параметр. Програма будет закрыта. - + Error wrong id. Program will be terminated. Ошибка неправельный id. Програма будет закрыта. - + Something's wrong!! Что то не так!!! @@ -3129,199 +5974,210 @@ Do you want to save your changes? VContainer - - - + + + Can't find object Не могу найти объект + + + Can't cast object + Не можете привести объект + VDomDocument - Can't find tool id = %1 in table. - Не могу найти инструмент с id = %1 в таблице. + Не могу найти инструмент с id = %1 в таблице. - Got wrong parameter id. Need only id > 0. - Получен неправельный параметр id. Допустимы только id > 0. + Получен неправельный параметр id. Допустимы только id > 0. - Can't convert toLongLong parameter - Не могу конвертировать toLongLong параметр + Не могу конвертировать toLongLong параметр - + + Can't convert toUInt parameter + Не могу конвертировать toUInt параметр + + + Got empty parameter Получен пустой параметр - + Can't convert toDouble parameter Не могу конвертировать toDouble параметр - + + + Can't open file %1: +%2. + Не могу окрыть файл %1:\n%2. + + + + Can't open schema file %1: +%2. + Не могу окрыть файл схемы %1:\n%2. + + + + Validation error in line %1 column %2 + Ошибка валидации линия %1 столбик %2 + + + + Parcing error in line %1 column %2 + Ошибка разбора линия %1 столбец %2 + + This id is not unique. - Этот id не уникальный. + Этот id не уникальный. - Error creating or updating detail - Ошибка создания или обновления детали + Ошибка создания или обновления детали - Error creating or updating single point - Ошибка создания или обновления базовой точки + Ошибка создания или обновления базовой точки - Error creating or updating point of end line - Ошибка создания или обновления точки на конце линии + Ошибка создания или обновления точки на конце линии - Error creating or updating point along line - Ошибка создания или обновления точки вдоль линии + Ошибка создания или обновления точки вдоль линии - Error creating or updating point of shoulder - Ошибка создания или обновления точки плеча + Ошибка создания или обновления точки плеча - Error creating or updating point of normal - Ошибка создания или обновления точки нормали + Ошибка создания или обновления точки нормали - Error creating or updating point of bisector - Ошибка создания или обновления точки бисектрисы + Ошибка создания или обновления точки бисектрисы - Error creating or updating point of lineintersection - Ошибка создания или обновления точки пересичения линий + Ошибка создания или обновления точки пересичения линий - Error creating or updating point of contact - Ошибка создания или обновления точки прикосновения + Ошибка создания или обновления точки прикосновения - Error creating or updating modeling point - Ошибка создания или обновления точки + Ошибка создания или обновления точки - Error creating or updating height - Ошибка создания или обновления высоты + Ошибка создания или обновления высоты - Error creating or updating triangle - Ошибка создания или обновления треугольника + Ошибка создания или обновления треугольника - Error creating or updating point of intersection - Ошибка создания или обновления точки пересичения + Ошибка создания или обновления точки пересичения - Error creating or updating cut spline point - Ошибка создания или обновления точки разрезания сплайна + Ошибка создания или обновления точки разрезания сплайна - Error creating or updating cut spline path point - Ошибка создания или обновления точки разрезания сложного сплайна + Ошибка создания или обновления точки разрезания сложного сплайна - Error creating or updating cut arc point - Ошибка создания или обновления точки разрезания дуги + Ошибка создания или обновления точки разрезания дуги - Error creating or updating line - Ошибка создания или обновления линии + Ошибка создания или обновления линии - Error creating or updating simple curve - Ошибка создания или обновления кривой + Ошибка создания или обновления кривой - Error creating or updating curve path - Ошибка создания или обновления сложной кривой + Ошибка создания или обновления сложной кривой - Error creating or updating modeling simple curve - Ошибка создания или обновления модельной кривой + Ошибка создания или обновления модельной кривой - Error creating or updating modeling curve path - Ошибка создания или обновления сложной модельной кривой + Ошибка создания или обновления сложной модельной кривой - Error creating or updating simple arc - Ошибка создания или обновления дуги + Ошибка создания или обновления дуги - Error creating or updating modeling arc - Ошибка создания или обновления модельной дуги + Ошибка создания или обновления модельной дуги - Error creating or updating union details - Ошибка создания или обновления объединения деталей + Ошибка создания или обновления объединения деталей - Error! - Ошибка! + Ошибка! - Error parsing file. - Ошибка парсинга файла. + Ошибка парсинга файла. VDrawTool - + Options Параметры - + Delete Удалить - + Can not find the element after which you want to insert. Не могу найти елемент после которого вы хочете вставить. - + Can't find tag Calculation Не могу найти тег Calculation + + VException + + + Critical error! + Критическая ошибка! + + VModelingTool @@ -3333,22 +6189,185 @@ Do you want to save your changes? Удалить + + VPattern + + + Can't find tool id = %1 in table. + Не могу найти инструмент с id = %1 в таблице. + + + + Error no unique id. + Ошибка не уникальный id. + + + + Error! + Ошибка! + + + + Error parsing file. + Ошибка парсинга файла. + + + + Error creating or updating detail + Ошибка создания или обновления детали + + + + Error creating or updating single point + Ошибка создания или обновления базовой точки + + + + + Error creating or updating point of end line + Ошибка создания или обновления точки на конце линии + + + + + Error creating or updating point along line + Ошибка создания или обновления точки вдоль линии + + + + + Error creating or updating point of shoulder + Ошибка создания или обновления точки плеча + + + + + Error creating or updating point of normal + Ошибка создания или обновления точки нормали + + + + + Error creating or updating point of bisector + Ошибка создания или обновления точки бисектрисы + + + + Error creating or updating point of lineintersection + Ошибка создания или обновления точки пересичения линий + + + + + Error creating or updating point of contact + Ошибка создания или обновления точки прикосновения + + + + Error creating or updating modeling point + Ошибка создания или обновления точки + + + + Error creating or updating height + Ошибка создания или обновления высоты + + + + Error creating or updating triangle + Ошибка создания или обновления треугольника + + + + Error creating or updating point of intersection + Ошибка создания или обновления точки пересичения + + + + + Error creating or updating cut spline point + Ошибка создания или обновления точки разрезания сплайна + + + + + Error creating or updating cut spline path point + Ошибка создания или обновления точки разрезания сложного сплайна + + + + + Error creating or updating cut arc point + Ошибка создания или обновления точки разрезания дуги + + + + Error creating or updating line + Ошибка создания или обновления линии + + + + Error creating or updating simple curve + Ошибка создания или обновления кривой + + + + Error creating or updating curve path + Ошибка создания или обновления сложной кривой + + + + Error creating or updating modeling simple curve + Ошибка создания или обновления модельной кривой + + + + Error creating or updating modeling curve path + Ошибка создания или обновления сложной модельной кривой + + + + + Error creating or updating simple arc + Ошибка создания или обновления дуги + + + + Error creating or updating modeling arc + Ошибка создания или обновления модельной дуги + + + + Error creating or updating union details + Ошибка создания или обновления объединения деталей + + + + Got wrong parameter id. Need only id > 0. + Получен неправельный параметр id. Допустимы только id > 0. + + + + This id is not unique. + Этот id не уникальный. + + VSplinePath - + Not enough points to create the spline. Не достаточно точок для создания кривой. - - - + + + This spline does not exist. Этот сплайн не сувществует. - + Can't cut spline path with one point Не могу разреть сплайн из одной точки @@ -3356,12 +6375,12 @@ Do you want to save your changes? VTableGraphicsView - + can't find detail не могу найти деталь - + detail found деталь найдена @@ -3369,12 +6388,12 @@ Do you want to save your changes? VToolDetail - + Options Параметры - + Delete Удалить @@ -3382,17 +6401,48 @@ Do you want to save your changes? VToolTriangle - Can't find point. - Не могу найти точку. + Не могу найти точку. VToolUnionDetails - + Can't find tag Modeling Не могу найти тег Modeling + + Variables + + + Line_ + Left symbol _ in name + Линия_ + + + + AngleLine_ + Left symbol _ in name + УголЛинии_ + + + + Arc_ + Left symbol _ in name + Дуга_ + + + + Spl_ + Left symbol _ in name + Спл_ + + + + SplPath + СлСпл_ + + diff --git a/src/app/share/translations/valentina_uk.ts b/src/app/share/translations/valentina_uk.ts index 8b81bc66c..03bbbe0e3 100644 --- a/src/app/share/translations/valentina_uk.ts +++ b/src/app/share/translations/valentina_uk.ts @@ -1,35 +1,35 @@ - + ConfigDialog - + Apply Застосовувати - + &Cancel &Відмінити - + &Ok &Ок - + Config Dialog Діалог налаштувань - + Configuration Налаштування - + Pattern Лекало @@ -37,146 +37,189 @@ ConfigurationPage - + Setup user interface language updated and will be used the next time start Налаштування мови інтерфейсу користувача оновлені і будуть застосовані наступного запуску - + Save Зберегти - + Auto-save modified pattern Авто збереження модифіковане лекало - + Interval: Інтервал: - + min хв - + Language Мова - + GUI language Мова інтерфейсу - + Decimal separator parts Розділювач десяткової частини - + With OS options (.) З параметрів ОС (.) + + DialogAboutApp + + + About Valentina + Про Valentina + + + + Valentina version + + + + + Contributors + + + + + Based on Qt %2 (32 bit) + Базується на Qt %2 (32 bit) + + + + Built on %3 at %4 + Зібрано %3 в %4 + + + + Web site : %1 + + + + + Warning + + + + + Cannot open your default browser + + + DialogAlongLine - + Point along line Точка вздовж лінії - + Length Довжина - - + + ... - + Value of length Значення довжини - + _ - + Formula for the calculation of length of line Формула для розрахунку довжини лінії - + Calculate value Розрахунок довжини - + Point label Ім'я точки - + Insert variable into the formula Вставте значення в формулу - + First point Перша точка - + First point of line Перша точка лінії - + Second point Друга точка - + Second point of line Друга точка лінії - + Type of line Тип лінії - + Show line from first point to this point Показати лінію від першої точки до даної - + Size and height Розмір і зріст - + Standard table Стандартна таблиця - + Variables - Click twice to insert into formula Змінні - клікніть двічі для вставки в формулу - + Input data Вхідні данні @@ -185,27 +228,27 @@ Розмір і зріст - + Increments Прибавки - + Length of lines Довжина ліній - + Length of arcs Довжина дуг - + Length of curves Довжина кривих - + Select second point of line Виберіть другу точку лінії @@ -213,111 +256,111 @@ DialogArc - + Arc Дуга - + Radius Радіус - - - - - - + + + + + + ... - + Formula for the calculation of radius of arc Формула для розрахунку радіуса дуги - + Insert variable into the formula Вставте змінну в формулу - - - + + + Calculate value Розрахувати значення - + Value of radius Значення радіусу - - - + + + _ - + First angle degree Перший кут градуси - + First angle of arc counterclockwise Перший кут дуги проти годинникової стрілки - + Insert variable into formula Вставте значення в формулу - + Value of first angle Значення першого кута - + Second angle degree Другий кут градуси - + Second angle of arc counterclockwise Другий кут дуги проти годинникової стрілки - + Insert marked variable into formula Вставити позначену змінну у формулу - + Value of second angle Значення другого кута - + Center point Точка центру - + Select point of center of arc Виберіть точку центра дуги - + Input data Вхідні данні - + Size and height Розмір і зріст @@ -326,42 +369,42 @@ Розмір і зріст - + Standard table Стандартна таблиця - + Increments Прибавки - + Length of lines Довжина ліній - + Length of arcs Довжина дуг - + Length of curves Довжина кривих - + Angle of lines Кут ліній - + Variables Змінні - + Value of angle of line. Значення кута лінії. @@ -369,108 +412,108 @@ DialogBisector - + Bisector Бісектриса - + Length Довжина - - + + ... - + Value of length Значення довжини - + _ - + Calculation of length of bisector by using the formula Розрахувати довжину бісектриси використовуючи формулу - + Insert marked variable into the formula Вставити позначену змінну у формулу - + Calculate value Розрахувати значення - + Point label Ім'я точки - + First point Перша точка - + First point of angle Перша точка кута - + Second point Друга точка - + Second point of angle Друга точка кута - + Third point Третя точка - + Third point of angle Третя точка кута - + Type of line Тип лінії - + Show line from second point to this point Показати лінію від першої точки до даної - + Size and height Розмір і зріст - + Standard table Стандартна таблиця - + Variables - Click twice to insert into formula Змінні - клікніть двічі для вставки в формулу - + Input data Вхідні данні @@ -479,32 +522,32 @@ Розмір і зріст - + Increments Прибавки - + Length of lines Довжина ліній - + Length of arcs Довжина дуг - + Length of curves Довжина кривих - + Select second point of angle Виберіть другу точку кута - + Select third point of angle Виберіть третю точку кута @@ -512,93 +555,93 @@ DialogCutArc - + Dialog Діалог - + Length Довжина - + Formula for the calculation of the spline Формула розрахунку довжини сплайну - - + + ... ... - + Calculate value Розрахувати значення - + Value of length Значення довжини - + _ _ - + Arc Дуга - + Selected curve Вибрана крива - + Point label Ім'я точки - + Input data Вхідні данні - + Size and height Розмір і зріст - + Standard table Стандартна таблиця - + Increments Прибавки - + Length of lines Довжина ліній - + Length of arcs Довжина дуг - + Length of curves Довжина кривих - + Variables - Click twice to insert into formula Змінні - клікніть двічі для вставки в формулу @@ -606,93 +649,93 @@ DialogCutSpline - + Dialog Діалог - + Length Довжина - + Formula for the calculation of the spline Формула розрахунку сплайну - - + + ... ... - + Calculate value Розрахувати значення - + Value of length Значення довжини - + _ _ - + Curve Крива - + Selected curve Вибрана крива - + Point label Ім'я точки - + Input data Вхідні данні - + Size and height Розмір і зріст - + Standard table Стандартна таблиця - + Increments Прибавки - + Length of lines Довжина ліній - + Length of arcs Довжина дуг - + Length of curves Довжина кривих - + Variables - Click twice to insert into formula Змінні - клікніть двічі для вставки в формулу @@ -700,93 +743,93 @@ DialogCutSplinePath - + Dialog Діалог - + Length Довжина - + Formula for the calculation of the curve length Формула розрахунку довжини сплайну - - + + ... ... - + Calculate value Розрахувати значення - + Value of length Значення довжини - + _ _ - + Curve Крива - + Selected curve path Вибрана складна крива - + Point label Ім'я точки - + Input data Вхідні данні - + Size and height Розмір і зріст - + Standard table Стандартна таблиця - + Increments Прибавки - + Length of lines Довжина ліній - + Length of arcs Довжина дуг - + Length of curves Довжина кривих - + Variables - Click twice to insert into formula Змінні - клікніть двічі для вставки в формулу @@ -794,160 +837,159 @@ DialogDetail - - + + Detail Деталь - + Bias X Зміщення по Х - + Bias Y Зміщення по Y - + Options Параметри - + Seam allowance Прибавка на шви - + Delete Видалити - + Name of detail Ім'я деталі - + Width Ширина - + Closed Замкнена - + Got wrong scene object. Ignore. Отримано не правильний об'єкт сцени. Інгнорується. - Got wrong tools. Ignore. - Отримано не правильний інструмент. Інгнорується. + Отримано не правильний інструмент. Інгнорується. DialogEndLine - + Length Довжина - + Point in the end of a line Точка на кінці відрізку - + Formula for calculation of length of line Формула для розрахунку довжини лінії - + Calculate value Розрахувати значення - - - - - - - - - - + + + + + + + + + + ... - + Value of length Значення довжини - + _ - + Base point Базова точка - + First point of line Перша точка лінії - + Point label Ім'я точки - + Type of line Тип лінії - + Show line from first point to this point Показати лінію від першої точки до даної - + Size and height Розмір і зріст - + Standard table Стандартна таблиця - + Variables - Click twice to insert into formula Змінні - клікніть двічі для вставки в формулу - + Angle of line Кут лінії - + Degree of angle Кут - + Input data Вхідні данні @@ -956,22 +998,22 @@ Розмір і зріст - + Increments Прибавки - + Length of lines Довжина ліній - + Length of arcs Довжина дуг - + Length of curves Довжина кривих @@ -979,50 +1021,50 @@ DialogHeight - + Dialog Діалог - + Point label Ім'я точки - + Base point Базова точка - - - - + + + + First point of line Перша точка лінії - + Second point of line Друга точка лінії - + Type of line Тип лінії - + Show line from first point to our point Показати лінію від першої точки до нашої точки - + Select first point of line Виберість першу точку лінії - + Select second point of line Виберіть другу точку лінії @@ -1030,74 +1072,74 @@ DialogHistory - + History Історія - - + + Tool Інструмент - + %1 - Base point %1 - Базова точка - - + + %1_%2 - Line from point %1 to point %2 %1_%2 - Лінія від точки %1 до точки %2 - + %3 - Point along line %1_%2 %3 - Точка вздовж лінії %1_%2 - + %1 - Point of shoulder %1 - точка плеча - + %3 - normal to line %1_%2 %3 - перпендикуляр до лінії %1_%2 - + %4 - bisector of angle %1_%2_%3 %4 - бісектриса кута %1_%2_%3 - + %4 - point of contact of arc with the center in point %1 and line %2_%3 %4 - точка перетину дуги з центром в точці %1 і лінії %2_%3 - + Point of perpendicular from point %1 to line %2_%3 Точка перпендикуляра з точки %1 до лінії %2_%3 - + %1 - point of intersection %2 and %3 %1 - перитину %2 і %3 - + %1 - cut arc with center %2 %1 - розразає дугу з центром в точці %2 - + %1 - cut curve %2_%3 %1 - розрізає криву %2_%3 - + %1 - cut curve path %2 %1 - розрізає складну криву %2 @@ -1106,32 +1148,39 @@ %1 - розрізає криву точкою %2 - Got wrong tool type. Ignore. - Отримано не правильний тип інструменту. Ігнорується. + Отримано не правильний тип інструменту. Ігнорується. - + Curve %1_%2 Крива %1_%2 - + %5 - intersection of lines %1_%2 and %3_%4 %5 - перетин ліній %1_%2 і %3_%4 - + + + + + Can't create record. + + + + Arc with center in point %1 Дуга з центром в точці %1 - + Curve point %1 Точка кривої %1 - + Triangle: axis %1_%2, points %3 and %4 Трикутник: вісь %1_%2, точки %3 і %4 @@ -1139,51 +1188,83 @@ DialogIncrements - - + + Increments Прибавки - Sizes table - Таблиця розмірів + Таблиця розмірів - - + + + Measurements + + + + + Load another measurements table + + + + + Personal information + + + + + Given name + + + + + Family name + + + + + Birth date + + + + + Sex + + + + + Name Позначення - - + + The calculated value Розраховане значення - - + + Base value Базове значення - - + + In sizes В розмірах - - In growths - В ростах + В ростах - - - - + + + Description Опис @@ -1196,18 +1277,30 @@ В ростах - - + + + ... - + + Email + + + + + + In heights + + + + Lines Лінії - + Line Лінія @@ -1216,12 +1309,12 @@ Довжина лінії - + Curves Криві - + Curve Крива @@ -1230,12 +1323,12 @@ Довжина кривої - + Arcs Дуги - + Arc Дуга @@ -1248,56 +1341,185 @@ Позначення %1 - + + + + File error. + + + + + male + + + + + female + + + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + Individual measurements (*.vit) + + + + + + Open file + Відкрити файл + + + + + Wrong units. + + + + + Standard measurements (*.vst) + + + + Name_%1 Name_%1 - Can't convert toDouble value. - Не можу конвертувати toDouble значення. + Не можу конвертувати toDouble значення. Calculated value Розраховане значення - - - + + + Length Довжина + + DialogIndividualMeasurements + + Dialog + Діалог + + + + Individual measurements + + + + + Pattern piece name + + + + + Exist measurements + + + + + + Path: + + + + + + ... + ... + + + + New measurements + + + + + Units: + + + + + Could not create measurements file + + + + + Please try again or change file + + + + + + File error. + + + + + + Individual measurements (*.vit) + + + + + Open file + Відкрити файл + + + + Where save measurements? + + + + + centimeter + + + + + inch + + + DialogLine - + Line Лінія - + First point Перша точка - + Second point Друга точка - + Type of line Тип лінії - + Show line from first point to this point Показати лінію від першої точки до даної - + Select second point Виберіть другу точку @@ -1309,106 +1531,139 @@ Точка перетину ліній - + Intersection of lines Перетин ліній - + Point label Ім'я точки - + First line Перша лінія - - + + First point Перша точка - - + + Second point Друга точка - + Second line Друга лінія - + Select second point of first line Виберіть другу точка першої лінії - + Select first point of second line Виберіть першу точку другої лінії - + Select second point of second line Виберіть другу точку другої лінії + + DialogMeasurements + + + Measurements + + + + + <html><head/><body><p><span style=" font-size:18pt;">Please, choose pattern type.</span></p></body></html> + + + + + Graduation + + + + + Use for creation pattern standard measurement table + + + + + Individual + + + + + Use for creation pattern individual measurements + + + DialogNormal - + Normal Перпендикуляр - + Length Довжина - - - - - - - - - - + + + + + + + + + + ... - + Value of length Значення довжини - + _ - + First point Перша точка - + Second point Друга точка - + Additional angle degrees Додатковий кут градуси - + Input data Вхідні данні @@ -1417,141 +1672,164 @@ Розмір і зріст - + Formula for calculation of length of normal Формула розрахунку довжини перпендикуляра - + Calculate value Розрахувати значення - + Point label Ім'я точки - + Insert variable into formula Вставте змінну в формулу - + Type of line Тип лінії - + Show line from first point to this point Показати лінію від першої точки до даної - + Size and height Розмір і зріст - + Standard table Стандартна таблиця - + Increments Прибавки - + Length of lines Довжини ліній - + Length of arcs Довжини дуг - + Length of curves Довжини кривих - + Variables - Click twice to insert into formula Змінні - клікніть двічі для вставки в формулу - + Select second point of line Виберіть другу точку лінії + + DialogPatternProperties + + + Pattern properties + + + + + Author name + + + + + Pattern description + + + + + For technical notes. + + + DialogPointOfContact - + Point of contact Точка дотику - + Radius Радіус - - + + ... - + Value of radius Значення радіусу - + _ - + Center of arc Центер дуги - + Formula for calculation of radius of arc Формула для розрахунку радіуса дуги - + Calculate value Розрахувати значення - + Point label Ім'я точки - + Insert variable into formula Вставте змінну в формулу - + Top of the line Початок лінії - + End of the line Кінець лінії - + Input data Вхідні данні @@ -1560,48 +1838,48 @@ Розмір і зріст - + Standard table Стандартна таблиця - + Variables - Click twice to insert into formula. Змінні - клікніть двічі для вставки в формулу. - + Increments Прибавки - + Size and height Розмір і зріст - + Length of lines Довжини ліній - + Length of arcs Довжини дуг - + Length of curves Довжини кривих - + Select second point of line Виберіть другу точку лінії - - + + Select point of center of arc Виберіть точку центру дуги @@ -1609,37 +1887,37 @@ DialogPointOfIntersection - + Dialog Діалог - + Point label Ім'я точки - + vertical point Точка по вертикалі - + horizontal point Точка по горизонталі - + First point of angle Перша точка кута - + Second point of angle Друга точка кута - + Select point horizontally Виберіть точку горизонталі @@ -1647,74 +1925,74 @@ DialogShoulderPoint - - + + Point of shoulder Точка плеча - + Length Довжина - - + + ... - + Value of length Значення довжини - + _ - + Formula for calculation of length of line Формула для розрахунку довжини лінії - + Calculate value Розрахувати значення - + Point label Ім'я точки - + Insert variable into formula Вставте значення в формулу - + First point Перша точка - + Second point Друга точка - + Type of line Тип лінії - + Show line from first point to our point Показати лінію від першої точки до нашої точки - + Input data Вхідні данні @@ -1723,43 +2001,43 @@ Розмір і зріст - + Standard table Стандартна таблиця - + Variables - Click twice to insert into formula Змінні - клікніть двічі для вставки в формулу - + Increments Прибавки - + Size and height Розмір і зріст - - + + Length of lines Довжини лінії - + Length of curves Довжни кривих - + Select second point of line Виберіть другу точку лінії - + Select point of shoulder Виберіть точку плеча @@ -1767,32 +2045,32 @@ DialogSinglePoint - + Single point Точка - + Coordinates on the sheet Координати на листі - + Coordinates Координати - + Y coordinate Y координата - + X coordinate Х координата - + Point label Ім'я точки @@ -1800,47 +2078,47 @@ DialogSpline - + Curve Крива - + First point Перша точка - + Length ratio of the first control point Коефіцієнт довжини першої контрольної точки - + The angle of the first control point Кут першої контрольної точки - + Second point Друга точка - + Length ratio of the second control point Коефіцієнт довжини другої контрольної точки - + The angle of the second control point Кут другої контрольної точки - + Coefficient of curvature of the curve Коефіцієнт кривизни кривої - + Select last point of curve Виберість останню точку кривої @@ -1848,51 +2126,74 @@ DialogSplinePath - + Curve path Складна крива - + Point of curve Точка кривої - + Length ratio of the first control point Коефіцієнт довжини першої контрольної точки - + The angle of the first control point Кут першої контрольної точки - + Length ratio of the second control point Коефіцієнт довжини другої контрольної точки - + The angle of the second control point Кут другої контрольної точки - + List of points Список точок - + Coefficient of curvature of the curve Коефіцієнт кривизни кривої - + Select point of curve path Виберіть точку складної кривої + + DialogStandardMeasurements + + + Standard table + Стандартна таблиця + + + + Pattern piece name + + + + + Standard measurements table + + + + + File error. + + + DialogTool @@ -1900,12 +2201,12 @@ Неправильний id деталі. - + Line Лінія - + No line Без лінії @@ -1914,7 +2215,7 @@ Не можу знайти точку за ім'ям - + Error Помилка @@ -1923,52 +2224,51 @@ Зріст - + Dash Line Пунктирна лінія (-) - + Dot Line Пунктирна лінія (.) - + Dash Dot Line Пунктирна лінія (-.) - + Dash Dot Dot Line Пунктирна лінія (-..) - Can't find object by name - Не можу знайти об'єкт за ім'ям + Не можу знайти об'єкт за ім'ям - + Height Зріст - + Size Розмір - + Line length Довжина лінії - + Arc length Довжина дуги - + Curve length Довжина кривої @@ -1976,55 +2276,55 @@ DialogTriangle - + Dialog Діалог - + Point label Ім'я точки - + First point of axis Перша точка вісі - - - - + + + + First point of line Перша точка лінії - + Second point of axis Друга точка вісі - + First point Перша точка - + Second point Друга точка - + Select second point of axis Виберіть другу точку вісі - + Select first point Виберість першу точку - + Select second point Виберіть другу точку @@ -2032,105 +2332,257 @@ DialogUnionDetails - + Dialog Діалог - + Do you really want union details? This operation can't be undone. Ви дійсно хочете обєднати деталі? Цю операцію не можна буде відмінити. - + Select first point Виберість першу точку - + Select second point Виберіть другу точку - - + + Select another second point Виберіть іншу точку - + Select detail Виберіть деталь + + Functions + + + sin + sine function + + + + + cos + cosine function + + + + + tan + tangens function + + + + + asin + arcus sine function + + + + + acos + arcus cosine function + + + + + atan + arcus tangens function + + + + + sinh + hyperbolic sine function + + + + + cosh + hyperbolic cosine + + + + + tanh + hyperbolic tangens function + + + + + asinh + hyperbolic arcus sine function + + + + + acosh + hyperbolic arcus tangens function + + + + + atanh + hyperbolic arcur tangens function + + + + + log2 + logarithm to the base 2 + + + + + log10 + logarithm to the base 10 + + + + + log + logarithm to the base 10 + + + + + ln + logarithm to base e (2.71828...) + + + + + exp + e raised to the power of x + + + + + sqrt + square root of a value + + + + + sign + sign function -1 if x<0; 1 if x>0 + + + + + rint + round to nearest integer + + + + + abs + absolute value + + + + + min + min of all arguments + хв + + + + max + max of all arguments + + + + + sum + sum of all arguments + + + + + avg + mean value of all arguments + + + MainWindow - - + Valentina Valentina - + Tools for creating points. Інструмент створення точок. - + Point Точка - + Point along perpendicular Інструмент точка перпендикуляра - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + ... - + Special point on shoulder. Інструмент точка плеча. - + Point at distance and angle Інструмент точка на кінці лінії - + Point at distance along line Інструмент точка вздовж лінії - + Point along bisector Інструмент точка бісектриси кута - + Point at intersection of arc and line. Інструмент точка дотику. @@ -2139,17 +2591,17 @@ Інструмент точка висоти. - + Tool triangle. Інструмент трикутник. - + Tools for creating lines. Інструменти для створення ліній. - + Line Лінія @@ -2162,12 +2614,12 @@ Інструмент точка перетину ліній. - + Tools for creating curves. Інструменти для створення кривих. - + Curve Крива @@ -2180,12 +2632,12 @@ Інструмент складна крива. - + Tools for creating arcs. Інструменти для створення дуг. - + Arc Дуга @@ -2194,17 +2646,17 @@ Інструмент дуга. - + Tools for creating details. Інструменти для створення деталей. - + Detail Деталь - + Tool new detail. Інструмент нова деталь. @@ -2221,234 +2673,239 @@ Креслення - + Details mode Режим деталей - - + + Pointer tools Інструмент вказівник - + New pattern piece Нове креслення - + Add new pattern piece Додати нове креслення - + Perpendicular point along line Перпендикулярна точка вздовж лінії - + Line between points Лінія між двома точками - + Point at line intersection Точка перетину ліній - + Curve tool. Інструмент крива. - + Tool for path curve. Інструмент складна крива. - + Tool segment a pathed curve. Інструмент розрізання складної кривої. - + Tool for segmenting a curve. Інструмент розрізання кривої. - + Arc tool. Інструмент дуга. - + &File &Файл - + &Help &Допомога - + &Pattern piece &Креслення - + toolBar - + toolBar_2 - + toolBar_3 - + New Новий - + &New &Новий - + Create a new pattern Створити нове лекало - + Ctrl+N Ctrl+N - + Open Відкрити - + &Open &Відкрити - + Open file with pattern Відкрити файл з лекалами - + Save Зберегти - + &Save &Зберегти - + Save pattern Зберегти лекало - + Ctrl+S Ctrl+S - + Save &As... Зберегти &як... - + Options... Нашатування... - + + Pattern properties + + + + Save as Зберегти як - + Save not yet saved pattern Зберегти ще не збережене лекало - + Ctrl+Shift+S Ctrl+Shift+S - + Draw Малювання - + Draw mode Режим малювання - + Ctrl+W Ctrl+W - + Details Деталь - + Ctrl+E Ctrl+E - + Ctrl+Shift+N Ctrl+Shift+N - - + + Change the label of pattern piece Змінити ім'я креслення - + About &Qt Про &Qt - + &About Valentina &Про Valentina - + E&xit &Вихід - + Exit the application Закрити програму - + Ctrl+Q Ctrl+Q @@ -2461,54 +2918,53 @@ Інструмент вказівник - + Table of variables Таблиця змінних - + Tables of variables Таблиці змінних - + Ctrl+T Ctrl+T - + History Історія - + Ctrl+H Ctrl+H - + Layout Розкладки - + Create layout Створити розкладку - + Ctrl+L Ctrl+L - + About Qt Про Qt - About Valentina - Про Valentina + Про Valentina Exit @@ -2527,85 +2983,117 @@ Помилка створення креслення з ім'ям - + Error saving change!!! Помилка збереження змін!!! - - + + Select point Виберість точку - + Select first point Виберіть першу точку - - - + + + Select first point of line Виберіть першу точку лінії - + Select first point of angle Виберіть першу точку кута - + Select first point of first line Виберіть першу точку першої лінії - + Select first point curve Виберіть першу точку кривої - + Select point of center of arc Виберіть точку центру дуги - + Select point of curve path Виберіть точку складної кривої + + + Measurements use different units than pattern. This pattern required measurements in %1 + + + + + + Wrong units. + + + + + File error. + + + + + The measurements file <br/><br/> <b>%1</b> <br/><br/> %3 + + + + + could not be found. Do you want to update the file location + + + + + Standard measurements (*.vst) + + + + + Individual measurements (*.vit) + + Create new pattern piece to start working. Створіть нове креслення для початку роботи. - Enter a label for the pattern piece. - Введить імя креслення. + Введить імя креслення. - Error. Pattern piece of same label already exists. - Помилка. Креслення з таким імям уже існує. + Помилка. Креслення з таким імям уже існує. - - + Pattern piece: Креслення: - + Enter a new label for the pattern piece. Введить нове ім'я для креслення. - Error. Pattern piece of same name already exists. - Помилка. Креслення з таким ім'ям вже існує. + Помилка. Креслення з таким ім'ям вже існує. - + Can't save new label of pattern piece Не можу зберегти нове ім'я креслення @@ -2622,7 +3110,7 @@ Зріст: - + Size: Розмір: @@ -2643,164 +3131,147 @@ Помилка збереження файлу. Не можу зберегти файл. - + + Open file Відкрити файл - Can't open pattern file %1: %2. - Не можу відкрити файл лекала %1: + Не можу відкрити файл лекала %1: %2. - Can't open schema file %1: %2. - Не можу відкрити файл схеми %1: + Не можу відкрити файл схеми %1: %2. - - Error no unique id. - Помилка не унікальний id. + Помилка не унікальний id. - Got empty file name. - Отримано пусте імя файлу. + Отримано пусте імя файлу. - Could not copy temp file to pattern file - Не можу копіювати тимчасовий файл до файлу лекала + Не можу копіювати тимчасовий файл до файлу лекала - Could not remove pattern file - Не можу видалити файл лекала + Не можу видалити файл лекала Can't open pattern file. File name empty Не можу відкрити файл лекала. Пусте ім'я файлу - - Error! - Помилка! + Помилка! - + Select points, arcs, curves clockwise. Виберіть точки, дуги, криві загодинниковою стрілкою. - + Pattern piece %1 Креслення %1 - Error creating pattern with the name - Помилка створення лекала з ім'ям + Помилка створення лекала з ім'ям - + Select simple curve Виберіть просту криву - + Select curve path Виберіть складну криву - + Select base point Виберіть базову точку - + Select first point of axis Виберіть першу точку вісі - + Select point vertically Виберіть точку по вертикалі - + Select detail Виберіть деталь - + Select arc Виберіть дугу - Based on Qt %2 (32 bit) - Базується на Qt %2 (32 bit) + Базується на Qt %2 (32 bit) - Built on %3 at %4 - Зібрано %3 в %4 + Зібрано %3 в %4 - - <h1>%1</h1> %2 <br/><br/> %3 <br/><br/> %4 - - - - + Height: Зріст: - + Pattern Piece: Креслення: - - + + Pattern files (*.val) Файл лекала (*.val) - - + + /pattern.val /викрійка.val - + File saved Файл збережено - Can not save pattern - Не можу зберегти лекало + Не можу зберегти лекало - + untitled.val безімений.val - + Unsaved change Незбережені зміни - + The pattern has been modified. Do you want to save your changes? Лекало було змінено. Ви хочете зберегти ваші зміни? @@ -2810,13 +3281,12 @@ Do you want to save your changes? &%1 %2 - Cannot read file %1: %2. - Не можу прочитати файл%1:\n%2. + Не можу прочитати файл%1:\n%2. - + File loaded Файл завантажено @@ -2837,83 +3307,2426 @@ Do you want to save your changes? Не можу відкрити файл викрійки. Ім'я файлу пусте - + + Error parsing file. Помилка парсингу файла. - + Error can't convert value. Помилка, не можу конвертувати значення. - + Error empty parameter. Помилка, пустий параметр. - + Error wrong id. Помикла, неправильний id. - Parsing pattern file error. - Помилка парсингу файлу викрійки. + Помилка парсингу файлу викрійки. - Validation file error. - Помилка валідації файлу. + Помилка валідації файлу. Error parsing pattern file. Помилка парсінгу файлу лекала. - - Error in line %1 column %2 - Помилка в лінії %1 стовпчик %2 + Помилка в лінії %1 стовпчик %2 + + + + Measurements + + + head_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Head girth + Full measurement name + + + + + Around fullest part of Head + Full measurement description + + + + + mid_neck_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Mid-neck girth + Full measurement name + + + + + Around middle part of Neck + Full measurement description + + + + + neck_base_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck Base girth + Full measurement name + + + + + Around Neck at base + Full measurement description + + + + + head_and_neck_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Head and Neck length + Full measurement name + + + + + Vertical Distance from Crown to Nape + Full measurement description + + + + + center_front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Center length + Full measurement name + + + + + Front Neck Center over tape at Bustline to Front Waist Center + Full measurement description + + + + + center_back_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Center length + Full measurement name + + + + + Back Neck Center to Back Waist Center + Full measurement description + + + + + shoulder_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder length + Full measurement name + + + + + NeckPoint to ShoulderTip + Full measurement description + + + + + side_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Side Waist length + Full measurement name + + + + + Armpit to Waist side + Full measurement description + + + + + trunk_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Trunk length + Full measurement name + + + + + Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning point + Full measurement description + + + + + shoulder_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder girth + Full measurement name + + + + + Around Arms and Torso, at bicep level parallel to floor, with arms hanging at the sides + Full measurement description + + + + + upper_chest_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upper Chest girth + Full measurement name + + + + + Around Chest at Armfold level, will be parallel to floor across back, will not be parallel to floor across front chest + Full measurement description + + + + + bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust girth + Full measurement name + + + + + Around fullest part of Bust, parallel to floor + Full measurement description + + + + + under_bust_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Under Bust girth + Full measurement name + + + + + Around Chest below the Bust, parallel to floor + Full measurement description + + + + + waist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist girth + Full measurement name + + + + + Tie a string around smallest part of waist, keep string tied while taking meaasurements. Not usually parallel to floor for front waist or back waist. + Full measurement description + + + + + high_hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip girth + Full measurement name + + + + + Around HighHip, parallel to floor + Full measurement description + + + + + hip_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip girth + Full measurement name + + + + + Around Hip, parallel to floor + Full measurement description + + + + + upper_front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Upper Chest width + Full measurement name + + + + + Across Front UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + front_chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Chest width + Full measurement name + + + + + Across Front Chest, from armfold to armfold + Full measurement description + + + + + across_front_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Front + Full measurement description + + + + + across_back_shoulder_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Across Shoulder width + Full measurement name + + + + + From ShoulderTip to ShoulderTip, across Back + Full measurement description + + + + + Back Upper Chest width + Full measurement name + + + + + Across Back UpperChest, smallest width from armscye to armscye + Full measurement description + + + + + upper_back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + back_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Chest width + Full measurement name + + + + + Across Back Chest, from armfold to armfold + Full measurement description + + + + + bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + BustPoint to BustPoint + Full measurement name + + + + + Distance between BustPoints, across Chest + Full measurement description + + + + + halter_bustpoint_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + Halter Bustpoint to Bustpoint + Full measurement name + + + + + Distance from Bustpoint, behind neck, down to Bustpoint + Full measurement description + + + + + neck_to_bustpoint + Short measurement name. Don't use math symbols in name!!!! + + + + + NeckPoint to BustPoint + Full measurement name + + + + + From NeckPoint to BustPoint + Full measurement description + + + + + crotch_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch length + Full measurement name + + + + + From Front Waist Center, down to crotch, up to Back Waist Center + Full measurement description + + + + + rise_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Rise height + Full measurement name + + + + + Sit on hard chair, measure from side waist straight down to chair bottom + Full measurement description + + + + + shoulder_drop + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Drop + Full measurement name + + + + + Vertical Distance from NeckPoint level to ShoulderTip level + Full measurement description + + + + + shoulder_slope_degrees + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder Slope degrees + Full measurement name + + + + + Degrees of angle from NeckPoint to ShoulderTip – requires goniometer + Full measurement description + + + + + front_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Shoulder Balance + Full measurement name + + + + + ShoulderTip to Front Waist Center + Full measurement description + + + + + back_shoulder_slope_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Shoulder Balance + Full measurement name + + + + + ShoulderTip to Back Waist Center + Full measurement description + + + + + front_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Full Length + Full measurement name + + + + + NeckPoint straight down front chest to Waistline + Full measurement description + + + + + back_shoulder_to_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Full Length + Full measurement name + + + + + Back NeckPoint straight down back chest to Waistline + Full measurement description + + + + + front_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint through Front Neck Center + Full measurement description + + + + + back_neck_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Neck arc + Full measurement name + + + + + NeckPoint to NeckPoint across Nape + Full measurement description + + + + + front_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + front_upper-bust_arc + Full measurement name + + + + + front_upper-bust_arc + Full measurement description + + + + + back_upper_chest_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperBust arc + Full measurement name + + + + + Back UpperBust side to side + Full measurement description + + + + + front_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist arc + Full measurement name + + + + + Front Waist side to side + Full measurement description + + + + + back_waist_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist arc + Full measurement name + + + + + Back Waist side to side + Full measurement description + + + + + front_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperHip arc + Full measurement name + + + + + Front UpperHip side to side + Full measurement description + + + + + back_upper_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back UpperHip arc + Full measurement name + + + + + Back UpperHip side to side + Full measurement description + + + + + front_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Hip arc + Full measurement name + + + + + Front Hip side to side + Full measurement description + + + + + back_hip_arc + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Hip arc + Full measurement name + + + + + Back Hip side to side + Full measurement description + + + + + chest_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest Balance + Full measurement name + + + + + NeckPoint to Front ArmfoldPoint + Full measurement description + + + + + back_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Balance + Full measurement name + + + + + NeckPoint to Back ArmfoldPoint + Full measurement description + + + + + front_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Front Waist Balance + Full measurement name + + + + + NeckPoint across Front Chest to Waist side + Full measurement description + + + + + back_waist_slope + Short measurement name. Don't use math symbols in name!!!! + + + + + Back Waist Balance + Full measurement name + + + + + NeckPoint across Back Chest to Waist side + Full measurement description + + + + + front_neck_to_upper_chest_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front UpperChest height + Full measurement name + + + + + Front Neck Center straight down to UpperChest line + Full measurement description + + + + + front_neck_to_bust_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Bust height + Full measurement name + + + + + Front Neck Center straight down to Bust line + Full measurement description + + + + + armscye_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye Girth + Full measurement name + + + + + Around Armscye + Full measurement description + + + + + elbow_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow Girth + Full measurement name + + + + + Around Elbow with elbow bent + Full measurement description + + + + + upper_arm_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Upperarm Girth + Full measurement name + + + + + Around UpperArm + Full measurement description + + + + + wrist_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Wrist girth + Full measurement name + + + + + Around Wrist + Full measurement description + + + + + scye_depth + Short measurement name. Don't use math symbols in name!!!! + + + + + Armscye depth + Full measurement name + + + + + Nape straight down to UnderBust line (same as Back UpperBust height) + Full measurement description + + + + + shoulder_and_arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder and Arm length + Full measurement name + + + + + NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + underarm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Underarm length + Full measurement name + + + + + Armpit to Wrist, with arm straight and hanging at side + Full measurement description + + + + + cervicale_to_wrist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to wrist length + Full measurement name + + + + + Nape to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + shoulder_to_elbow_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Elbow length + Full measurement name + + + + + ShoulderTip to Elbow, with elbow bent and hand on hip + Full measurement description + + + + + arm_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Arm length + Full measurement name + + + + + ShoulderTip to Wrist, with elbow bent and hand on hip + Full measurement description + + + + + hand_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand width + Full measurement name + + + + + Hand side to side + Full measurement description + + + + + hand_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand length + Full measurement name + + + + + Hand Middle Finger tip to wrist + Full measurement description + + + + + hand_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand girth + Full measurement name + + + + + Around Hand + Full measurement description + + + + + thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Thigh girth + Full measurement name + + + + + Around Thigh + Full measurement description + + + + + mid_thigh_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Midthigh girth + Full measurement name + + + + + Around MidThigh + Full measurement description + + + + + knee_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee girth + Full measurement name + + + + + Around Knee + Full measurement description + + + + + calf_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Calf girth + Full measurement name + + + + + Around Calf + Full measurement description + + + + + ankle_girth + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle girth + Full measurement name + + + + + Around Ankle + Full measurement description + + + + + knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Knee height + Full measurement name + + + + + Knee to Floor + Full measurement description + + + + + ankle_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Ankle height + Full measurement name + + + + + Ankle to Floor + Full measurement description + + + + + foot_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot width + Full measurement name + + + + + Widest part of Foot side to side + Full measurement description + + + + + foot_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Foot length + Full measurement name + + + + + Tip of Longest Toe straight to back of heel + Full measurement description + + + + + height + Short measurement name. Don't use math symbols in name!!!! + + + + + Total Height + Full measurement name + + + + + Top of head to floor + Full measurement description + + + + + cervicale_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape height + Full measurement name + + + + + Nape to Floor + Full measurement description + + + + + cervicale_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Nape to knee height + Full measurement name + + + + + Nape to Knee + Full measurement description + + + + + waist_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist height + Full measurement name + + + + + Waist side to floor + Full measurement description + + + + + high_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + HighHip height + Full measurement name + + + + + HighHip side to Floor + Full measurement description + + + + + hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Hip height + Full measurement name + + + + + Hip side to Floor + Full measurement description + + + + + waist_to_hip_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Hip height + Full measurement name + + + + + Waist side to Hip + Full measurement description + + + + + waist_to_knee_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to Knee height + Full measurement name + + + + + Waist side to Knee + Full measurement description + + + + + crotch_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Crotch height/Inseam + Full measurement name + + + + + Crotch to Floor along inside leg + Full measurement description + + + + + size + Short measurement name. Don't use math symbols in name!!!! + + + + + Size + Full measurement name + Розмір + + + + Size + Full measurement description + Розмір + + + + height_front_neck_base_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height front neck base point + Full measurement name + + + + + Height of the point base of the neck in front + Full measurement description + + + + + height_base_neck_side_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height base neck side point + Full measurement name + + + + + Height of the base of the neck side point + Full measurement description + + + + + height_shoulder_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height shoulder point + Full measurement name + + + + + The height of the shoulder point + Full measurement description + + + + + height_nipple_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height nipple point + Full measurement name + + + + + Height nipple point + Full measurement description + + + + + height_back_angle_axilla + Short measurement name. Don't use math symbols in name!!!! + + + + + Height back angle axilla + Full measurement name + + + + + Height back angle axilla + Full measurement description + + + + + height_scapular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height scapular point + Full measurement name + + + + + Height scapular point + Full measurement description + + + + + height_under_buttock_folds + Short measurement name. Don't use math symbols in name!!!! + + + + + Height under buttock folds + Full measurement name + + + + + Height under buttock folds + Full measurement description + + + + + hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Hips excluding protruding abdomen + Full measurement name + + + + + Hips excluding protruding abdomen + Full measurement description + + + + + girth_foot_instep + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth foot instep + Full measurement name + + + + + Girth foot instep + Full measurement description + + + + + side_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Side waist to floor + Full measurement name + + + + + The distance from the side waist to floor + Full measurement description + + + + + front_waist_to_floor + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist to floor + Full measurement name + + + + + The distance from the front waist to floor + Full measurement description + + + + + arc_through_groin_area + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through groin area + Full measurement name + + + + + Arc through groin area + Full measurement description + + + + + waist_to_plane_seat + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to plane seat + Full measurement name + + + + + The distance from the waist to the plane seat + Full measurement description + + + + + neck_to_radial_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to radial point + Full measurement name + + + + + The distance from the base of the neck to the side of the radial point + Full measurement description + + + + + neck_to_third_finger + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to third finger + Full measurement name + + + + + Distance from the base of the neck side point to the end of the third finger + Full measurement description + + + + + neck_to_first_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to first line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the side of the first line in front of chest circumference + Full measurement description + + + + + front_waist_length + Short measurement name. Don't use math symbols in name!!!! + + + + + Front waist length + Full measurement name + + + + + The distance from the base of the neck to the waist side front (waist length in the front) + Full measurement description + + + + + arc_through_shoulder_joint + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc through shoulder joint + Full measurement name + + + + + Arc through the highest point of the shoulder joint + Full measurement description + + + + + neck_to_back_line_chest_circumference + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to back line chest circumference + Full measurement name + + + + + The distance from the base of the neck to the back line of chest circumference of the first and the second based on ledge vanes + Full measurement description + + + + + waist_to_neck_side + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to neck side + Full measurement name + + + + + The distance from the waist to the back base of the neck side point + Full measurement description + + + + + arc_length_upper_body + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc length upper body + Full measurement name + + + + + Arc length of the upper body through the base of the neck side point + Full measurement description + + + + + chest_width + Short measurement name. Don't use math symbols in name!!!! + + + + + Chest width + Full measurement name + + + + + Chest width + Full measurement description + + + + + anteroposterior_diameter_hands + Short measurement name. Don't use math symbols in name!!!! + + + + + Anteroposterior diameter hands + Full measurement name + + + + + Anteroposterior diameter of the hands + Full measurement description + + + + + height_clavicular_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Height clavicular point + Full measurement name + + + + + Height clavicular point + Full measurement description + + + + + height_armhole_slash + Short measurement name. Don't use math symbols in name!!!! + + + + + Height armhole slash + Full measurement name + + + + + The distance from the point to the cervical level of the posterior angle of the front armpit (underarm height oblique) + Full measurement description + + + + + slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Slash shoulder height + Full measurement name + + + + + Slash shoulder height + Full measurement description + + + + + half_girth_neck + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck + Full measurement name + + + + + Half girth neck + Full measurement description + + + + + half_girth_neck_for_shirts + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth neck for shirts + Full measurement name + + + + + Half girth neck for shirts + Full measurement description + + + + + half_girth_chest_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest first + Full measurement name + + + + + Half girth chest first + Full measurement description + + + + + half_girth_chest_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest second + Full measurement name + + + + + Half girth chest second + Full measurement description + + + + + half_girth_chest_third + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth chest third + Full measurement name + + + + + Half girth chest third + Full measurement description + + + + + half_girth_waist + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth waist + Full measurement name + + + + + Half girth waist + Full measurement description + + + + + half_girth_hips_considering_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips considering protruding abdomen + Full measurement name + + + + + Half girth hips considering protruding abdomen + Full measurement description + + + + + half_girth_hips_excluding_protruding_abdomen + Short measurement name. Don't use math symbols in name!!!! + + + + + Half girth hips excluding protruding abdomen + Full measurement name + + + + + Half girth hips excluding protruding abdomen + Full measurement description + + + + + girth_knee_flexed_feet + Short measurement name. Don't use math symbols in name!!!! + + + + + Girth knee flexed feet + Full measurement name + + + + + Girth knee flexed feet + Full measurement description + + + + + neck_transverse_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck transverse diameter + Full measurement name + + + + + Neck transverse diameter + Full measurement description + + + + + front_slash_shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Front slash shoulder height + Full measurement name + + + + + Front slash shoulder height + Full measurement description + + + + + neck_to_front_waist_line + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to front waist line + Full measurement name + + + + + The distance from the base of the neck to the waist line front + Full measurement description + + + + + hand_vertical_diameter + Short measurement name. Don't use math symbols in name!!!! + + + + + Hand vertical diameter + Full measurement name + + + + + Hand vertical diameter + Full measurement description + + + + + neck_to_knee_point + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to knee point + Full measurement name + + + + + Distance from neck to knee point + Full measurement description + + + + + waist_to_knee + Short measurement name. Don't use math symbols in name!!!! + + + + + Waist to knee + Full measurement name + + + + + The distance from the waist to the knee + Full measurement description + + + + + shoulder_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Shoulder height + Full measurement name + + + + + Shoulder height + Full measurement description + + + + + head_height + Short measurement name. Don't use math symbols in name!!!! + + + + + Head height + Full measurement name + + + + + Head height + Full measurement description + + + + + body_position + Short measurement name. Don't use math symbols in name!!!! + + + + + Body position + Full measurement name + + + + + Body position + Full measurement description + + + + + arc_behind_shoulder_girdle + Short measurement name. Don't use math symbols in name!!!! + + + + + Arc behind shoulder girdle + Full measurement name + + + + + Arc behind the shoulder girdle + Full measurement description + + + + + neck_to_neck_base + Short measurement name. Don't use math symbols in name!!!! + + + + + Neck to neck base + Full measurement name + + + + + Distance from neck point to point on the base of the neck side neck girth measurement line + Full measurement description + + + + + depth_waist_first + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist first + Full measurement name + + + + + Depth waist first + Full measurement description + + + + + depth_waist_second + Short measurement name. Don't use math symbols in name!!!! + + + + + Depth waist second + Full measurement name + + + + + Depth waist second + Full measurement description + PatternPage - + User Користувач - + User name Ім'я користувача - + Graphical output Графічний вивід - + Use antialiasing Використовувати згладжування - + Undone Відмінити - + Count steps Кількість кроків + + PostfixOperators + + + cm + centimeter + + + + + mm + millimeter + + + + + in + inch + + + QObject - + Create new pattern piece to start working. Створіть нове креслення для початку роботи. @@ -2921,43 +5734,43 @@ Do you want to save your changes? TableWindow - + Create a layout Створити розкладку - + toolBar - + Save Зберегти - - + + Save layout Зберегти розкладку - + Next Наступний - + Next detail Наступна деталь - + Turn Повернути - + Turn the detail 90 degrees Повернути деталь на 90 градусів @@ -2966,17 +5779,17 @@ Do you want to save your changes? Повернути деталь на 180 градусів - + Stop laying Припинити укладання - + Enlarge letter Збільшити аркуш - + Enlarge the length of the sheet Збільшити довжину аркушу @@ -2985,74 +5798,104 @@ Do you want to save your changes? Збільшити довжину аркушу - + Reduce sheet Зменшити аркуш - + Reduce the length of the sheet Зменшити довжину аркушу - - + + Mirroring Дзеркальне відображення - - + + Zoom In Збільшити - - + + Zoom Out Зменшити - + Stop Зупинити - + 0 details left. 0 деталей залишилось. - - + + Collisions not found. Колізії не знайдено. - + %1 details left. %1 деталей залишилось. - + + untitled + + + + + Svg files (*.svg) + + + + + PDF files (*.pdf) + + + + + Images (*.png) + + + + + PS files (*.ps) + + + + + EPS files (*.eps) + + + + Collisions found. Знайдено колізії. - - SVG Generator Example Drawing - + + Creating file '%1' failed! %2 + - - An SVG drawing created by the SVG Generator Example provided with Qt. - + + Critical error! + VAbstractNode - + Can't find tag Modeling Не можу знайти тег Modeling @@ -3060,12 +5903,12 @@ Do you want to save your changes? VAbstractTool - + Confirm the deletion. Підтвердіть видалення. - + Do you really want delete? Ви дійсно хочете видалити? @@ -3073,42 +5916,36 @@ Do you want to save your changes? VApplication - - - - - - Error! - Помилка! + Помилка! - + Error parsing file. Program will be terminated. Помилка парсінгу файла. Програма буде закрита. - + Error bad id. Program will be terminated. Помилка неправильний id. Програма буде закрита. - + Error can't convert value. Program will be terminated. Помилка конвертації значення. Програма буде закрита. - + Error empty parameter. Program will be terminated. Помилка пустий параметр. Програма буде закрита. - + Error wrong id. Program will be terminated. Помилка неправильний id. Програма буде закрита. - + Something's wrong!! Щось не так!! @@ -3131,199 +5968,211 @@ Do you want to save your changes? VContainer - - - + + + Can't find object Не можу знайти об'єкт + + + Can't cast object + + VDomDocument - Can't find tool id = %1 in table. - Не можу знайти інструмент з id = %1 в таблиці. + Не можу знайти інструмент з id = %1 в таблиці. - Got wrong parameter id. Need only id > 0. - Отримано неправильний id. Допускаються тільки id > 0. + Отримано неправильний id. Допускаються тільки id > 0. - Can't convert toLongLong parameter - Не можу конвертувати toLongLong параметру + Не можу конвертувати toLongLong параметру - + + Can't convert toUInt parameter + + + + Got empty parameter Отримано пустий параметр - + Can't convert toDouble parameter Не можу конвертувати toDouble параметру - + + + Can't open file %1: +%2. + + + + + Can't open schema file %1: +%2. + Не можу відкрити файл схеми %1: +%2. + + + + Validation error in line %1 column %2 + + + + + Parcing error in line %1 column %2 + + + This id is not unique. - Цей id не унікальний. + Цей id не унікальний. - Error creating or updating detail - Помилка створення чи оновлення деталі + Помилка створення чи оновлення деталі - Error creating or updating single point - Помилка створення чи оновлення простої точки + Помилка створення чи оновлення простої точки - Error creating or updating point of end line - Помилка створення чи оновлення точки кінця відрізку + Помилка створення чи оновлення точки кінця відрізку - Error creating or updating point along line - Помилка створення чи оновлення точки вздовж лінії + Помилка створення чи оновлення точки вздовж лінії - Error creating or updating point of shoulder - Помилка створення чи оновлення точки плеча + Помилка створення чи оновлення точки плеча - Error creating or updating point of normal - Помилка створення чи оновлення точки нормалі + Помилка створення чи оновлення точки нормалі - Error creating or updating point of bisector - Помилка створення чи оновлення точки бісектриси + Помилка створення чи оновлення точки бісектриси - Error creating or updating point of lineintersection - Помилка створення чи оновлення точки перетину ліній + Помилка створення чи оновлення точки перетину ліній - Error creating or updating point of contact - Помилка створення чи оновлення точки дотику + Помилка створення чи оновлення точки дотику - Error creating or updating modeling point - Помилка створення чи оновлення модельної точки + Помилка створення чи оновлення модельної точки - Error creating or updating height - Помилка створення чи оновлення висоти + Помилка створення чи оновлення висоти - Error creating or updating triangle - Помилка створення чи оновлення трикутника + Помилка створення чи оновлення трикутника - Error creating or updating point of intersection - Помилка створення чи оновлення точки перетину + Помилка створення чи оновлення точки перетину - Error creating or updating cut spline point - Помилка створення чи оновлення точки розрізання кривої + Помилка створення чи оновлення точки розрізання кривої - Error creating or updating cut spline path point - Помилка створення чи оновлення точки розрізаня складної кривої + Помилка створення чи оновлення точки розрізаня складної кривої - Error creating or updating cut arc point - Помилка створення чи оновлення точки розрізання дуги + Помилка створення чи оновлення точки розрізання дуги - Error creating or updating line - Помилка створення чи оновлення лінії + Помилка створення чи оновлення лінії - Error creating or updating simple curve - Помилка створення чи оновлення кривої + Помилка створення чи оновлення кривої - Error creating or updating curve path - Помилка створення чи оновлення шляху кривих + Помилка створення чи оновлення шляху кривих - Error creating or updating modeling simple curve - Помилка створення чи оновлення модельної кривої + Помилка створення чи оновлення модельної кривої - Error creating or updating modeling curve path - Помилка створення чи оновлення модельного шляху кривих + Помилка створення чи оновлення модельного шляху кривих - Error creating or updating simple arc - Помилка створення чи оновлення дуги + Помилка створення чи оновлення дуги - Error creating or updating modeling arc - Помилка створення чи оновлення модельної дуги + Помилка створення чи оновлення модельної дуги - Error creating or updating union details - Помилка створення чи оновлення об'єднання деталей + Помилка створення чи оновлення об'єднання деталей - Error! - Помилка! + Помилка! - Error parsing file. - Помилка парсингу файла. + Помилка парсингу файла. VDrawTool - + Options Параметри - + Delete Видалити - + Can not find the element after which you want to insert. Не можу знайти елемент після якого ви хочете вставити. - + Can't find tag Calculation Не можу знайти тег Calculation + + VException + + + Critical error! + + + VModelingTool @@ -3335,22 +6184,185 @@ Do you want to save your changes? Видалити + + VPattern + + + Can't find tool id = %1 in table. + Не можу знайти інструмент з id = %1 в таблиці. + + + + Error no unique id. + Помилка не унікальний id. + + + + Error! + Помилка! + + + + Error parsing file. + Помилка парсингу файла. + + + + Error creating or updating detail + Помилка створення чи оновлення деталі + + + + Error creating or updating single point + Помилка створення чи оновлення простої точки + + + + + Error creating or updating point of end line + Помилка створення чи оновлення точки кінця відрізку + + + + + Error creating or updating point along line + Помилка створення чи оновлення точки вздовж лінії + + + + + Error creating or updating point of shoulder + Помилка створення чи оновлення точки плеча + + + + + Error creating or updating point of normal + Помилка створення чи оновлення точки нормалі + + + + + Error creating or updating point of bisector + Помилка створення чи оновлення точки бісектриси + + + + Error creating or updating point of lineintersection + Помилка створення чи оновлення точки перетину ліній + + + + + Error creating or updating point of contact + Помилка створення чи оновлення точки дотику + + + + Error creating or updating modeling point + Помилка створення чи оновлення модельної точки + + + + Error creating or updating height + Помилка створення чи оновлення висоти + + + + Error creating or updating triangle + Помилка створення чи оновлення трикутника + + + + Error creating or updating point of intersection + Помилка створення чи оновлення точки перетину + + + + + Error creating or updating cut spline point + Помилка створення чи оновлення точки розрізання кривої + + + + + Error creating or updating cut spline path point + Помилка створення чи оновлення точки розрізаня складної кривої + + + + + Error creating or updating cut arc point + Помилка створення чи оновлення точки розрізання дуги + + + + Error creating or updating line + Помилка створення чи оновлення лінії + + + + Error creating or updating simple curve + Помилка створення чи оновлення кривої + + + + Error creating or updating curve path + Помилка створення чи оновлення шляху кривих + + + + Error creating or updating modeling simple curve + Помилка створення чи оновлення модельної кривої + + + + Error creating or updating modeling curve path + Помилка створення чи оновлення модельного шляху кривих + + + + + Error creating or updating simple arc + Помилка створення чи оновлення дуги + + + + Error creating or updating modeling arc + Помилка створення чи оновлення модельної дуги + + + + Error creating or updating union details + Помилка створення чи оновлення об'єднання деталей + + + + Got wrong parameter id. Need only id > 0. + Отримано неправильний id. Допускаються тільки id > 0. + + + + This id is not unique. + Цей id не унікальний. + + VSplinePath - + Not enough points to create the spline. Не достатньо точок для створення кривої. - - - + + + This spline does not exist. Цей сплайн не існує. - + Can't cut spline path with one point Не можу розрізати складну криву що складається з одної точки @@ -3358,12 +6370,12 @@ Do you want to save your changes? VTableGraphicsView - + can't find detail не можу знайти деталь - + detail found деталь знайдено @@ -3371,12 +6383,12 @@ Do you want to save your changes? VToolDetail - + Options Параметри - + Delete Видалити @@ -3384,17 +6396,48 @@ Do you want to save your changes? VToolTriangle - Can't find point. - Не можу знайти точку. + Не можу знайти точку. VToolUnionDetails - + Can't find tag Modeling Не можу знайти тег Modeling + + Variables + + + Line_ + Left symbol _ in name + + + + + AngleLine_ + Left symbol _ in name + + + + + Arc_ + Left symbol _ in name + + + + + Spl_ + Left symbol _ in name + + + + + SplPath + + + diff --git a/src/app/stable.h b/src/app/stable.h index 7ebbe41f9..d7f9fa164 100644 --- a/src/app/stable.h +++ b/src/app/stable.h @@ -39,12 +39,39 @@ #ifdef Q_CC_MSVC #define _USE_MATH_DEFINES #endif + +#ifdef QT_CORE_LIB #include -#include -#include -#include +#endif + +#ifdef QT_GUI_LIB +#include +#endif + +#ifdef QT_WIDGETS_LIB #include +#endif + +#ifdef QT_XML_LIB +#include +#endif + +#ifdef QT_SVG_LIB #include #endif +#ifdef QT_PRINTSUPPORT_LIB +#include +#endif + +#ifdef QT_XMLPATTERNS_LIB +#include +#endif + +#ifdef QT_NETWORK_LIB +#include +#endif + +#endif + #endif // STABLE_H diff --git a/src/app/tools/drawTools/vtoolalongline.cpp b/src/app/tools/drawTools/vtoolalongline.cpp index 6165f562e..1d8613d48 100644 --- a/src/app/tools/drawTools/vtoolalongline.cpp +++ b/src/app/tools/drawTools/vtoolalongline.cpp @@ -30,6 +30,8 @@ #include "../../container/calculator.h" #include "../../dialogs/tools/dialogalongline.h" +#include "exception/vexceptionobjecterror.h" + const QString VToolAlongLine::ToolType = QStringLiteral("alongLine"); //--------------------------------------------------------------------------------------------------------------------- @@ -179,40 +181,38 @@ void VToolAlongLine::Create(const quint32 _id, const QString &pointName, const Q const VPointF *firstPoint = data->GeometricObject(firstPointId); const VPointF *secondPoint = data->GeometricObject(secondPointId); QLineF line = QLineF(firstPoint->toQPointF(), secondPoint->toQPointF()); + Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(formula, &errorMsg); - if (errorMsg.isEmpty()) + const qreal result = cal.EvalFormula(formula); + line.setLength(qApp->toPixel(result)); + + quint32 id = _id; + if (typeCreation == Valentina::FromGui) { - line.setLength(qApp->toPixel(result)); - quint32 id = _id; - if (typeCreation == Valentina::FromGui) + id = data->AddGObject( new VPointF(line.p2().x(), line.p2().y(), pointName, mx, my)); + data->AddLine(firstPointId, id); + data->AddLine(id, secondPointId); + } + else + { + data->UpdateGObject(id, new VPointF(line.p2().x(), line.p2().y(), pointName, mx, my)); + data->AddLine(firstPointId, id); + data->AddLine(id, secondPointId); + if (parse != Document::FullParse) { - id = data->AddGObject( new VPointF(line.p2().x(), line.p2().y(), pointName, mx, my)); - data->AddLine(firstPointId, id); - data->AddLine(id, secondPointId); - } - else - { - data->UpdateGObject(id, new VPointF(line.p2().x(), line.p2().y(), pointName, mx, my)); - data->AddLine(firstPointId, id); - data->AddLine(id, secondPointId); - if (parse != Document::FullParse) - { - doc->UpdateToolData(id, data); - } - } - VDrawTool::AddRecord(id, Valentina::AlongLineTool, doc); - if (parse == Document::FullParse) - { - VToolAlongLine *point = new VToolAlongLine(doc, data, id, formula, firstPointId, - secondPointId, typeLine, typeCreation); - scene->addItem(point); - connect(point, &VToolAlongLine::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); - connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolAlongLine::SetFactor); - doc->AddTool(id, point); - doc->IncrementReferens(firstPointId); - doc->IncrementReferens(secondPointId); + doc->UpdateToolData(id, data); } } + VDrawTool::AddRecord(id, Valentina::AlongLineTool, doc); + if (parse == Document::FullParse) + { + VToolAlongLine *point = new VToolAlongLine(doc, data, id, formula, firstPointId, + secondPointId, typeLine, typeCreation); + scene->addItem(point); + connect(point, &VToolAlongLine::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); + connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolAlongLine::SetFactor); + doc->AddTool(id, point); + doc->IncrementReferens(firstPointId); + doc->IncrementReferens(secondPointId); + } } diff --git a/src/app/tools/drawTools/vtoolarc.cpp b/src/app/tools/drawTools/vtoolarc.cpp index 199b1139c..af9754b26 100644 --- a/src/app/tools/drawTools/vtoolarc.cpp +++ b/src/app/tools/drawTools/vtoolarc.cpp @@ -94,26 +94,12 @@ void VToolArc::Create(const quint32 _id, const quint32 ¢er, const QString &r qreal calcRadius = 0, calcF1 = 0, calcF2 = 0; Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(radius, &errorMsg); - if (errorMsg.isEmpty()) - { - calcRadius = qApp->toPixel(result); - } - errorMsg.clear(); - result = cal.eval(f1, &errorMsg); - if (errorMsg.isEmpty()) - { - calcF1 = result; - } + qreal result = cal.EvalFormula(radius); + calcRadius = qApp->toPixel(result); - errorMsg.clear(); - result = cal.eval(f2, &errorMsg); - if (errorMsg.isEmpty()) - { - calcF2 = result; - } + calcF1 = cal.EvalFormula(f1); + calcF2 = cal.EvalFormula(f2); VPointF c = *data->GeometricObject(center); VArc *arc = new VArc(c, calcRadius, radius, calcF1, f1, calcF2, f2 ); diff --git a/src/app/tools/drawTools/vtoolbisector.cpp b/src/app/tools/drawTools/vtoolbisector.cpp index e770348d6..36d3436e6 100644 --- a/src/app/tools/drawTools/vtoolbisector.cpp +++ b/src/app/tools/drawTools/vtoolbisector.cpp @@ -115,41 +115,38 @@ void VToolBisector::Create(const quint32 _id, const QString &formula, const quin const VPointF *thirdPoint = data->GeometricObject(thirdPointId); Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(formula, &errorMsg); - if (errorMsg.isEmpty()) + const qreal result = cal.EvalFormula(formula); + + QPointF fPoint = VToolBisector::FindPoint(firstPoint->toQPointF(), secondPoint->toQPointF(), + thirdPoint->toQPointF(), qApp->toPixel(result)); + quint32 id = _id; + if (typeCreation == Valentina::FromGui) { - QPointF fPoint = VToolBisector::FindPoint(firstPoint->toQPointF(), secondPoint->toQPointF(), - thirdPoint->toQPointF(), qApp->toPixel(result)); - quint32 id = _id; - if (typeCreation == Valentina::FromGui) + id = data->AddGObject(new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); + data->AddLine(firstPointId, id); + } + else + { + data->UpdateGObject(id, new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); + data->AddLine(firstPointId, id); + if (parse != Document::FullParse) { - id = data->AddGObject(new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); - data->AddLine(firstPointId, id); - } - else - { - data->UpdateGObject(id, new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); - data->AddLine(firstPointId, id); - if (parse != Document::FullParse) - { - doc->UpdateToolData(id, data); - } - } - VDrawTool::AddRecord(id, Valentina::BisectorTool, doc); - if (parse == Document::FullParse) - { - VToolBisector *point = new VToolBisector(doc, data, id, typeLine, formula, firstPointId, secondPointId, - thirdPointId, typeCreation); - scene->addItem(point); - connect(point, &VToolBisector::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); - connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolBisector::SetFactor); - doc->AddTool(id, point); - doc->IncrementReferens(firstPointId); - doc->IncrementReferens(secondPointId); - doc->IncrementReferens(thirdPointId); + doc->UpdateToolData(id, data); } } + VDrawTool::AddRecord(id, Valentina::BisectorTool, doc); + if (parse == Document::FullParse) + { + VToolBisector *point = new VToolBisector(doc, data, id, typeLine, formula, firstPointId, secondPointId, + thirdPointId, typeCreation); + scene->addItem(point); + connect(point, &VToolBisector::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); + connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolBisector::SetFactor); + doc->AddTool(id, point); + doc->IncrementReferens(firstPointId); + doc->IncrementReferens(secondPointId); + doc->IncrementReferens(thirdPointId); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vtoolcutarc.cpp b/src/app/tools/drawTools/vtoolcutarc.cpp index 41209fb78..2f1a8cf81 100644 --- a/src/app/tools/drawTools/vtoolcutarc.cpp +++ b/src/app/tools/drawTools/vtoolcutarc.cpp @@ -95,63 +95,61 @@ void VToolCutArc::Create(const quint32 _id, const QString &pointName, const QStr VContainer *data, const Document::Documents &parse, const Valentina::Sources &typeCreation) { const VArc *arc = data->GeometricObject(arcId); + Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(formula, &errorMsg); - if (errorMsg.isEmpty()) + const qreal result = cal.EvalFormula(formula); + + VArc arc1; + VArc arc2; + QPointF point = arc->CutArc(qApp->toPixel(result), arc1, arc2); + + quint32 id = _id; + quint32 arc1id = 0; + quint32 arc2id = 0; + if (typeCreation == Valentina::FromGui) { - VArc arc1; - VArc arc2; - QPointF point = arc->CutArc(qApp->toPixel(result), arc1, arc2); + VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); + id = data->AddGObject(p); - quint32 id = _id; - quint32 arc1id = 0; - quint32 arc2id = 0; - if (typeCreation == Valentina::FromGui) + VArc * ar1 = new VArc(arc1); + arc1id = data->AddGObject(ar1); + + VArc * ar2 = new VArc(arc2); + arc2id = data->AddGObject(ar2); + } + else + { + VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); + data->UpdateGObject(id, p); + + arc1id = id + 1; + arc2id = id + 2; + + VArc * ar1 = new VArc(arc1); + data->UpdateGObject(arc1id, ar1); + + VArc * ar2 = new VArc(arc2); + data->UpdateGObject(arc2id, ar2); + + if (parse != Document::FullParse) { - VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); - id = data->AddGObject(p); - - VArc * ar1 = new VArc(arc1); - arc1id = data->AddGObject(ar1); - - VArc * ar2 = new VArc(arc2); - arc2id = data->AddGObject(ar2); + doc->UpdateToolData(id, data); } - else - { - VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); - data->UpdateGObject(id, p); + } + data->AddLengthArc(arc1id); + data->AddLengthArc(arc2id); - arc1id = id + 1; - arc2id = id + 2; - - VArc * ar1 = new VArc(arc1); - data->UpdateGObject(arc1id, ar1); - - VArc * ar2 = new VArc(arc2); - data->UpdateGObject(arc2id, ar2); - - if (parse != Document::FullParse) - { - doc->UpdateToolData(id, data); - } - } - data->AddLengthArc(arc1id); - data->AddLengthArc(arc2id); - - VDrawTool::AddRecord(id, Valentina::CutArcTool, doc); - if (parse == Document::FullParse) - { - VToolCutArc *point = new VToolCutArc(doc, data, id, formula, arcId, arc1id, arc2id, typeCreation); - scene->addItem(point); - connect(point, &VToolPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); - connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPoint::SetFactor); - doc->AddTool(id, point); - doc->AddTool(arc1id, point); - doc->AddTool(arc2id, point); - doc->IncrementReferens(arcId); - } + VDrawTool::AddRecord(id, Valentina::CutArcTool, doc); + if (parse == Document::FullParse) + { + VToolCutArc *point = new VToolCutArc(doc, data, id, formula, arcId, arc1id, arc2id, typeCreation); + scene->addItem(point); + connect(point, &VToolPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); + connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPoint::SetFactor); + doc->AddTool(id, point); + doc->AddTool(arc1id, point); + doc->AddTool(arc2id, point); + doc->IncrementReferens(arcId); } } diff --git a/src/app/tools/drawTools/vtoolcutspline.cpp b/src/app/tools/drawTools/vtoolcutspline.cpp index cdb8153c1..1f1f14c1f 100644 --- a/src/app/tools/drawTools/vtoolcutspline.cpp +++ b/src/app/tools/drawTools/vtoolcutspline.cpp @@ -96,64 +96,62 @@ void VToolCutSpline::Create(const quint32 _id, const QString &pointName, const Document::Documents &parse, const Valentina::Sources &typeCreation) { const VSpline *spl = data->GeometricObject(splineId); + Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(formula, &errorMsg); - if (errorMsg.isEmpty()) + const qreal result = cal.EvalFormula(formula); + + QPointF spl1p2, spl1p3, spl2p2, spl2p3; + QPointF point = spl->CutSpline(qApp->toPixel(result), spl1p2, spl1p3, spl2p2, spl2p3); + + quint32 id = _id; + quint32 spl1id = 0; + quint32 spl2id = 0; + if (typeCreation == Valentina::FromGui) { - QPointF spl1p2, spl1p3, spl2p2, spl2p3; - QPointF point = spl->CutSpline(qApp->toPixel(result), spl1p2, spl1p3, spl2p2, spl2p3); + VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); + id = data->AddGObject(p); - quint32 id = _id; - quint32 spl1id = 0; - quint32 spl2id = 0; - if (typeCreation == Valentina::FromGui) + VSpline *spline1 = new VSpline(spl->GetP1(), spl1p2, spl1p3, *p, spl->GetKcurve()); + spl1id = data->AddGObject(spline1); + data->AddLengthSpline(spline1->name(), qApp->fromPixel(spline1->GetLength())); + + VSpline *spline2 = new VSpline(*p, spl2p2, spl2p3, spl->GetP4(), spl->GetKcurve()); + spl2id = data->AddGObject(spline2); + data->AddLengthSpline(spline2->name(), qApp->fromPixel(spline2->GetLength())); + } + else + { + VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); + data->UpdateGObject(id, p); + + spl1id = id + 1; + spl2id = id + 2; + + VSpline *spline1 = new VSpline(spl->GetP1(), spl1p2, spl1p3, *p, spl->GetKcurve()); + data->UpdateGObject(spl1id, spline1); + data->AddLengthSpline(spline1->name(), qApp->fromPixel(spline1->GetLength())); + + VSpline *spline2 = new VSpline(*p, spl2p2, spl2p3, spl->GetP4(), spl->GetKcurve()); + data->UpdateGObject(spl2id, spline2); + data->AddLengthSpline(spline2->name(), qApp->fromPixel(spline2->GetLength())); + + if (parse != Document::FullParse) { - VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); - id = data->AddGObject(p); - - VSpline *spline1 = new VSpline(spl->GetP1(), spl1p2, spl1p3, *p, spl->GetKcurve()); - spl1id = data->AddGObject(spline1); - data->AddLengthSpline(spline1->name(), qApp->fromPixel(spline1->GetLength())); - - VSpline *spline2 = new VSpline(*p, spl2p2, spl2p3, spl->GetP4(), spl->GetKcurve()); - spl2id = data->AddGObject(spline2); - data->AddLengthSpline(spline2->name(), qApp->fromPixel(spline2->GetLength())); - } - else - { - VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); - data->UpdateGObject(id, p); - - spl1id = id + 1; - spl2id = id + 2; - - VSpline *spline1 = new VSpline(spl->GetP1(), spl1p2, spl1p3, *p, spl->GetKcurve()); - data->UpdateGObject(spl1id, spline1); - data->AddLengthSpline(spline1->name(), qApp->fromPixel(spline1->GetLength())); - - VSpline *spline2 = new VSpline(*p, spl2p2, spl2p3, spl->GetP4(), spl->GetKcurve()); - data->UpdateGObject(spl2id, spline2); - data->AddLengthSpline(spline2->name(), qApp->fromPixel(spline2->GetLength())); - - if (parse != Document::FullParse) - { - doc->UpdateToolData(id, data); - } - } - VDrawTool::AddRecord(id, Valentina::CutSplineTool, doc); - if (parse == Document::FullParse) - { - VToolCutSpline *point = new VToolCutSpline(doc, data, id, formula, splineId, spl1id, spl2id, typeCreation); - scene->addItem(point); - connect(point, &VToolPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); - connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPoint::SetFactor); - doc->AddTool(id, point); - doc->AddTool(spl1id, point); - doc->AddTool(spl2id, point); - doc->IncrementReferens(splineId); + doc->UpdateToolData(id, data); } } + VDrawTool::AddRecord(id, Valentina::CutSplineTool, doc); + if (parse == Document::FullParse) + { + VToolCutSpline *point = new VToolCutSpline(doc, data, id, formula, splineId, spl1id, spl2id, typeCreation); + scene->addItem(point); + connect(point, &VToolPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); + connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPoint::SetFactor); + doc->AddTool(id, point); + doc->AddTool(spl1id, point); + doc->AddTool(spl2id, point); + doc->IncrementReferens(splineId); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vtoolcutsplinepath.cpp b/src/app/tools/drawTools/vtoolcutsplinepath.cpp index 55af235e5..290aa92ef 100644 --- a/src/app/tools/drawTools/vtoolcutsplinepath.cpp +++ b/src/app/tools/drawTools/vtoolcutsplinepath.cpp @@ -97,136 +97,134 @@ void VToolCutSplinePath::Create(const quint32 _id, const QString &pointName, con { const VSplinePath *splPath = data->GeometricObject(splinePathId); Q_CHECK_PTR(splPath); + Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(formula, &errorMsg); - if (errorMsg.isEmpty()) + const qreal result = cal.EvalFormula(formula); + + quint32 id = _id; + QPointF spl1p2, spl1p3, spl2p2, spl2p3; + qint32 p1 = 0, p2 = 0; + + const QPointF point = splPath->CutSplinePath(qApp->toPixel(result), p1, p2, spl1p2, spl1p3, spl2p2, spl2p3); + VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); + if (typeCreation == Valentina::FromGui) { - quint32 id = _id; - QPointF spl1p2, spl1p3, spl2p2, spl2p3; - qint32 p1 = 0, p2 = 0; + id = data->AddGObject(p); + } + else + { + data->UpdateGObject(id, p); + } - const QPointF point = splPath->CutSplinePath(qApp->toPixel(result), p1, p2, spl1p2, spl1p3, spl2p2, spl2p3); - VPointF *p = new VPointF(point.x(), point.y(), pointName, mx, my); - if (typeCreation == Valentina::FromGui) + quint32 splPath1id = id + 1; + quint32 splPath2id = id + 2; + + VSplinePoint splP1 = splPath->at(p1); + VSplinePoint splP2 = splPath->at(p2); + const VSpline spl1 = VSpline(splP1.P(), spl1p2, spl1p3, *p, splPath->getKCurve()); + const VSpline spl2 = VSpline(*p, spl2p2, spl2p3, splP2.P(), splPath->getKCurve()); + + VSplinePath *splPath1 = new VSplinePath(); + VSplinePath *splPath2 = new VSplinePath(); + if (typeCreation == Valentina::FromGui) + { + for (qint32 i = 0; i < splPath->CountPoint(); i++) { - id = data->AddGObject(p); - } - else - { - data->UpdateGObject(id, p); - } - - quint32 splPath1id = id + 1; - quint32 splPath2id = id + 2; - - VSplinePoint splP1 = splPath->at(p1); - VSplinePoint splP2 = splPath->at(p2); - const VSpline spl1 = VSpline(splP1.P(), spl1p2, spl1p3, *p, splPath->getKCurve()); - const VSpline spl2 = VSpline(*p, spl2p2, spl2p3, splP2.P(), splPath->getKCurve()); - - VSplinePath *splPath1 = new VSplinePath(); - VSplinePath *splPath2 = new VSplinePath(); - if (typeCreation == Valentina::FromGui) - { - for (qint32 i = 0; i < splPath->CountPoint(); i++) + if (i <= p1 && i < p2) { - if (i <= p1 && i < p2) + if (i == p1) { - if (i == p1) - { - splPath1->append(VSplinePoint(splP1.P(), splP1.KAsm1(), spl1.GetAngle1()+180, spl1.GetKasm1(), - spl1.GetAngle1())); - const VSplinePoint cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl1.GetAngle2(), - spl1.GetAngle2()+180, spl1.GetAngle2()); - splPath1->append(cutPoint); - continue; - } - splPath1->append(splPath->at(i)); - } - else - { - if (i == p2) - { - const VSplinePoint cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl2.GetAngle1()+180, - spl2.GetKasm1(), spl2.GetAngle1()); - splPath2->append(cutPoint); - splPath2->append(VSplinePoint(splP2.P(), spl2.GetKasm2(), spl2.GetAngle2(), splP2.KAsm2(), - spl2.GetAngle2()+180)); - continue; - } - splPath2->append(splPath->at(i)); + splPath1->append(VSplinePoint(splP1.P(), splP1.KAsm1(), spl1.GetAngle1()+180, spl1.GetKasm1(), + spl1.GetAngle1())); + const VSplinePoint cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl1.GetAngle2(), + spl1.GetAngle2()+180, spl1.GetAngle2()); + splPath1->append(cutPoint); + continue; } + splPath1->append(splPath->at(i)); } - - splPath1->setMaxCountPoints(splPath->CountPoint()); - splPath2->setMaxCountPoints(splPath->CountPoint()); - - splPath1id = data->AddGObject(splPath1); - data->AddLengthSpline(splPath1->name(), qApp->fromPixel(splPath1->GetLength())); - - splPath2id = data->AddGObject(splPath2); - data->AddLengthSpline(splPath2->name(), qApp->fromPixel(splPath2->GetLength())); - } - else - { - for (qint32 i = 0; i < splPath->CountPoint(); i++) + else { - if (i <= p1 && i < p2) + if (i == p2) { - if (i == p1) - { - splPath1->append(VSplinePoint(splP1.P(), splP1.KAsm1(), spl1.GetAngle1()+180, spl1.GetKasm1(), - spl1.GetAngle1())); - const VSplinePoint cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl1.GetAngle2(), - spl2.GetKasm1(), spl1.GetAngle2()+180); - splPath1->append(cutPoint); - continue; - } - splPath1->append(splPath->at(i)); + const VSplinePoint cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl2.GetAngle1()+180, + spl2.GetKasm1(), spl2.GetAngle1()); + splPath2->append(cutPoint); + splPath2->append(VSplinePoint(splP2.P(), spl2.GetKasm2(), spl2.GetAngle2(), splP2.KAsm2(), + spl2.GetAngle2()+180)); + continue; } - else - { - if (i == p2) - { - const VSplinePoint cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl2.GetAngle1()+180, - spl2.GetKasm1(), spl2.GetAngle1()); - splPath2->append(cutPoint); - splPath2->append(VSplinePoint(splP2.P(), spl2.GetKasm2(), spl2.GetAngle2(), splP2.KAsm2(), - spl2.GetAngle2()+180)); - continue; - } - splPath2->append(splPath->at(i)); - } - } - - splPath1->setMaxCountPoints(splPath->CountPoint()); - splPath2->setMaxCountPoints(splPath->CountPoint()); - - data->UpdateGObject(splPath1id, splPath1); - data->AddLengthSpline(splPath1->name(), qApp->fromPixel(splPath1->GetLength())); - - data->UpdateGObject(splPath2id, splPath2); - data->AddLengthSpline(splPath2->name(), qApp->fromPixel(splPath2->GetLength())); - - if (parse != Document::FullParse) - { - doc->UpdateToolData(id, data); + splPath2->append(splPath->at(i)); } } - VDrawTool::AddRecord(id, Valentina::CutSplinePathTool, doc); - if (parse == Document::FullParse) + + splPath1->setMaxCountPoints(splPath->CountPoint()); + splPath2->setMaxCountPoints(splPath->CountPoint()); + + splPath1id = data->AddGObject(splPath1); + data->AddLengthSpline(splPath1->name(), qApp->fromPixel(splPath1->GetLength())); + + splPath2id = data->AddGObject(splPath2); + data->AddLengthSpline(splPath2->name(), qApp->fromPixel(splPath2->GetLength())); + } + else + { + for (qint32 i = 0; i < splPath->CountPoint(); i++) { - VToolCutSplinePath *point = new VToolCutSplinePath(doc, data, id, formula, splinePathId, splPath1id, - splPath2id, typeCreation); - scene->addItem(point); - connect(point, &VToolPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); - connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPoint::SetFactor); - doc->AddTool(id, point); - doc->AddTool(splPath1id, point); - doc->AddTool(splPath2id, point); - doc->IncrementReferens(splinePathId); + if (i <= p1 && i < p2) + { + if (i == p1) + { + splPath1->append(VSplinePoint(splP1.P(), splP1.KAsm1(), spl1.GetAngle1()+180, spl1.GetKasm1(), + spl1.GetAngle1())); + const VSplinePoint cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl1.GetAngle2(), + spl2.GetKasm1(), spl1.GetAngle2()+180); + splPath1->append(cutPoint); + continue; + } + splPath1->append(splPath->at(i)); + } + else + { + if (i == p2) + { + const VSplinePoint cutPoint = VSplinePoint(*p, spl1.GetKasm2(), spl2.GetAngle1()+180, + spl2.GetKasm1(), spl2.GetAngle1()); + splPath2->append(cutPoint); + splPath2->append(VSplinePoint(splP2.P(), spl2.GetKasm2(), spl2.GetAngle2(), splP2.KAsm2(), + spl2.GetAngle2()+180)); + continue; + } + splPath2->append(splPath->at(i)); + } } + + splPath1->setMaxCountPoints(splPath->CountPoint()); + splPath2->setMaxCountPoints(splPath->CountPoint()); + + data->UpdateGObject(splPath1id, splPath1); + data->AddLengthSpline(splPath1->name(), qApp->fromPixel(splPath1->GetLength())); + + data->UpdateGObject(splPath2id, splPath2); + data->AddLengthSpline(splPath2->name(), qApp->fromPixel(splPath2->GetLength())); + + if (parse != Document::FullParse) + { + doc->UpdateToolData(id, data); + } + } + VDrawTool::AddRecord(id, Valentina::CutSplinePathTool, doc); + if (parse == Document::FullParse) + { + VToolCutSplinePath *point = new VToolCutSplinePath(doc, data, id, formula, splinePathId, splPath1id, + splPath2id, typeCreation); + scene->addItem(point); + connect(point, &VToolPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); + connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPoint::SetFactor); + doc->AddTool(id, point); + doc->AddTool(splPath1id, point); + doc->AddTool(splPath2id, point); + doc->IncrementReferens(splinePathId); } } diff --git a/src/app/tools/drawTools/vtoolendline.cpp b/src/app/tools/drawTools/vtoolendline.cpp index 69e0e636b..1512c8e17 100644 --- a/src/app/tools/drawTools/vtoolendline.cpp +++ b/src/app/tools/drawTools/vtoolendline.cpp @@ -77,7 +77,7 @@ VToolEndLine* VToolEndLine::Create(DialogTool *dialog, VMainGraphicsScene *scene qreal angle = dialogTool->getAngle(); quint32 basePointId = dialogTool->getBasePointId(); - VToolEndLine *point; + VToolEndLine *point = nullptr; point=Create(0, pointName, typeLine, formula, angle, basePointId, 5, 10, scene, doc, data, Document::FullParse, Valentina::FromGui); if (point != nullptr) { @@ -94,18 +94,25 @@ VToolEndLine* VToolEndLine::Create(const quint32 _id, const QString &pointName, { const VPointF *basePoint = data->GeometricObject(basePointId); QLineF line = QLineF(basePoint->toQPointF(), QPointF(basePoint->x()+100, basePoint->y())); + Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(formula, &errorMsg); - if (errorMsg.isEmpty()) + const qreal result = cal.EvalFormula(formula); + + line.setLength(qApp->toPixel(result)); + line.setAngle(angle); + quint32 id = _id; + if (typeCreation == Valentina::FromGui) { - line.setLength(qApp->toPixel(result)); - line.setAngle(angle); - quint32 id = _id; - if (typeCreation == Valentina::FromGui) + id = data->AddGObject(new VPointF(line.p2().x(), line.p2().y(), pointName, mx, my)); + data->AddLine(basePointId, id); + } + else + { + data->UpdateGObject(id, new VPointF(line.p2().x(), line.p2().y(), pointName, mx, my)); + data->AddLine(basePointId, id); + if (parse != Document::FullParse) { - id = data->AddGObject(new VPointF(line.p2().x(), line.p2().y(), pointName, mx, my)); - data->AddLine(basePointId, id); + doc->UpdateToolData(id, data); } else { @@ -116,20 +123,20 @@ VToolEndLine* VToolEndLine::Create(const quint32 _id, const QString &pointName, doc->UpdateToolData(id, data); } } - VDrawTool::AddRecord(id, Valentina::EndLineTool, doc); - if (parse == Document::FullParse) - { - VToolEndLine *point = new VToolEndLine(doc, data, id, typeLine, formula, angle, - basePointId, typeCreation); - scene->addItem(point); - connect(point, &VToolPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); - connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPoint::SetFactor); - doc->AddTool(id, point); - doc->IncrementReferens(basePointId); - return point; - } } - return nullptr; + VDrawTool::AddRecord(id, Valentina::EndLineTool, doc); + if (parse == Document::FullParse) + { + VToolEndLine *point = new VToolEndLine(doc, data, id, typeLine, formula, angle, + basePointId, typeCreation); + scene->addItem(point); + connect(point, &VToolPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); + connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPoint::SetFactor); + doc->AddTool(id, point); + doc->IncrementReferens(basePointId); + return point; + } + return nullptr; } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vtoolnormal.cpp b/src/app/tools/drawTools/vtoolnormal.cpp index 0c3c75b3d..93f8a3efa 100644 --- a/src/app/tools/drawTools/vtoolnormal.cpp +++ b/src/app/tools/drawTools/vtoolnormal.cpp @@ -90,41 +90,39 @@ void VToolNormal::Create(const quint32 _id, const QString &formula, const quint3 { const VPointF *firstPoint = data->GeometricObject(firstPointId); const VPointF *secondPoint = data->GeometricObject(secondPointId); + Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(formula, &errorMsg); - if (errorMsg.isEmpty()) + const qreal result = cal.EvalFormula(formula); + + QPointF fPoint = VToolNormal::FindPoint(firstPoint->toQPointF(), secondPoint->toQPointF(), + qApp->toPixel(result), angle); + quint32 id = _id; + if (typeCreation == Valentina::FromGui) { - QPointF fPoint = VToolNormal::FindPoint(firstPoint->toQPointF(), secondPoint->toQPointF(), - qApp->toPixel(result), angle); - quint32 id = _id; - if (typeCreation == Valentina::FromGui) + id = data->AddGObject(new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); + data->AddLine(firstPointId, id); + } + else + { + data->UpdateGObject(id, new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); + data->AddLine(firstPointId, id); + if (parse != Document::FullParse) { - id = data->AddGObject(new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); - data->AddLine(firstPointId, id); - } - else - { - data->UpdateGObject(id, new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); - data->AddLine(firstPointId, id); - if (parse != Document::FullParse) - { - doc->UpdateToolData(id, data); - } - } - VDrawTool::AddRecord(id, Valentina::NormalTool, doc); - if (parse == Document::FullParse) - { - VToolNormal *point = new VToolNormal(doc, data, id, typeLine, formula, angle, - firstPointId, secondPointId, typeCreation); - scene->addItem(point); - connect(point, &VToolNormal::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); - connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolNormal::SetFactor); - doc->AddTool(id, point); - doc->IncrementReferens(firstPointId); - doc->IncrementReferens(secondPointId); + doc->UpdateToolData(id, data); } } + VDrawTool::AddRecord(id, Valentina::NormalTool, doc); + if (parse == Document::FullParse) + { + VToolNormal *point = new VToolNormal(doc, data, id, typeLine, formula, angle, + firstPointId, secondPointId, typeCreation); + scene->addItem(point); + connect(point, &VToolNormal::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); + connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolNormal::SetFactor); + doc->AddTool(id, point); + doc->IncrementReferens(firstPointId); + doc->IncrementReferens(secondPointId); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vtoolpointofcontact.cpp b/src/app/tools/drawTools/vtoolpointofcontact.cpp index 305ee98dd..ae836dea3 100644 --- a/src/app/tools/drawTools/vtoolpointofcontact.cpp +++ b/src/app/tools/drawTools/vtoolpointofcontact.cpp @@ -118,45 +118,42 @@ void VToolPointOfContact::Create(const quint32 _id, const QString &radius, const const VPointF *secondP = data->GeometricObject(secondPointId); Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(radius, &errorMsg); - if (errorMsg.isEmpty()) + const qreal result = cal.EvalFormula(radius); + + QPointF fPoint = VToolPointOfContact::FindPoint(qApp->toPixel(result), centerP->toQPointF(), + firstP->toQPointF(), secondP->toQPointF()); + quint32 id = _id; + if (typeCreation == Valentina::FromGui) { - QPointF fPoint = VToolPointOfContact::FindPoint(qApp->toPixel(result), centerP->toQPointF(), - firstP->toQPointF(), secondP->toQPointF()); - quint32 id = _id; - if (typeCreation == Valentina::FromGui) + id = data->AddGObject(new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); + data->AddLine(firstPointId, id); + data->AddLine(secondPointId, id); + data->AddLine(center, id); + } + else + { + data->UpdateGObject(id, new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); + data->AddLine(firstPointId, id); + data->AddLine(secondPointId, id); + data->AddLine(center, id); + if (parse != Document::FullParse) { - id = data->AddGObject(new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); - data->AddLine(firstPointId, id); - data->AddLine(secondPointId, id); - data->AddLine(center, id); - } - else - { - data->UpdateGObject(id, new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); - data->AddLine(firstPointId, id); - data->AddLine(secondPointId, id); - data->AddLine(center, id); - if (parse != Document::FullParse) - { - doc->UpdateToolData(id, data); - } - } - VDrawTool::AddRecord(id, Valentina::PointOfContact, doc); - if (parse == Document::FullParse) - { - VToolPointOfContact *point = new VToolPointOfContact(doc, data, id, radius, center, - firstPointId, secondPointId, typeCreation); - scene->addItem(point); - connect(point, &VToolPointOfContact::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); - connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPointOfContact::SetFactor); - doc->AddTool(id, point); - doc->IncrementReferens(center); - doc->IncrementReferens(firstPointId); - doc->IncrementReferens(secondPointId); + doc->UpdateToolData(id, data); } } + VDrawTool::AddRecord(id, Valentina::PointOfContact, doc); + if (parse == Document::FullParse) + { + VToolPointOfContact *point = new VToolPointOfContact(doc, data, id, radius, center, + firstPointId, secondPointId, typeCreation); + scene->addItem(point); + connect(point, &VToolPointOfContact::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); + connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolPointOfContact::SetFactor); + doc->AddTool(id, point); + doc->IncrementReferens(center); + doc->IncrementReferens(firstPointId); + doc->IncrementReferens(secondPointId); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/drawTools/vtoolshoulderpoint.cpp b/src/app/tools/drawTools/vtoolshoulderpoint.cpp index cdd026c81..b7da6c023 100644 --- a/src/app/tools/drawTools/vtoolshoulderpoint.cpp +++ b/src/app/tools/drawTools/vtoolshoulderpoint.cpp @@ -120,44 +120,41 @@ void VToolShoulderPoint::Create(const quint32 _id, const QString &formula, const const VPointF *shoulderPoint = data->GeometricObject(pShoulder); Calculator cal(data); - QString errorMsg; - qreal result = cal.eval(formula, &errorMsg); - if (errorMsg.isEmpty()) + const qreal result = cal.EvalFormula(formula); + + QPointF fPoint = VToolShoulderPoint::FindPoint(firstPoint->toQPointF(), secondPoint->toQPointF(), + shoulderPoint->toQPointF(), qApp->toPixel(result)); + quint32 id = _id; + if (typeCreation == Valentina::FromGui) { - QPointF fPoint = VToolShoulderPoint::FindPoint(firstPoint->toQPointF(), secondPoint->toQPointF(), - shoulderPoint->toQPointF(), qApp->toPixel(result)); - quint32 id = _id; - if (typeCreation == Valentina::FromGui) + id = data->AddGObject(new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); + data->AddLine(p1Line, id); + data->AddLine(p2Line, id); + } + else + { + data->UpdateGObject(id, new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); + data->AddLine(p1Line, id); + data->AddLine(p2Line, id); + if (parse != Document::FullParse) { - id = data->AddGObject(new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); - data->AddLine(p1Line, id); - data->AddLine(p2Line, id); - } - else - { - data->UpdateGObject(id, new VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); - data->AddLine(p1Line, id); - data->AddLine(p2Line, id); - if (parse != Document::FullParse) - { - doc->UpdateToolData(id, data); - } - } - VDrawTool::AddRecord(id, Valentina::ShoulderPointTool, doc); - if (parse == Document::FullParse) - { - VToolShoulderPoint *point = new VToolShoulderPoint(doc, data, id, typeLine, formula, - p1Line, p2Line, pShoulder, - typeCreation); - scene->addItem(point); - connect(point, &VToolShoulderPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); - connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolShoulderPoint::SetFactor); - doc->AddTool(id, point); - doc->IncrementReferens(p1Line); - doc->IncrementReferens(p2Line); - doc->IncrementReferens(pShoulder); + doc->UpdateToolData(id, data); } } + VDrawTool::AddRecord(id, Valentina::ShoulderPointTool, doc); + if (parse == Document::FullParse) + { + VToolShoulderPoint *point = new VToolShoulderPoint(doc, data, id, typeLine, formula, + p1Line, p2Line, pShoulder, + typeCreation); + scene->addItem(point); + connect(point, &VToolShoulderPoint::ChoosedTool, scene, &VMainGraphicsScene::ChoosedItem); + connect(scene, &VMainGraphicsScene::NewFactor, point, &VToolShoulderPoint::SetFactor); + doc->AddTool(id, point); + doc->IncrementReferens(p1Line); + doc->IncrementReferens(p2Line); + doc->IncrementReferens(pShoulder); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/widgets/vapplication.cpp b/src/app/widgets/vapplication.cpp index 43de0a2d7..132fa6835 100644 --- a/src/app/widgets/vapplication.cpp +++ b/src/app/widgets/vapplication.cpp @@ -37,6 +37,8 @@ #include #include +#include + const qreal VApplication::PrintDPI = 96.0; #define DefWidth 1.2//mm @@ -44,9 +46,16 @@ const qreal VApplication::PrintDPI = 96.0; //--------------------------------------------------------------------------------------------------------------------- VApplication::VApplication(int &argc, char **argv) : QApplication(argc, argv), _patternUnit(Valentina::Cm), _patternType(Pattern::Individual), - _widthMainLine(DefWidth), _widthHairLine(DefWidth/3.0) + _widthMainLine(DefWidth), _widthHairLine(DefWidth/3.0), measurements(QMap()), + guiTexts(QMap()), descriptions(QMap()), + variables(QMap()), functions(QMap()), + postfixOperators(QMap()) { InitLineWidth(); + InitMeasurements(); + InitVariables(); + InitFunctions(); + InitPostfixOperators(); } //--------------------------------------------------------------------------------------------------------------------- @@ -141,23 +150,7 @@ QString VApplication::pathToTables() const { if (_patternType == Pattern::Individual) { - #ifdef Q_OS_WIN - return QApplication::applicationDirPath() + QStringLiteral("/tables/individual"); - #else - #ifdef QT_DEBUG - return QApplication::applicationDirPath() + QStringLiteral("/tables/individual"); - #else - QDir dir(QApplication::applicationDirPath() + QStringLiteral("/tables/individual")); - if(dir.exist()) - { - return dir.absolutePath(); - } - else - { - return QStringLiteral("/usr/share/valentina/tables/individual"); - } - #endif - #endif + return QStringLiteral("://tables/individual/individual.vit"); } else { @@ -224,9 +217,1624 @@ void VApplication::InitLineWidth() _widthHairLine = _widthMainLine/3.0; } +//--------------------------------------------------------------------------------------------------------------------- +void VApplication::InitMeasurements() +{ + //Note. We can't use here function and variables because lupdate tool doesn't see string in variables and doesn't + //mark such string to translation. + VTranslation m; + VTranslation g; + VTranslation d; + + //================================================================================================================= + // head_and_neck + m = VTranslation::translate("Measurements", "head_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Head girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around fullest part of Head", "Full measurement description"); + + measurements.insert(headGirth_M, m); + guiTexts.insert(headGirth_M, g); + descriptions.insert(headGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "mid_neck_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Mid-neck girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around middle part of Neck", "Full measurement description"); + + measurements.insert(midNeckGirth_M, m); + guiTexts.insert(midNeckGirth_M, g); + descriptions.insert(midNeckGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_base_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Neck Base girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Neck at base", "Full measurement description"); + + measurements.insert(neckBaseGirth_M, m); + guiTexts.insert(neckBaseGirth_M, g); + descriptions.insert(neckBaseGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "head_and_neck_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Head and Neck length", "Full measurement name"); + d = VTranslation::translate("Measurements", "Vertical Distance from Crown to Nape", "Full measurement description"); + + measurements.insert(headAndNeckLength_M, m); + guiTexts.insert(headAndNeckLength_M, g); + descriptions.insert(headAndNeckLength_M, d); + //================================================================================================================= + // torso + m = VTranslation::translate("Measurements", "center_front_waist_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Center length", "Full measurement name"); + d = VTranslation::translate("Measurements", "Front Neck Center over tape at Bustline to Front Waist Center", + "Full measurement description"); + + measurements.insert(centerFrontWaistLength_M, m); + guiTexts.insert(centerFrontWaistLength_M, g); + descriptions.insert(centerFrontWaistLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "center_back_waist_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Center length", "Full measurement name"); + d = VTranslation::translate("Measurements", "Back Neck Center to Back Waist Center", + "Full measurement description"); + + measurements.insert(centerBackWaistLength_M, m); + guiTexts.insert(centerBackWaistLength_M, g); + descriptions.insert(centerBackWaistLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "shoulder_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Shoulder length", "Full measurement name"); + d = VTranslation::translate("Measurements", "NeckPoint to ShoulderTip", "Full measurement description"); + + measurements.insert(shoulderLength_M, m); + guiTexts.insert(shoulderLength_M, g); + descriptions.insert(shoulderLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "side_waist_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Side Waist length", "Full measurement name"); + d = VTranslation::translate("Measurements", "Armpit to Waist side", "Full measurement description"); + + measurements.insert(sideWaistLength_M, m); + guiTexts.insert(sideWaistLength_M, g); + descriptions.insert(sideWaistLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "trunk_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Trunk length", "Full measurement name"); + d = VTranslation::translate("Measurements", + "Around Body from middle of Shoulder length to BustPoint to Crotch up back to beginning" + " point", + "Full measurement description"); + + measurements.insert(trunkLength_M, m); + guiTexts.insert(trunkLength_M, g); + descriptions.insert(trunkLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "shoulder_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Shoulder girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Arms and Torso, at bicep level parallel to floor, with arms" + " hanging at the sides", "Full measurement description"); + + measurements.insert(shoulderGirth_M, m); + guiTexts.insert(shoulderGirth_M, g); + descriptions.insert(shoulderGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "upper_chest_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Upper Chest girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Chest at Armfold level, will be parallel to floor across back," + " will not be parallel to floor across front chest", "Full measurement description"); + + measurements.insert(upperChestGirth_M, m); + guiTexts.insert(upperChestGirth_M, g); + descriptions.insert(upperChestGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "bust_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Bust girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around fullest part of Bust, parallel to floor", + "Full measurement description"); + + measurements.insert(bustGirth_M, m); + guiTexts.insert(bustGirth_M, g); + descriptions.insert(bustGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "under_bust_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Under Bust girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Chest below the Bust, parallel to floor", + "Full measurement description"); + + measurements.insert(underBustGirth_M, m); + guiTexts.insert(underBustGirth_M, g); + descriptions.insert(underBustGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "waist_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Waist girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Tie a string around smallest part of waist, keep string tied while" + " taking meaasurements. Not usually parallel to floor for front waist or back waist.", + "Full measurement description"); + + measurements.insert(waistGirth_M, m); + guiTexts.insert(waistGirth_M, g); + descriptions.insert(waistGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "high_hip_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "HighHip girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around HighHip, parallel to floor", "Full measurement description"); + + measurements.insert(highHipGirth_M, m); + guiTexts.insert(highHipGirth_M, g); + descriptions.insert(highHipGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "hip_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Hip girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Hip, parallel to floor", "Full measurement description"); + + measurements.insert(hipGirth_M, m); + guiTexts.insert(hipGirth_M, g); + descriptions.insert(hipGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "upper_front_chest_width", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Upper Chest width", "Full measurement name"); + d = VTranslation::translate("Measurements", "Across Front UpperChest, smallest width from armscye to armscye", + "Full measurement description"); + + measurements.insert(upperFrontChestWidth_M, m); + guiTexts.insert(upperFrontChestWidth_M, g); + descriptions.insert(upperFrontChestWidth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_chest_width", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Chest width", "Full measurement name"); + d = VTranslation::translate("Measurements", "Across Front Chest, from armfold to armfold", + "Full measurement description"); + + measurements.insert(frontChestWidth_M, m); + guiTexts.insert(frontChestWidth_M, g); + descriptions.insert(frontChestWidth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "across_front_shoulder_width", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Across Shoulder width", "Full measurement name"); + d = VTranslation::translate("Measurements", "From ShoulderTip to ShoulderTip, across Front", + "Full measurement description"); + + measurements.insert(acrossFrontShoulderWidth_M, m); + guiTexts.insert(acrossFrontShoulderWidth_M, g); + descriptions.insert(acrossFrontShoulderWidth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "across_back_shoulder_width", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Across Shoulder width", "Full measurement name"); + d = VTranslation::translate("Measurements", "From ShoulderTip to ShoulderTip, across Back", + "Full measurement description"); + + measurements.insert(acrossBackShoulderWidth_M, m); + guiTexts.insert(acrossBackShoulderWidth_M,g ); + descriptions.insert(acrossBackShoulderWidth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "upper_back_width", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Upper Chest width", "Full measurement name"); + d = VTranslation::translate("Measurements", "Across Back UpperChest, smallest width from armscye to armscye", + "Full measurement description"); + + measurements.insert(upperBackWidth_M, m); + guiTexts.insert(upperBackWidth_M, g); + descriptions.insert(upperBackWidth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_width", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Chest width", "Full measurement name"); + d = VTranslation::translate("Measurements", "Across Back Chest, from armfold to armfold", + "Full measurement description"); + + measurements.insert(backWidth_M, m); + guiTexts.insert(backWidth_M, g); + descriptions.insert(backWidth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "bustpoint_to_bustpoint", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "BustPoint to BustPoint", "Full measurement name"); + d = VTranslation::translate("Measurements", "Distance between BustPoints, across Chest", + "Full measurement description"); + + measurements.insert(bustpointToBustpoint_M, m); + guiTexts.insert(bustpointToBustpoint_M, g); + descriptions.insert(bustpointToBustpoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "halter_bustpoint_to_bustpoint", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Halter Bustpoint to Bustpoint", "Full measurement name"); + d = VTranslation::translate("Measurements", "Distance from Bustpoint, behind neck, down to Bustpoint", + "Full measurement description"); + + measurements.insert(halterBustpointToBustpoint_M, m); + guiTexts.insert(halterBustpointToBustpoint_M, g); + descriptions.insert(halterBustpointToBustpoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_to_bustpoint", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "NeckPoint to BustPoint", "Full measurement name"); + d = VTranslation::translate("Measurements", "From NeckPoint to BustPoint", "Full measurement description"); + + measurements.insert(neckToBustpoint_M, m); + guiTexts.insert(neckToBustpoint_M, g); + descriptions.insert(neckToBustpoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "crotch_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Crotch length", "Full measurement name"); + d = VTranslation::translate("Measurements", "From Front Waist Center, down to crotch, up to Back Waist Center", + "Full measurement description"); + + measurements.insert(crotchLength_M, m); + guiTexts.insert(crotchLength_M, g); + descriptions.insert(crotchLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "rise_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Rise height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Sit on hard chair, measure from side waist straight down to chair" + " bottom", "Full measurement description"); + + measurements.insert(riseHeight_M, m); + guiTexts.insert(riseHeight_M, g); + descriptions.insert(riseHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "shoulder_drop", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Shoulder Drop", "Full measurement name"); + d = VTranslation::translate("Measurements", "Vertical Distance from NeckPoint level to ShoulderTip level", + "Full measurement description"); + + measurements.insert(shoulderDrop_M, m); + guiTexts.insert(shoulderDrop_M, g); + descriptions.insert(shoulderDrop_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "shoulder_slope_degrees", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Shoulder Slope degrees", "Full measurement name"); + d = VTranslation::translate("Measurements", "Degrees of angle from NeckPoint to ShoulderTip – requires goniometer", + "Full measurement description"); + + measurements.insert(shoulderSlopeDegrees_M, m); + guiTexts.insert(shoulderSlopeDegrees_M, g); + descriptions.insert(shoulderSlopeDegrees_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_shoulder_slope_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Shoulder Balance", "Full measurement name"); + d = VTranslation::translate("Measurements", "ShoulderTip to Front Waist Center", "Full measurement description"); + + measurements.insert(frontShoulderSlopeLength_M, m); + guiTexts.insert(frontShoulderSlopeLength_M, g); + descriptions.insert(frontShoulderSlopeLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_shoulder_slope_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Shoulder Balance", "Full measurement name"); + d = VTranslation::translate("Measurements", "ShoulderTip to Back Waist Center", "Full measurement description"); + + measurements.insert(backShoulderSlopeLength_M, m); + guiTexts.insert(backShoulderSlopeLength_M, g); + descriptions.insert(backShoulderSlopeLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_shoulder_to_waist_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Full Length", "Full measurement name"); + d = VTranslation::translate("Measurements", "NeckPoint straight down front chest to Waistline", + "Full measurement description"); + + measurements.insert(frontShoulderToWaistLength_M, m); + guiTexts.insert(frontShoulderToWaistLength_M, g); + descriptions.insert(frontShoulderToWaistLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_shoulder_to_waist_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Full Length", "Full measurement name"); + d = VTranslation::translate("Measurements", "Back NeckPoint straight down back chest to Waistline", + "Full measurement description"); + + measurements.insert(backShoulderToWaistLength_M, m); + guiTexts.insert(backShoulderToWaistLength_M, g); + descriptions.insert(backShoulderToWaistLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_neck_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Neck arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "NeckPoint to NeckPoint through Front Neck Center", + "Full measurement description"); + + measurements.insert(frontNeckArc_M, m); + guiTexts.insert(frontNeckArc_M, g); + descriptions.insert(frontNeckArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_neck_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Neck arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "NeckPoint to NeckPoint across Nape", "Full measurement description"); + + measurements.insert(backNeckArc_M, m); + guiTexts.insert(backNeckArc_M, g); + descriptions.insert(backNeckArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_upper_chest_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "front_upper-bust_arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "front_upper-bust_arc", "Full measurement description"); + + measurements.insert(frontUpperChestArc_M, m); + guiTexts.insert(frontUpperChestArc_M, g); + descriptions.insert(frontUpperChestArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_upper_chest_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back UpperBust arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "Back UpperBust side to side", "Full measurement description"); + + measurements.insert(backUpperChestArc_M, m); + guiTexts.insert(backUpperChestArc_M, g); + descriptions.insert(backUpperChestArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_waist_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Waist arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "Front Waist side to side", "Full measurement description"); + + measurements.insert(frontWaistArc_M, m); + guiTexts.insert(frontWaistArc_M, g); + descriptions.insert(frontWaistArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_waist_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Waist arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "Back Waist side to side", "Full measurement description"); + + measurements.insert(backWaistArc_M, m); + guiTexts.insert(backWaistArc_M, g); + descriptions.insert(backWaistArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_upper_hip_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front UpperHip arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "Front UpperHip side to side", "Full measurement description"); + + measurements.insert(frontUpperHipArc_M, m); + guiTexts.insert(frontUpperHipArc_M, g); + descriptions.insert(frontUpperHipArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_upper_hip_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back UpperHip arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "Back UpperHip side to side", "Full measurement description"); + + measurements.insert(backUpperHipArc_M, m); + guiTexts.insert(backUpperHipArc_M, g); + descriptions.insert(backUpperHipArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_hip_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Hip arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "Front Hip side to side", "Full measurement description"); + + measurements.insert(frontHipArc_M, m); + guiTexts.insert(frontHipArc_M, g); + descriptions.insert(frontHipArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_hip_arc", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Hip arc", "Full measurement name"); + d = VTranslation::translate("Measurements", "Back Hip side to side", "Full measurement description"); + + measurements.insert(backHipArc_M, m); + guiTexts.insert(backHipArc_M, g); + descriptions.insert(backHipArc_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "chest_slope", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Chest Balance", "Full measurement name"); + d = VTranslation::translate("Measurements", "NeckPoint to Front ArmfoldPoint", "Full measurement description"); + + measurements.insert(chestSlope_M, m); + guiTexts.insert(chestSlope_M, g); + descriptions.insert(chestSlope_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_slope", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Balance", "Full measurement name"); + d = VTranslation::translate("Measurements", "NeckPoint to Back ArmfoldPoint", "Full measurement description"); + + measurements.insert(backSlope_M, m); + guiTexts.insert(backSlope_M, g); + descriptions.insert(backSlope_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_waist_slope", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front Waist Balance", "Full measurement name"); + d = VTranslation::translate("Measurements", "NeckPoint across Front Chest to Waist side", + "Full measurement description"); + + measurements.insert(frontWaistSlope_M, m); + guiTexts.insert(frontWaistSlope_M, g); + descriptions.insert(frontWaistSlope_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "back_waist_slope", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Back Waist Balance", "Full measurement name"); + d = VTranslation::translate("Measurements", "NeckPoint across Back Chest to Waist side", + "Full measurement description"); + + measurements.insert(backWaistSlope_M, m); + guiTexts.insert(backWaistSlope_M, g); + descriptions.insert(backWaistSlope_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_neck_to_upper_chest_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front UpperChest height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Front Neck Center straight down to UpperChest line", + "Full measurement description"); + + measurements.insert(frontNeckToUpperChestHeight_M, m); + guiTexts.insert(frontNeckToUpperChestHeight_M, g); + descriptions.insert(frontNeckToUpperChestHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_neck_to_bust_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Bust height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Front Neck Center straight down to Bust line", + "Full measurement description"); + + measurements.insert(frontNeckToBustHeight_M, m); + guiTexts.insert(frontNeckToBustHeight_M, g); + descriptions.insert(frontNeckToBustHeight_M, d); + //================================================================================================================= + // arm + m = VTranslation::translate("Measurements", "armscye_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Armscye Girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Armscye", "Full measurement description"); + + measurements.insert(armscyeGirth_M, m); + guiTexts.insert(armscyeGirth_M, g); + descriptions.insert(armscyeGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "elbow_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Elbow Girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Elbow with elbow bent", "Full measurement description"); + + measurements.insert(elbowGirth_M, m); + guiTexts.insert(elbowGirth_M, g); + descriptions.insert(elbowGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "upper_arm_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Upperarm Girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around UpperArm", "Full measurement description"); + + measurements.insert(upperArmGirth_M, m); + guiTexts.insert(upperArmGirth_M, g); + descriptions.insert(upperArmGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "wrist_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Wrist girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Wrist", "Full measurement description"); + + measurements.insert(wristGirth_M, m); + guiTexts.insert(wristGirth_M, g); + descriptions.insert(wristGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "scye_depth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Armscye depth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Nape straight down to UnderBust line (same as Back UpperBust height)", + "Full measurement description"); + + measurements.insert(scyeDepth_M, m); + guiTexts.insert(scyeDepth_M, g); + descriptions.insert(scyeDepth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "shoulder_and_arm_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Shoulder and Arm length", "Full measurement name"); + d = VTranslation::translate("Measurements", "NeckPoint to ShoulderTip to Wrist, with elbow bent and hand on hip", + "Full measurement description"); + + measurements.insert(shoulderAndArmLength_M, m); + guiTexts.insert(shoulderAndArmLength_M, g); + descriptions.insert(shoulderAndArmLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "underarm_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Underarm length", "Full measurement name"); + d = VTranslation::translate("Measurements", "Armpit to Wrist, with arm straight and hanging at side", + "Full measurement description"); + + measurements.insert(underarmLength_M, m); + guiTexts.insert(underarmLength_M, g); + descriptions.insert(underarmLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "cervicale_to_wrist_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Nape to wrist length", "Full measurement name"); + d = VTranslation::translate("Measurements", "Nape to Wrist, with elbow bent and hand on hip", + "Full measurement description"); + + measurements.insert(cervicaleToWristLength_M, m); + guiTexts.insert(cervicaleToWristLength_M, g); + descriptions.insert(cervicaleToWristLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "shoulder_to_elbow_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Elbow length", "Full measurement name"); + d = VTranslation::translate("Measurements", "ShoulderTip to Elbow, with elbow bent and hand on hip", + "Full measurement description"); + + measurements.insert(shoulderToElbowLength_M, m); + guiTexts.insert(shoulderToElbowLength_M, g); + descriptions.insert(shoulderToElbowLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "arm_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Arm length", "Full measurement name"); + d = VTranslation::translate("Measurements", "ShoulderTip to Wrist, with elbow bent and hand on hip", + "Full measurement description"); + + measurements.insert(armLength_M, m); + guiTexts.insert(armLength_M, g); + descriptions.insert(armLength_M, d); + //================================================================================================================= + // hand + m = VTranslation::translate("Measurements", "hand_width", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Hand width", "Full measurement name"); + d = VTranslation::translate("Measurements", "Hand side to side", "Full measurement description"); + + measurements.insert(handWidth_M, m); + guiTexts.insert(handWidth_M, g); + descriptions.insert(handWidth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "hand_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Hand length", "Full measurement name"); + d = VTranslation::translate("Measurements", "Hand Middle Finger tip to wrist", "Full measurement description"); + + measurements.insert(handLength_M, m); + guiTexts.insert(handLength_M, g); + descriptions.insert(handLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "hand_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Hand girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Hand", "Full measurement description"); + + measurements.insert(handGirth_M, m); + guiTexts.insert(handGirth_M, g); + descriptions.insert(handGirth_M, d); + //================================================================================================================= + // leg + m = VTranslation::translate("Measurements", "thigh_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Thigh girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Thigh", "Full measurement description"); + + measurements.insert(thighGirth_M, m); + guiTexts.insert(thighGirth_M, g); + descriptions.insert(thighGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "mid_thigh_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Midthigh girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around MidThigh", "Full measurement description"); + + measurements.insert(midThighGirth_M, m); + guiTexts.insert(midThighGirth_M, g); + descriptions.insert(midThighGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "knee_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Knee girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Knee", "Full measurement description"); + + measurements.insert(kneeGirth_M, m); + guiTexts.insert(kneeGirth_M, g); + descriptions.insert(kneeGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "calf_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Calf girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Calf", "Full measurement description"); + + measurements.insert(calfGirth_M, m); + guiTexts.insert(calfGirth_M, g); + descriptions.insert(calfGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "ankle_girth", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Ankle girth", "Full measurement name"); + d = VTranslation::translate("Measurements", "Around Ankle", "Full measurement description"); + + measurements.insert(ankleGirth_M, m); + guiTexts.insert(ankleGirth_M, g); + descriptions.insert(ankleGirth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "knee_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Knee height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Knee to Floor", "Full measurement description"); + + measurements.insert(kneeHeight_M, m); + guiTexts.insert(kneeHeight_M, g); + descriptions.insert(kneeHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "ankle_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Ankle height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Ankle to Floor", "Full measurement description"); + + measurements.insert(ankleHeight_M, m); + guiTexts.insert(ankleHeight_M, g); + descriptions.insert(ankleHeight_M, d); + //================================================================================================================= + // foot + m = VTranslation::translate("Measurements", "foot_width", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Foot width", "Full measurement name"); + d = VTranslation::translate("Measurements", "Widest part of Foot side to side", "Full measurement description"); + + measurements.insert(footWidth_M, m); + guiTexts.insert(footWidth_M, g); + descriptions.insert(footWidth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "foot_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Foot length", "Full measurement name"); + d = VTranslation::translate("Measurements", "Tip of Longest Toe straight to back of heel", + "Full measurement description"); + + measurements.insert(footLength_M, m); + guiTexts.insert(footLength_M, g); + descriptions.insert(footLength_M, d); + //================================================================================================================= + // heights + m = VTranslation::translate("Measurements", "height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Total Height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Top of head to floor", "Full measurement description"); + + measurements.insert(height_M, m); + guiTexts.insert(height_M, g); + descriptions.insert(height_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "cervicale_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Nape height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Nape to Floor", "Full measurement description"); + + measurements.insert(cervicaleHeight_M, m); + guiTexts.insert(cervicaleHeight_M, g); + descriptions.insert(cervicaleHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "cervicale_to_knee_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Nape to knee height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Nape to Knee", "Full measurement description"); + + measurements.insert(cervicaleToKneeHeight_M, m); + guiTexts.insert(cervicaleToKneeHeight_M, g); + descriptions.insert(cervicaleToKneeHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "waist_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Waist height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Waist side to floor", "Full measurement description"); + + measurements.insert(waistHeight_M, m); + guiTexts.insert(waistHeight_M, g); + descriptions.insert(waistHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "high_hip_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "HighHip height", "Full measurement name"); + d = VTranslation::translate("Measurements", "HighHip side to Floor", "Full measurement description"); + + measurements.insert(highHipHeight_M, m); + guiTexts.insert(highHipHeight_M, g); + descriptions.insert(highHipHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "hip_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Hip height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Hip side to Floor", "Full measurement description"); + + measurements.insert(hipHeight_M, m); + guiTexts.insert(hipHeight_M, g); + descriptions.insert(hipHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "waist_to_hip_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Waist to Hip height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Waist side to Hip", "Full measurement description"); + + measurements.insert(waistToHipHeight_M, m); + guiTexts.insert(waistToHipHeight_M, g); + descriptions.insert(waistToHipHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "waist_to_knee_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Waist to Knee height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Waist side to Knee", "Full measurement description"); + + measurements.insert(waistToKneeHeight_M, m); + guiTexts.insert(waistToKneeHeight_M, g); + descriptions.insert(waistToKneeHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "crotch_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Crotch height/Inseam", "Full measurement name"); + d = VTranslation::translate("Measurements", "Crotch to Floor along inside leg", "Full measurement description"); + + measurements.insert(crotchHeight_M, m); + guiTexts.insert(crotchHeight_M, g); + descriptions.insert(crotchHeight_M, d); + //================================================================================================================= + //extended + m = VTranslation::translate("Measurements", "size", "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Size", "Full measurement name"); + d = VTranslation::translate("Measurements", "Size", "Full measurement description"); + + measurements.insert(size_M, m); + guiTexts.insert(size_M, g); + descriptions.insert(size_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "height_front_neck_base_point", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Height front neck base point", "Full measurement name"); + d = VTranslation::translate("Measurements", "Height of the point base of the neck in front", + "Full measurement description"); + + measurements.insert(heightFrontNeckBasePoint_M, m); + guiTexts.insert(heightFrontNeckBasePoint_M, g); + descriptions.insert(heightFrontNeckBasePoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "height_base_neck_side_point", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Height base neck side point", "Full measurement name"); + d = VTranslation::translate("Measurements", "Height of the base of the neck side point", + "Full measurement description"); + + measurements.insert(heightBaseNeckSidePoint_M, m); + guiTexts.insert(heightBaseNeckSidePoint_M, g); + descriptions.insert(heightBaseNeckSidePoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "height_shoulder_point", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Height shoulder point", "Full measurement name"); + d = VTranslation::translate("Measurements", "The height of the shoulder point", "Full measurement description"); + + measurements.insert(heightShoulderPoint_M, m); + guiTexts.insert(heightShoulderPoint_M, g); + descriptions.insert(heightShoulderPoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "height_nipple_point", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Height nipple point", "Full measurement name"); + d = VTranslation::translate("Measurements", "Height nipple point", "Full measurement description"); + + measurements.insert(heightNipplePoint_M, m); + guiTexts.insert(heightNipplePoint_M, g); + descriptions.insert(heightNipplePoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "height_back_angle_axilla", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Height back angle axilla", "Full measurement name"); + d = VTranslation::translate("Measurements", "Height back angle axilla", "Full measurement description"); + + measurements.insert(heightBackAngleAxilla_M, m); + guiTexts.insert(heightBackAngleAxilla_M, g); + descriptions.insert(heightBackAngleAxilla_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "height_scapular_point", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Height scapular point", "Full measurement name"); + d = VTranslation::translate("Measurements", "Height scapular point", "Full measurement description"); + + measurements.insert(heightScapularPoint_M, m); + guiTexts.insert(heightScapularPoint_M, g); + descriptions.insert(heightScapularPoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "height_under_buttock_folds", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Height under buttock folds", "Full measurement name"); + d = VTranslation::translate("Measurements", "Height under buttock folds", "Full measurement description"); + + measurements.insert(heightUnderButtockFolds_M, m); + guiTexts.insert(heightUnderButtockFolds_M, g); + descriptions.insert(heightUnderButtockFolds_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "hips_excluding_protruding_abdomen", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Hips excluding protruding abdomen", "Full measurement name"); + d = VTranslation::translate("Measurements", "Hips excluding protruding abdomen", "Full measurement description"); + + measurements.insert(hipsExcludingProtrudingAbdomen_M, m); + guiTexts.insert(hipsExcludingProtrudingAbdomen_M, g); + descriptions.insert(hipsExcludingProtrudingAbdomen_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "girth_foot_instep", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Girth foot instep", "Full measurement name"); + d = VTranslation::translate("Measurements", "Girth foot instep", "Full measurement description"); + + measurements.insert(girthFootInstep_M, m); + guiTexts.insert(girthFootInstep_M, g); + descriptions.insert(girthFootInstep_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "side_waist_to_floor", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Side waist to floor", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the side waist to floor", + "Full measurement description"); + + measurements.insert(sideWaistToFloor_M, m); + guiTexts.insert(sideWaistToFloor_M, g); + descriptions.insert(sideWaistToFloor_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_waist_to_floor", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front waist to floor", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the front waist to floor", + "Full measurement description"); + + measurements.insert(frontWaistToFloor_M, m); + guiTexts.insert(frontWaistToFloor_M, g); + descriptions.insert(frontWaistToFloor_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "arc_through_groin_area", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Arc through groin area", "Full measurement name"); + d = VTranslation::translate("Measurements", "Arc through groin area", "Full measurement description"); + + measurements.insert(arcThroughGroinArea_M, m); + guiTexts.insert(arcThroughGroinArea_M, g); + descriptions.insert(arcThroughGroinArea_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "waist_to_plane_seat", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Waist to plane seat", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the waist to the plane seat", + "Full measurement description"); + + measurements.insert(waistToPlaneSeat_M, m); + guiTexts.insert(waistToPlaneSeat_M, g); + descriptions.insert(waistToPlaneSeat_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_to_radial_point", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Neck to radial point", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the base of the neck to the side of the radial" + " point", "Full measurement description"); + + measurements.insert(neckToRadialPoint_M, m); + guiTexts.insert(neckToRadialPoint_M, g); + descriptions.insert(neckToRadialPoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_to_third_finger", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Neck to third finger", "Full measurement name"); + d = VTranslation::translate("Measurements", "Distance from the base of the neck side point to the end of the third" + " finger", "Full measurement description"); + + measurements.insert(neckToThirdFinger_M, m); + guiTexts.insert(neckToThirdFinger_M, g); + descriptions.insert(neckToThirdFinger_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_to_first_line_chest_circumference", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Neck to first line chest circumference", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the base of the neck to the side of the first line" + " in front of chest circumference", "Full measurement description"); + + measurements.insert(neckToFirstLineChestCircumference_M, m); + guiTexts.insert(neckToFirstLineChestCircumference_M, g); + descriptions.insert(neckToFirstLineChestCircumference_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_waist_length", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front waist length", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the base of the neck to the waist side front (waist" + " length in the front)", "Full measurement description"); + + measurements.insert(frontWaistLength_M, m); + guiTexts.insert(frontWaistLength_M, g); + descriptions.insert(frontWaistLength_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "arc_through_shoulder_joint", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Arc through shoulder joint", "Full measurement name"); + d = VTranslation::translate("Measurements", "Arc through the highest point of the shoulder joint", + "Full measurement description"); + + measurements.insert(arcThroughShoulderJoint_M, m); + guiTexts.insert(arcThroughShoulderJoint_M, g); + descriptions.insert(arcThroughShoulderJoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_to_back_line_chest_circumference", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Neck to back line chest circumference", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the base of the neck to the back line of chest" + " circumference of the first and the second based on ledge vanes", + "Full measurement description"); + + measurements.insert(neckToBackLineChestCircumference_M, m); + guiTexts.insert(neckToBackLineChestCircumference_M, g); + descriptions.insert(neckToBackLineChestCircumference_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "waist_to_neck_side", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Waist to neck side", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the waist to the back base of the neck side point", + "Full measurement description"); + + measurements.insert(waistToNeckSide_M, m); + guiTexts.insert(waistToNeckSide_M, g); + descriptions.insert(waistToNeckSide_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "arc_length_upper_body", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Arc length upper body", "Full measurement name"); + d = VTranslation::translate("Measurements", "Arc length of the upper body through the base of the neck side point", + "Full measurement description"); + + measurements.insert(arcLengthUpperBody_M, m); + guiTexts.insert(arcLengthUpperBody_M, g); + descriptions.insert(arcLengthUpperBody_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "chest_width", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Chest width", "Full measurement name"); + d = VTranslation::translate("Measurements", "Chest width", "Full measurement description"); + + measurements.insert(chestWidth_M, m); + guiTexts.insert(chestWidth_M, g); + descriptions.insert(chestWidth_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "anteroposterior_diameter_hands", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Anteroposterior diameter hands", "Full measurement name"); + d = VTranslation::translate("Measurements", "Anteroposterior diameter of the hands", + "Full measurement description"); + + measurements.insert(anteroposteriorDiameterHands_M, m); + guiTexts.insert(anteroposteriorDiameterHands_M, g); + descriptions.insert(anteroposteriorDiameterHands_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "height_clavicular_point", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Height clavicular point", "Full measurement name"); + d = VTranslation::translate("Measurements", "Height clavicular point", "Full measurement description"); + + measurements.insert(heightClavicularPoint_M, m); + guiTexts.insert(heightClavicularPoint_M, g); + descriptions.insert(heightClavicularPoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "height_armhole_slash", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Height armhole slash", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the point to the cervical level of the posterior" + " angle of the front armpit (underarm height oblique)", "Full measurement description"); + + measurements.insert(heightArmholeSlash_M, m); + guiTexts.insert(heightArmholeSlash_M, g); + descriptions.insert(heightArmholeSlash_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "slash_shoulder_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Slash shoulder height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Slash shoulder height", "Full measurement description"); + + measurements.insert(slashShoulderHeight_M, m); + guiTexts.insert(slashShoulderHeight_M, g); + descriptions.insert(slashShoulderHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "half_girth_neck", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Half girth neck", "Full measurement name"); + d = VTranslation::translate("Measurements", "Half girth neck", "Full measurement description"); + + measurements.insert(halfGirthNeck_M, m); + guiTexts.insert(halfGirthNeck_M, g); + descriptions.insert(halfGirthNeck_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "half_girth_neck_for_shirts", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Half girth neck for shirts", "Full measurement name"); + d = VTranslation::translate("Measurements", "Half girth neck for shirts", "Full measurement description"); + + measurements.insert(halfGirthNeckForShirts_M, m); + guiTexts.insert(halfGirthNeckForShirts_M, g); + descriptions.insert(halfGirthNeckForShirts_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "half_girth_chest_first", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Half girth chest first", "Full measurement name"); + d = VTranslation::translate("Measurements", "Half girth chest first", "Full measurement description"); + + measurements.insert(halfGirthChestFirst_M, m); + guiTexts.insert(halfGirthChestFirst_M, g); + descriptions.insert(halfGirthChestFirst_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "half_girth_chest_second", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Half girth chest second", "Full measurement name"); + d = VTranslation::translate("Measurements", "Half girth chest second", "Full measurement description"); + + measurements.insert(halfGirthChestSecond_M, m); + guiTexts.insert(halfGirthChestSecond_M, g); + descriptions.insert(halfGirthChestSecond_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "half_girth_chest_third", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Half girth chest third", "Full measurement name"); + d = VTranslation::translate("Measurements", "Half girth chest third", "Full measurement description"); + + measurements.insert(halfGirthChestThird_M, m); + guiTexts.insert(halfGirthChestThird_M, g); + descriptions.insert(halfGirthChestThird_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "half_girth_waist", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Half girth waist", "Full measurement name"); + d = VTranslation::translate("Measurements", "Half girth waist", "Full measurement description"); + + measurements.insert(halfGirthWaist_M, m); + guiTexts.insert(halfGirthWaist_M, g); + descriptions.insert(halfGirthWaist_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "half_girth_hips_considering_protruding_abdomen", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Half girth hips considering protruding abdomen", + "Full measurement name"); + d = VTranslation::translate("Measurements", "Half girth hips considering protruding abdomen", + "Full measurement description"); + + measurements.insert(halfGirthHipsConsideringProtrudingAbdomen_M, m); + guiTexts.insert(halfGirthHipsConsideringProtrudingAbdomen_M, g); + descriptions.insert(halfGirthHipsConsideringProtrudingAbdomen_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "half_girth_hips_excluding_protruding_abdomen", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Half girth hips excluding protruding abdomen", + "Full measurement name"); + d = VTranslation::translate("Measurements", "Half girth hips excluding protruding abdomen", + "Full measurement description"); + + measurements.insert(halfGirthHipsExcludingProtrudingAbdomen_M, m); + guiTexts.insert(halfGirthHipsExcludingProtrudingAbdomen_M, g); + descriptions.insert(halfGirthHipsExcludingProtrudingAbdomen_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "girth_knee_flexed_feet", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Girth knee flexed feet", "Full measurement name"); + d = VTranslation::translate("Measurements", "Girth knee flexed feet", "Full measurement description"); + + measurements.insert(girthKneeFlexedFeet_M, m); + guiTexts.insert(girthKneeFlexedFeet_M, g); + descriptions.insert(girthKneeFlexedFeet_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_transverse_diameter", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Neck transverse diameter", "Full measurement name"); + d = VTranslation::translate("Measurements", "Neck transverse diameter", "Full measurement description"); + + measurements.insert(neckTransverseDiameter_M, m); + guiTexts.insert(neckTransverseDiameter_M, g); + descriptions.insert(neckTransverseDiameter_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "front_slash_shoulder_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Front slash shoulder height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Front slash shoulder height", "Full measurement description"); + + measurements.insert(frontSlashShoulderHeight_M, m); + guiTexts.insert(frontSlashShoulderHeight_M, g); + descriptions.insert(frontSlashShoulderHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_to_front_waist_line", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Neck to front waist line", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the base of the neck to the waist line front", + "Full measurement description"); + + measurements.insert(neckToFrontWaistLine_M, m); + guiTexts.insert(neckToFrontWaistLine_M, g); + descriptions.insert(neckToFrontWaistLine_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "hand_vertical_diameter", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Hand vertical diameter", "Full measurement name"); + d = VTranslation::translate("Measurements", "Hand vertical diameter", "Full measurement description"); + + measurements.insert(handVerticalDiameter_M, m); + guiTexts.insert(handVerticalDiameter_M, g); + descriptions.insert(handVerticalDiameter_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_to_knee_point", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Neck to knee point", "Full measurement name"); + d = VTranslation::translate("Measurements", "Distance from neck to knee point", "Full measurement description"); + + measurements.insert(neckToKneePoint_M, m); + guiTexts.insert(neckToKneePoint_M, g); + descriptions.insert(neckToKneePoint_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "waist_to_knee", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Waist to knee", "Full measurement name"); + d = VTranslation::translate("Measurements", "The distance from the waist to the knee", + "Full measurement description"); + + measurements.insert(waistToKnee_M, m); + guiTexts.insert(waistToKnee_M, g); + descriptions.insert(waistToKnee_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "shoulder_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Shoulder height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Shoulder height", "Full measurement description"); + + measurements.insert(shoulderHeight_M, m); + guiTexts.insert(shoulderHeight_M, g); + descriptions.insert(shoulderHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "head_height", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Head height", "Full measurement name"); + d = VTranslation::translate("Measurements", "Head height", "Full measurement description"); + + measurements.insert(headHeight_M, m); + guiTexts.insert(headHeight_M, g); + descriptions.insert(headHeight_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "body_position", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Body position", "Full measurement name"); + d = VTranslation::translate("Measurements", "Body position", "Full measurement description"); + + measurements.insert(bodyPosition_M, m); + guiTexts.insert(bodyPosition_M, g); + descriptions.insert(bodyPosition_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "arc_behind_shoulder_girdle", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Arc behind shoulder girdle", "Full measurement name"); + d = VTranslation::translate("Measurements", "Arc behind the shoulder girdle", "Full measurement description"); + + measurements.insert(arcBehindShoulderGirdle_M, m); + guiTexts.insert(arcBehindShoulderGirdle_M, g); + descriptions.insert(arcBehindShoulderGirdle_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "neck_to_neck_base", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Neck to neck base", "Full measurement name"); + d = VTranslation::translate("Measurements", "Distance from neck point to point on the base of the neck side neck" + " girth measurement line", "Full measurement description"); + + measurements.insert(neckToNeckBase_M, m); + guiTexts.insert(neckToNeckBase_M, g); + descriptions.insert(neckToNeckBase_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "depth_waist_first", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Depth waist first", "Full measurement name"); + d = VTranslation::translate("Measurements", "Depth waist first", "Full measurement description"); + + measurements.insert(depthWaistFirst_M, m); + guiTexts.insert(depthWaistFirst_M, g); + descriptions.insert(depthWaistFirst_M, d); + //================================================================================================================= + m = VTranslation::translate("Measurements", "depth_waist_second", + "Short measurement name. Don't use math symbols in name!!!!"); + g = VTranslation::translate("Measurements", "Depth waist second", "Full measurement name"); + d = VTranslation::translate("Measurements", "Depth waist second", "Full measurement description"); + + measurements.insert(depthWaistSecond_M, m); + guiTexts.insert(depthWaistSecond_M, g); + descriptions.insert(depthWaistSecond_M, d); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VApplication::InitVariables() +{ + variables.insert(line_, VTranslation::translate("Variables", "Line_", "Left symbol _ in name")); + variables.insert(angleLine_, VTranslation::translate("Variables", "AngleLine_", "Left symbol _ in name")); + variables.insert(arc_, VTranslation::translate("Variables", "Arc_", "Left symbol _ in name")); + variables.insert(spl_, VTranslation::translate("Variables", "Spl_", "Left symbol _ in name")); + variables.insert(splPath, VTranslation::translate("Variables", "SplPath")); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VApplication::InitFunctions() +{ + functions.insert(sin_F, VTranslation::translate("Functions", "sin", "sine function")); + functions.insert(cos_F, VTranslation::translate("Functions", "cos", "cosine function")); + functions.insert(tan_F, VTranslation::translate("Functions", "tan", "tangens function")); + functions.insert(asin_F, VTranslation::translate("Functions", "asin", "arcus sine function")); + functions.insert(acos_F, VTranslation::translate("Functions", "acos", "arcus cosine function")); + functions.insert(atan_F, VTranslation::translate("Functions", "atan", "arcus tangens function")); + functions.insert(sinh_F, VTranslation::translate("Functions", "sinh", "hyperbolic sine function")); + functions.insert(cosh_F, VTranslation::translate("Functions", "cosh", "hyperbolic cosine")); + functions.insert(tanh_F, VTranslation::translate("Functions", "tanh", "hyperbolic tangens function")); + functions.insert(asinh_F, VTranslation::translate("Functions", "asinh", "hyperbolic arcus sine function")); + functions.insert(acosh_F, VTranslation::translate("Functions", "acosh", "hyperbolic arcus tangens function")); + functions.insert(atanh_F, VTranslation::translate("Functions", "atanh", "hyperbolic arcur tangens function")); + functions.insert(log2_F, VTranslation::translate("Functions", "log2", "logarithm to the base 2")); + functions.insert(log10_F, VTranslation::translate("Functions", "log10", "logarithm to the base 10")); + functions.insert(log_F, VTranslation::translate("Functions", "log", "logarithm to the base 10")); + functions.insert(ln_F, VTranslation::translate("Functions", "ln", "logarithm to base e (2.71828...)")); + functions.insert(exp_F, VTranslation::translate("Functions", "exp", "e raised to the power of x")); + functions.insert(sqrt_F, VTranslation::translate("Functions", "sqrt", "square root of a value")); + functions.insert(sign_F, VTranslation::translate("Functions", "sign", "sign function -1 if x<0; 1 if x>0")); + functions.insert(rint_F, VTranslation::translate("Functions", "rint", "round to nearest integer")); + functions.insert(abs_F, VTranslation::translate("Functions", "abs", "absolute value")); + functions.insert(min_F, VTranslation::translate("Functions", "min", "min of all arguments")); + functions.insert(max_F, VTranslation::translate("Functions", "max", "max of all arguments")); + functions.insert(sum_F, VTranslation::translate("Functions", "sum", "sum of all arguments")); + functions.insert(avg_F, VTranslation::translate("Functions", "avg", "mean value of all arguments")); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VApplication::InitPostfixOperators() +{ + postfixOperators.insert(cm_Oprt, VTranslation::translate("PostfixOperators", "cm", "centimeter")); + postfixOperators.insert(mm_Oprt, VTranslation::translate("PostfixOperators", "mm", "millimeter")); + postfixOperators.insert(in_Oprt, VTranslation::translate("PostfixOperators", "in", "inch")); +} + +//--------------------------------------------------------------------------------------------------------------------- +bool VApplication::MeasurementsFromUser(QString &newFormula, int position, const QString &token) const +{ + QMap::const_iterator i = measurements.constBegin(); + while (i != measurements.constEnd()) + { + if(token == i.value().translate()) + { + newFormula.replace(position, token.length(), i.key()); + return true; + } + ++i; + } + return false; +} + +//--------------------------------------------------------------------------------------------------------------------- +bool VApplication::VariablesFromUser(QString &newFormula, int position, const QString &token) const +{ + QMap::const_iterator i = variables.constBegin(); + while (i != variables.constEnd()) + { + if(token.indexOf( i.value().translate() ) == 0) + { + newFormula.replace(position, i.value().translate().length(), i.key()); + return true; + } + ++i; + } + return false; +} + +//--------------------------------------------------------------------------------------------------------------------- +bool VApplication::PostfixOperatorsFromUser(QString &newFormula, int position, const QString &token) const +{ + QMap::const_iterator i = postfixOperators.constBegin(); + while (i != postfixOperators.constEnd()) + { + if(token == i.value().translate()) + { + newFormula.replace(position, token.length(), i.key()); + return true; + } + ++i; + } + return false; +} + +//--------------------------------------------------------------------------------------------------------------------- +bool VApplication::FunctionsFromUser(QString &newFormula, int position, const QString &token) const +{ + QMap::const_iterator i = functions.constBegin(); + while (i != functions.constEnd()) + { + if(token == i.value().translate()) + { + newFormula.replace(position, token.length(), i.key()); + return true; + } + ++i; + } + return false; +} + +//--------------------------------------------------------------------------------------------------------------------- +bool VApplication::VariablesToUser(QString &newFormula, int position, const QString &token) const +{ + QMap::const_iterator i = variables.constBegin(); + while (i != variables.constEnd()) + { + if(token.indexOf( i.key() ) == 0) + { + newFormula.replace(position, i.key().length(), i.value().translate()); + return true; + } + ++i; + } + return false; +} + //--------------------------------------------------------------------------------------------------------------------- void VApplication::setPatternUnit(const Valentina::Units &patternUnit) { _patternUnit = patternUnit; InitLineWidth(); } + +//--------------------------------------------------------------------------------------------------------------------- +QString VApplication::VarToUser(const QString &var) const +{ + if (measurements.contains(var)) + { + return measurements.value(var).translate(); + } + + if (functions.contains(var)) + { + return functions.value(var).translate(); + } + + if (postfixOperators.contains(var)) + { + return postfixOperators.value(var).translate(); + } + + QString newVar = var; + if(VariablesToUser(newVar, 0, var)) + { + return newVar; + } + return newVar; +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VApplication::VarFromUser(const QString &var) const +{ + QString newVar = var; + if(MeasurementsFromUser(newVar, 0, var)) + { + return newVar; + } + + if(VariablesFromUser(newVar, 0, var)) + { + return newVar; + } + + if(PostfixOperatorsFromUser(newVar, 0, var)) + { + return newVar; + } + + if(FunctionsFromUser(newVar, 0, var)) + { + return newVar; + } + return newVar; +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VApplication::GuiText(const QString &measurement) const +{ + return guiTexts.value(measurement).translate(); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VApplication::Description(const QString &measurement) const +{ + return descriptions.value(measurement).translate(); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VApplication::Variable(const QString &name) const +{ + return variables.value(name).translate(); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VApplication::Function(const QString &name) const +{ + return functions.value(name).translate(); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VApplication::PostfixOperator(const QString &name) const +{ + return postfixOperators.value(name).translate(); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VApplication::FormulaFromUser(const QString &formula) +{ + QString newFormula = formula; + + QMap tokens; + QMap numbers; + try + { + Calculator cal(formula); + tokens = cal.GetTokens(); + numbers = cal.GetNumbers(); + } + catch(qmu::QmuParserError &e) + { + qDebug() << "\nMath parser error:\n" + << "--------------------------------------\n" + << "Message: " << e.GetMsg() << "\n" + << "Expression: " << e.GetExpr() << "\n" + << "--------------------------------------"; + return newFormula; + } + + QMap::const_iterator i = tokens.constBegin(); + while (i != tokens.constEnd()) + { + if(MeasurementsFromUser(newFormula, i.key(), i.value())) + { + ++i; + continue; + } + + if(VariablesFromUser(newFormula, i.key(), i.value())) + { + ++i; + continue; + } + + if(PostfixOperatorsFromUser(newFormula, i.key(), i.value())) + { + ++i; + continue; + } + + if(FunctionsFromUser(newFormula, i.key(), i.value())) + { + ++i; + continue; + } + ++i; + } + + QLocale loc = QLocale(); + if(loc != QLocale(QLocale::C)) + { + QMap::const_iterator i = numbers.constBegin(); + while (i != numbers.constEnd()) + { + QLocale::setDefault(QLocale::C); + bool ok = false; + qreal d = QString(i.value()).toDouble(&ok); + if(ok == false) + { + qDebug()<<"Can't convert to double token"< tokens; + QMap numbers; + try + { + Calculator cal(formula); + tokens = cal.GetTokens(); + numbers = cal.GetNumbers(); + } + catch (qmu::QmuParserError &e) + { + qDebug() << "\nMath parser error:\n" + << "--------------------------------------\n" + << "Message: " << e.GetMsg() << "\n" + << "Expression: " << e.GetExpr() << "\n" + << "--------------------------------------"; + return newFormula; + } + + QMap::const_iterator i = tokens.constBegin(); + while (i != tokens.constEnd()) + { + if (measurements.contains(i.value())) + { + newFormula.replace(i.key(), i.value().length(), measurements.value(i.value()).translate()); + ++i; + continue; + } + + if (functions.contains(i.value())) + { + newFormula.replace(i.key(), i.value().length(), functions.value(i.value()).translate()); + ++i; + continue; + } + + if (postfixOperators.contains(i.value())) + { + newFormula.replace(i.key(), i.value().length(), postfixOperators.value(i.value()).translate()); + ++i; + continue; + } + + if(VariablesToUser(newFormula, i.key(), i.value())) + { + ++i; + continue; + } + + } + + QLocale loc = QLocale(); + if(loc != QLocale::C) + { + QMap::const_iterator i = numbers.constBegin(); + while (i != numbers.constEnd()) + { + bool ok = false; + qreal d = QString(i.value()).toDouble(&ok); + if(ok == false) + { + qDebug()<<"Can't convert to double token"< #include "../options.h" +#include "vtranslation.h" class VApplication; @@ -71,12 +72,36 @@ public: QString pathToTables() const; qreal widthMainLine() const; qreal widthHairLine() const; + QString VarToUser(const QString &var) const; + QString VarFromUser(const QString &var) const; + QString GuiText(const QString &measurement) const; + QString Description(const QString &measurement) const; + QString Variable(const QString &name) const; + QString Function(const QString &name) const; + QString PostfixOperator(const QString &name) const; + QString FormulaFromUser(const QString &formula); + QString FormulaToUser(const QString &formula); private: Valentina::Units _patternUnit; Pattern::Measurements _patternType; qreal _widthMainLine; qreal _widthHairLine; + QMap measurements; + QMap guiTexts; + QMap descriptions; + QMap variables; + QMap functions; + QMap postfixOperators; void InitLineWidth(); + void InitMeasurements(); + void InitVariables(); + void InitFunctions(); + void InitPostfixOperators(); + bool MeasurementsFromUser(QString &newFormula, int position, const QString &token) const; + bool VariablesFromUser(QString &newFormula, int position, const QString &token) const; + bool PostfixOperatorsFromUser(QString &newFormula, int position, const QString &token) const; + bool FunctionsFromUser(QString &newFormula, int position, const QString &token) const; + bool VariablesToUser(QString &newFormula, int position, const QString &token) const; }; inline Valentina::Units VApplication::patternUnit() const diff --git a/src/app/widgets/vtranslation.cpp b/src/app/widgets/vtranslation.cpp new file mode 100644 index 000000000..b616d966f --- /dev/null +++ b/src/app/widgets/vtranslation.cpp @@ -0,0 +1,75 @@ +/************************************************************************ + ** + ** @file vtranslation.cpp + ** @author Roman Telezhynskyi + ** @date 12 5, 2014 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2014 Valentina project + ** 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 . + ** + *************************************************************************/ + +#include "vtranslation.h" + +//--------------------------------------------------------------------------------------------------------------------- +VTranslation VTranslation::translate(const QString &context, const QString &sourceText, const QString &disambiguation, + int n) +{ + if (n < 0) + { + n = -1; + } + VTranslation t(context, sourceText, disambiguation, n); + return t; +} + +//--------------------------------------------------------------------------------------------------------------------- +VTranslation::VTranslation() + :mcontext(QString()), msourceText(QString()), mdisambiguation(QString()), mn(-1) +{} + +//--------------------------------------------------------------------------------------------------------------------- +VTranslation::VTranslation(const QString &context, const QString &sourceText, const QString &disambiguation, int n) + :mcontext(context), msourceText(sourceText), mdisambiguation(disambiguation), mn(n) +{} + +//--------------------------------------------------------------------------------------------------------------------- +VTranslation &VTranslation::operator=(const VTranslation &tr) + +{ + this->mcontext = tr.getMcontext(); + this->msourceText = tr.getMsourceText(); + this->mdisambiguation = tr.getMdisambiguation(); + this->mn = tr.getN(); + return *this; +} + +//--------------------------------------------------------------------------------------------------------------------- +VTranslation::VTranslation(const VTranslation &tr) + :mcontext(tr.getMcontext()), msourceText(tr.getMsourceText()), mdisambiguation(tr.getMdisambiguation()), + mn(tr.getN()) +{} + +//--------------------------------------------------------------------------------------------------------------------- +QString VTranslation::VTranslation::translate() const +{ + return QCoreApplication::translate(mcontext.toUtf8().constData(), msourceText.toUtf8().constData(), + mdisambiguation.toUtf8().constData(), mn); +} diff --git a/src/app/widgets/vtranslation.h b/src/app/widgets/vtranslation.h new file mode 100644 index 000000000..8fec40fb5 --- /dev/null +++ b/src/app/widgets/vtranslation.h @@ -0,0 +1,96 @@ +/************************************************************************ + ** + ** @file vtranslation.h + ** @author Roman Telezhynskyi + ** @date 12 5, 2014 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2014 Valentina project + ** 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 . + ** + *************************************************************************/ + +#ifndef VTRANSLATION_H +#define VTRANSLATION_H + +#include +#include + +/** + * @file + * @brief The VTranslation class help store string for translation. + * + * I took idea from this article http://ololoepepe.blogspot.com/2013/08/qt.html. + * As you know, if wrap string to a function translate, it will be marked for translation. No matter what namespace + * contains this function. In class Translation used this circumstance. + * It is mean never change name of method translate!!!!!. + * Instead of using QT_TRANSLATE_NOOP3 macros we can store strings in QMap. + * Example: + * create map and fill up its + * QMap map; + * map.insert("head_girth", VTranslation::translate("Measurements", "head_girth", "Around fullest part of Head.")); + * get translated string + * map.value(measurement).translate(); + */ +class VTranslation +{ +public: + VTranslation(); + VTranslation(const QString &context, const QString &sourceText, const QString &disambiguation = 0, int n = -1); + VTranslation &operator=(const VTranslation &tr); + VTranslation(const VTranslation &tr); + QString translate() const; + static VTranslation translate(const QString &context, const QString &sourceText, const QString &disambiguation = 0, + int n = -1); + QString getMcontext() const; + QString getMsourceText() const; + QString getMdisambiguation() const; + int getN() const; +private: + QString mcontext; + QString msourceText; + QString mdisambiguation; + int mn; +}; + +//--------------------------------------------------------------------------------------------------------------------- +inline QString VTranslation::getMcontext() const +{ + return mcontext; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline QString VTranslation::getMsourceText() const +{ + return msourceText; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline QString VTranslation::getMdisambiguation() const +{ + return mdisambiguation; +} + +//--------------------------------------------------------------------------------------------------------------------- +inline int VTranslation::getN() const +{ + return mn; +} + +#endif // VTRANSLATION_H diff --git a/src/app/widgets/widgets.pri b/src/app/widgets/widgets.pri index e8e5343b5..52b5d6e1e 100644 --- a/src/app/widgets/widgets.pri +++ b/src/app/widgets/widgets.pri @@ -10,7 +10,8 @@ HEADERS += \ widgets/vsimplespline.h \ widgets/vsimplesplinepath.h \ widgets/vsimplearc.h \ - widgets/textdelegate.h + widgets/textdelegate.h \ + widgets/vtranslation.h SOURCES += \ widgets/vtablegraphicsview.cpp \ @@ -24,4 +25,5 @@ SOURCES += \ widgets/vsimplespline.cpp \ widgets/vsimplesplinepath.cpp \ widgets/vsimplearc.cpp \ - widgets/textdelegate.cpp + widgets/textdelegate.cpp \ + widgets/vtranslation.cpp diff --git a/src/app/xml/vdomdocument.cpp b/src/app/xml/vdomdocument.cpp index 81f52a123..c65e1b50c 100644 --- a/src/app/xml/vdomdocument.cpp +++ b/src/app/xml/vdomdocument.cpp @@ -83,11 +83,12 @@ inline qint64 MessageHandler::column() const return m_sourceLocation.column(); } -const QString VDomDocument::AttrId = QStringLiteral("id"); -const QString VDomDocument::AttrUnit = QStringLiteral("unit"); -const QString VDomDocument::UnitMM = QStringLiteral("mm"); -const QString VDomDocument::UnitCM = QStringLiteral("cm"); +const QString VDomDocument::AttrId = QStringLiteral("id"); +const QString VDomDocument::AttrUnit = QStringLiteral("unit"); +const QString VDomDocument::UnitMM = QStringLiteral("mm"); +const QString VDomDocument::UnitCM = QStringLiteral("cm"); const QString VDomDocument::UnitINCH = QStringLiteral("inch"); +const QString VDomDocument::TagVersion = QStringLiteral("version"); //--------------------------------------------------------------------------------------------------------------------- VDomDocument::VDomDocument(VContainer *data) @@ -431,6 +432,30 @@ bool VDomDocument::SaveDocument(const QString &fileName) return result; } +//--------------------------------------------------------------------------------------------------------------------- +QString VDomDocument::Major() const +{ + QString version = UniqueTagText(TagVersion, "0.0.0"); + QStringList v = version.split("."); + return v.at(0); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VDomDocument::Minor() const +{ + QString version = UniqueTagText(TagVersion, "0.0.0"); + QStringList v = version.split("."); + return v.at(1); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VDomDocument::Patch() const +{ + QString version = UniqueTagText(TagVersion, "0.0.0"); + QStringList v = version.split("."); + return v.at(2); +} + //--------------------------------------------------------------------------------------------------------------------- void VDomDocument::setTagText(const QString &tag, const QString &text) { diff --git a/src/app/xml/vdomdocument.h b/src/app/xml/vdomdocument.h index a0369050e..6f3777205 100644 --- a/src/app/xml/vdomdocument.h +++ b/src/app/xml/vdomdocument.h @@ -35,6 +35,11 @@ #include #include "../options.h" +/* + can be used like #if (V_FORMAT_VERSION >= V_FORMAT_VERSION_CHECK(4, 4, 0)) +*/ +#define V_FORMAT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch)) + #ifdef Q_CC_GNU #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" @@ -70,6 +75,7 @@ public: static const QString UnitMM; static const QString UnitCM; static const QString UnitINCH; + static const QString TagVersion; /** * @param data container with variables * @param comboBoxDraws pointer to the ComboBox that will hold the pattern piece names @@ -145,7 +151,10 @@ public: void setContent(const QString &fileName); static Valentina::Units StrToUnits(const QString &unit); static QString UnitsToStr(const Valentina::Units &unit); - virtual bool SaveDocument(const QString &fileName); + virtual bool SaveDocument(const QString &fileName); + QString Major() const; + QString Minor() const; + QString Patch() const; protected: /** * @brief data container with data. diff --git a/src/app/xml/vindividualmeasurements.cpp b/src/app/xml/vindividualmeasurements.cpp index 57a98d5f9..3ea2f8149 100644 --- a/src/app/xml/vindividualmeasurements.cpp +++ b/src/app/xml/vindividualmeasurements.cpp @@ -27,22 +27,15 @@ *************************************************************************/ #include "vindividualmeasurements.h" +#include "../widgets/vapplication.h" -const QString VIndividualMeasurements::AttrIgnore = QStringLiteral("ignore"); -const QString VIndividualMeasurements::AttrName = QStringLiteral("name"); -const QString VIndividualMeasurements::AttrM_number = QStringLiteral("m_number"); -const QString VIndividualMeasurements::AttrGui_text = QStringLiteral("gui_text"); const QString VIndividualMeasurements::AttrValue = QStringLiteral("value"); -const QString VIndividualMeasurements::AttrDescription = QStringLiteral("description"); - -const QString VIndividualMeasurements::TagLang = QStringLiteral("lang"); const QString VIndividualMeasurements::TagFamily_name = QStringLiteral("family-name"); const QString VIndividualMeasurements::TagGiven_name = QStringLiteral("given-name"); const QString VIndividualMeasurements::TagBirth_date = QStringLiteral("birth-date"); const QString VIndividualMeasurements::TagSex = QStringLiteral("sex"); const QString VIndividualMeasurements::TagUnit = QStringLiteral("unit"); -const QString VIndividualMeasurements::TagEmail = QStringLiteral("email"); - +const QString VIndividualMeasurements::TagEmail = QStringLiteral("email"); const QString VIndividualMeasurements::SexMale = QStringLiteral("male"); const QString VIndividualMeasurements::SexFemale = QStringLiteral("female"); @@ -67,92 +60,142 @@ void VIndividualMeasurements::setUnit(const Valentina::Units &unit) void VIndividualMeasurements::Measurements() { //head and neck - Measurement("head_girth"); - Measurement("mid_neck_girth"); - Measurement("neck_base_girth"); - Measurement("head_and_neck_length"); + Measurement(headGirth_M); + Measurement(midNeckGirth_M); + Measurement(neckBaseGirth_M); + Measurement(headAndNeckLength_M); //torso - Measurement("center_front_waist_length"); - Measurement("center_back_waist_length"); - Measurement("shoulder_length"); - Measurement("side_waist_length"); - Measurement("trunk_length"); - Measurement("shoulder_girth"); - Measurement("upper_chest_girth"); - Measurement("bust__girth"); - Measurement("under_bust_girth"); - Measurement("waist_girth"); - Measurement("high_hip_girth"); - Measurement("hip_girth"); - Measurement("upper_front_chest_width"); - Measurement("front_chest_width"); - Measurement("across_front_shoulder_width"); - Measurement("across_back_shoulder_width"); - Measurement("upper_back_width"); - Measurement("back_width"); - Measurement("bustpoint_to_bustpoint"); - Measurement("halter_bustpoint_to_bustpoint"); - Measurement("neck_to_bustpoint"); - Measurement("crotch_length"); - Measurement("rise_height"); - Measurement("shoulder_drop"); - Measurement("shoulder_slope_degrees"); - Measurement("front_shoulder_slope_length"); - Measurement("back_shoulder_slope_length"); - Measurement("front_shoulder_to_waist_length"); - Measurement("back_shoulder_to_waist_length"); - Measurement("front_neck_arc"); - Measurement("back_neck_arc"); - Measurement("front_upper-bust_arc"); - Measurement("back_upper-bust_arc"); - Measurement("front_waist_arc"); - Measurement("back_waist_arc"); - Measurement("front_upper-hip_arc"); - Measurement("back_upper-hip_arc"); - Measurement("front_hip_arc"); - Measurement("back_hip_arc"); - Measurement("chest_slope"); - Measurement("back_slope"); - Measurement("front_waist_slope"); - Measurement("back_waist_slope"); - Measurement("front-neck_to_upper-chest_height"); - Measurement("front-neck_to_bust_height"); + Measurement(centerFrontWaistLength_M); + Measurement(centerBackWaistLength_M); + Measurement(shoulderLength_M); + Measurement(sideWaistLength_M); + Measurement(trunkLength_M); + Measurement(shoulderGirth_M); + Measurement(upperChestGirth_M); + Measurement(bustGirth_M); + Measurement(underBustGirth_M); + Measurement(waistGirth_M); + Measurement(highHipGirth_M); + Measurement(hipGirth_M); + Measurement(upperFrontChestWidth_M); + Measurement(frontChestWidth_M); + Measurement(acrossFrontShoulderWidth_M); + Measurement(acrossBackShoulderWidth_M); + Measurement(upperBackWidth_M); + Measurement(backWidth_M); + Measurement(bustpointToBustpoint_M); + Measurement(halterBustpointToBustpoint_M); + Measurement(neckToBustpoint_M); + Measurement(crotchLength_M); + Measurement(riseHeight_M); + Measurement(shoulderDrop_M); + Measurement(shoulderSlopeDegrees_M); + Measurement(frontShoulderSlopeLength_M); + Measurement(backShoulderSlopeLength_M); + Measurement(frontShoulderToWaistLength_M); + Measurement(backShoulderToWaistLength_M); + Measurement(frontNeckArc_M); + Measurement(backNeckArc_M); + Measurement(frontUpperChestArc_M); + Measurement(backUpperChestArc_M); + Measurement(frontWaistArc_M); + Measurement(backWaistArc_M); + Measurement(frontUpperHipArc_M); + Measurement(backUpperHipArc_M); + Measurement(frontHipArc_M); + Measurement(backHipArc_M); + Measurement(chestSlope_M); + Measurement(backSlope_M); + Measurement(frontWaistSlope_M); + Measurement(backWaistSlope_M); + Measurement(frontNeckToUpperChestHeight_M); + Measurement(frontNeckToBustHeight_M); //arm - Measurement("armscye_girth"); - Measurement("elbow_girth"); - Measurement("upper-arm_girth"); - Measurement("wrist_girth"); - Measurement("scye_depth"); - Measurement("shoulder_and_arm_length"); - Measurement("underarm_length"); - Measurement("cervicale_to_wrist_length"); - Measurement("shoulder_to_elbow_length"); - Measurement("arm_length"); + Measurement(armscyeGirth_M); + Measurement(elbowGirth_M); + Measurement(upperArmGirth_M); + Measurement(wristGirth_M); + Measurement(scyeDepth_M); + Measurement(shoulderAndArmLength_M); + Measurement(underarmLength_M); + Measurement(cervicaleToWristLength_M); + Measurement(shoulderToElbowLength_M); + Measurement(armLength_M); //hand - Measurement("hand_width"); - Measurement("hand_length"); - Measurement("hand_girth"); + Measurement(handWidth_M); + Measurement(handLength_M); + Measurement(handGirth_M); //leg - Measurement("thigh_girth"); - Measurement("mid_thigh_girth"); - Measurement("knee_girth"); - Measurement("calf_girth"); - Measurement("ankle_girth"); - Measurement("knee_height"); - Measurement("ankle_height"); + Measurement(thighGirth_M); + Measurement(midThighGirth_M); + Measurement(kneeGirth_M); + Measurement(calfGirth_M); + Measurement(ankleGirth_M); + Measurement(kneeHeight_M); + Measurement(ankleHeight_M); //foot - Measurement("foot_width"); - Measurement("foot_length"); + Measurement(footWidth_M); + Measurement(footLength_M); //heights - Measurement("height"); - Measurement("cervicale_height"); - Measurement("cervicale_to_knee_height"); - Measurement("waist_height"); - Measurement("high_hip_height"); - Measurement("hip_height"); - Measurement("waist_to_hip_height"); - Measurement("waist_to_knee_height"); - Measurement("crotch_height"); + Measurement(height_M); + Measurement(cervicaleHeight_M); + Measurement(cervicaleToKneeHeight_M); + Measurement(waistHeight_M); + Measurement(highHipHeight_M); + Measurement(hipHeight_M); + Measurement(waistToHipHeight_M); + Measurement(waistToKneeHeight_M); + Measurement(crotchHeight_M); + //extended + Measurement(size_M); + Measurement(heightFrontNeckBasePoint_M); + Measurement(heightBaseNeckSidePoint_M); + Measurement(heightShoulderPoint_M); + Measurement(heightNipplePoint_M); + Measurement(heightBackAngleAxilla_M); + Measurement(heightScapularPoint_M); + Measurement(heightUnderButtockFolds_M); + Measurement(hipsExcludingProtrudingAbdomen_M); + Measurement(girthFootInstep_M); + Measurement(sideWaistToFloor_M); + Measurement(frontWaistToFloor_M); + Measurement(arcThroughGroinArea_M); + Measurement(waistToPlaneSeat_M); + Measurement(neckToRadialPoint_M); + Measurement(neckToThirdFinger_M); + Measurement(neckToFirstLineChestCircumference_M); + Measurement(frontWaistLength_M); + Measurement(arcThroughShoulderJoint_M); + Measurement(neckToBackLineChestCircumference_M); + Measurement(waistToNeckSide_M); + Measurement(arcLengthUpperBody_M); + Measurement(chestWidth_M); + Measurement(anteroposteriorDiameterHands_M); + Measurement(heightClavicularPoint_M); + Measurement(heightArmholeSlash_M); + Measurement(slashShoulderHeight_M); + Measurement(halfGirthNeck_M); + Measurement(halfGirthNeckForShirts_M); + Measurement(halfGirthChestFirst_M); + Measurement(halfGirthChestSecond_M); + Measurement(halfGirthChestThird_M); + Measurement(halfGirthWaist_M); + Measurement(halfGirthHipsConsideringProtrudingAbdomen_M); + Measurement(halfGirthHipsExcludingProtrudingAbdomen_M); + Measurement(girthKneeFlexedFeet_M); + Measurement(neckTransverseDiameter_M); + Measurement(frontSlashShoulderHeight_M); + Measurement(neckToFrontWaistLine_M); + Measurement(handVerticalDiameter_M); + Measurement(neckToKneePoint_M); + Measurement(waistToKnee_M); + Measurement(shoulderHeight_M); + Measurement(headHeight_M); + Measurement(bodyPosition_M); + Measurement(arcBehindShoulderGirdle_M); + Measurement(neckToNeckBase_M); + Measurement(depthWaistFirst_M); + Measurement(depthWaistSecond_M); } //--------------------------------------------------------------------------------------------------------------------- @@ -172,62 +215,18 @@ void VIndividualMeasurements::Measurement(const QString &tag) const QDomElement domElement = domNode.toElement(); if (domElement.isNull() == false) { - const bool ignore = QVariant(GetParametrString(domElement, AttrIgnore, "false")).toBool(); - if (ignore) - { - return; - } - const QString name = GetParametrString(domElement, AttrName, ""); - if (name.isEmpty()) - { - return; - } - const QString m_number = GetParametrString(domElement, AttrM_number, ""); - const QString gui_text = GetParametrString(domElement, AttrGui_text, ""); - const qreal value = GetParametrDouble(domElement, AttrValue, "0.0"); - const QString description = GetParametrString(domElement, AttrDescription, ""); + qreal value = GetParametrDouble(domElement, AttrValue, "0.0"); if (Unit() == Valentina::Mm)//Convert to Cm. { - data->AddMeasurement(name, VMeasurement(value/10.0, gui_text, description, tag)); - if (m_number.isEmpty()) - { - qDebug()<<"Can't find language-independent measurement name for "<< tag; - return; - } - else - { - VMeasurement m(value/10.0, gui_text, description, tag); - m.setVirtual(true); - data->AddMeasurement(m_number, m); - } - } - else//Cm or inch. - { - data->AddMeasurement(name, VMeasurement(value, gui_text, description, tag)); - if (m_number.isEmpty()) - { - qDebug()<<"Can't find language-independent measurement name for "<< tag; - return; - } - else - { - VMeasurement m(value, gui_text, description, tag); - m.setVirtual(true); - data->AddMeasurement(m_number, m); - } + value = value / 10.0; } + data->AddMeasurement(tag, VMeasurement(value, qApp->GuiText(tag), qApp->Description(tag), tag)); } } } } -//--------------------------------------------------------------------------------------------------------------------- -QString VIndividualMeasurements::Language() const -{ - return UniqueTagText(TagLang, "en"); -} - //--------------------------------------------------------------------------------------------------------------------- QString VIndividualMeasurements::FamilyName() const { diff --git a/src/app/xml/vindividualmeasurements.h b/src/app/xml/vindividualmeasurements.h index d5894bd4a..e8dcdb9df 100644 --- a/src/app/xml/vindividualmeasurements.h +++ b/src/app/xml/vindividualmeasurements.h @@ -32,6 +32,14 @@ #include "vdomdocument.h" #include +/* + VIT_VERSION is (major << 16) + (minor << 8) + patch. +*/ +// version without patch part +#define VIT_MIN_VERSION 0x000100 +// max support version of format +#define VIT_VERSION 0x000100 + class VIndividualMeasurements:public VDomDocument { public: @@ -42,7 +50,6 @@ public: Valentina::Units Unit() const; void setUnit(const Valentina::Units &unit); void Measurements(); - QString Language() const; QString FamilyName() const; void setFamilyName(const QString &text); QString GivenName() const; @@ -53,21 +60,13 @@ public: void setSex(const VIndividualMeasurements::Genders &sex); QString Mail() const; void setMail(const QString &text); - static const QString AttrIgnore; - static const QString AttrName; - static const QString AttrM_number; - static const QString AttrGui_text; static const QString AttrValue; - static const QString AttrDescription; - - static const QString TagLang; static const QString TagFamily_name; static const QString TagGiven_name; static const QString TagBirth_date; static const QString TagSex; static const QString TagUnit; static const QString TagEmail; - static const QString SexMale; static const QString SexFemale; diff --git a/src/app/xml/vpattern.cpp b/src/app/xml/vpattern.cpp index 1a0637923..a3a8834a4 100644 --- a/src/app/xml/vpattern.cpp +++ b/src/app/xml/vpattern.cpp @@ -39,6 +39,7 @@ #include "vindividualmeasurements.h" #include +#include const QString VPattern::TagPattern = QStringLiteral("pattern"); const QString VPattern::TagCalculation = QStringLiteral("calculation"); @@ -83,6 +84,11 @@ void VPattern::CreateEmptyFile(const QString &tablePath) QDomElement patternElement = this->createElement(TagPattern); patternElement.appendChild(createComment("Valentina pattern format.")); + + QDomElement version = createElement(TagVersion); + QDomText newNodeText = createTextNode(VAL_STR_VERSION); + version.appendChild(newNodeText); + patternElement.appendChild(createElement(TagAuthor)); patternElement.appendChild(createElement(TagDescription)); patternElement.appendChild(createElement(TagNotes)); @@ -209,7 +215,8 @@ void VPattern::Parse(const Document::Documents &parse, VMainGraphicsScene *scene if (domElement.isNull() == false) { QStringList tags; - tags << TagDraw << TagIncrements << TagAuthor << TagDescription << TagNotes << TagMeasurements; + tags << TagDraw << TagIncrements << TagAuthor << TagDescription << TagNotes << TagMeasurements + << TagVersion; switch (tags.indexOf(domElement.tagName())) { case 0: // TagDraw @@ -242,8 +249,10 @@ void VPattern::Parse(const Document::Documents &parse, VMainGraphicsScene *scene break; case 5: // TagMeasurements break; + case 6: // TagVersion + break; default: - qDebug()<<"Wrong tag name"< +#include "../widgets/vapplication.h" -const QString VStandardMeasurements::TagMeasurement = QStringLiteral("measurement"); const QString VStandardMeasurements::TagDescription = QStringLiteral("description"); const QString VStandardMeasurements::TagSize = QStringLiteral("size"); const QString VStandardMeasurements::TagHeight = QStringLiteral("height"); -const QString VStandardMeasurements::AttrName = QStringLiteral("name"); -const QString VStandardMeasurements::AttrGui_text = QStringLiteral("gui_text"); -const QString VStandardMeasurements::AttrBase = QStringLiteral("base"); +const QString VStandardMeasurements::AttrValue = QStringLiteral("value"); const QString VStandardMeasurements::AttrSize_increace = QStringLiteral("size_increace"); const QString VStandardMeasurements::AttrHeight_increase = QStringLiteral("height_increase"); -const QString VStandardMeasurements::AttrNumber = QStringLiteral("number"); //--------------------------------------------------------------------------------------------------------------------- VStandardMeasurements::VStandardMeasurements(VContainer *data):VDomDocument(data) @@ -65,43 +62,173 @@ QString VStandardMeasurements::Description() //--------------------------------------------------------------------------------------------------------------------- void VStandardMeasurements::Measurements() { - const QDomNodeList nodeList = this->elementsByTagName(TagMeasurement); + //head and neck + Measurement(headGirth_M); + Measurement(midNeckGirth_M); + Measurement(neckBaseGirth_M); + Measurement(headAndNeckLength_M); + //torso + Measurement(centerFrontWaistLength_M); + Measurement(centerBackWaistLength_M); + Measurement(shoulderLength_M); + Measurement(sideWaistLength_M); + Measurement(trunkLength_M); + Measurement(shoulderGirth_M); + Measurement(upperChestGirth_M); + Measurement(bustGirth_M); + Measurement(underBustGirth_M); + Measurement(waistGirth_M); + Measurement(highHipGirth_M); + Measurement(hipGirth_M); + Measurement(upperFrontChestWidth_M); + Measurement(frontChestWidth_M); + Measurement(acrossFrontShoulderWidth_M); + Measurement(acrossBackShoulderWidth_M); + Measurement(upperBackWidth_M); + Measurement(backWidth_M); + Measurement(bustpointToBustpoint_M); + Measurement(halterBustpointToBustpoint_M); + Measurement(neckToBustpoint_M); + Measurement(crotchLength_M); + Measurement(riseHeight_M); + Measurement(shoulderDrop_M); + Measurement(shoulderSlopeDegrees_M); + Measurement(frontShoulderSlopeLength_M); + Measurement(backShoulderSlopeLength_M); + Measurement(frontShoulderToWaistLength_M); + Measurement(backShoulderToWaistLength_M); + Measurement(frontNeckArc_M); + Measurement(backNeckArc_M); + Measurement(frontUpperChestArc_M); + Measurement(backUpperChestArc_M); + Measurement(frontWaistArc_M); + Measurement(backWaistArc_M); + Measurement(frontUpperHipArc_M); + Measurement(backUpperHipArc_M); + Measurement(frontHipArc_M); + Measurement(backHipArc_M); + Measurement(chestSlope_M); + Measurement(backSlope_M); + Measurement(frontWaistSlope_M); + Measurement(backWaistSlope_M); + Measurement(frontNeckToUpperChestHeight_M); + Measurement(frontNeckToBustHeight_M); + //arm + Measurement(armscyeGirth_M); + Measurement(elbowGirth_M); + Measurement(upperArmGirth_M); + Measurement(wristGirth_M); + Measurement(scyeDepth_M); + Measurement(shoulderAndArmLength_M); + Measurement(underarmLength_M); + Measurement(cervicaleToWristLength_M); + Measurement(shoulderToElbowLength_M); + Measurement(armLength_M); + //hand + Measurement(handWidth_M); + Measurement(handLength_M); + Measurement(handGirth_M); + //leg + Measurement(thighGirth_M); + Measurement(midThighGirth_M); + Measurement(kneeGirth_M); + Measurement(calfGirth_M); + Measurement(ankleGirth_M); + Measurement(kneeHeight_M); + Measurement(ankleHeight_M); + //foot + Measurement(footWidth_M); + Measurement(footLength_M); + //heights + Measurement(cervicaleHeight_M); + Measurement(cervicaleToKneeHeight_M); + Measurement(waistHeight_M); + Measurement(highHipHeight_M); + Measurement(hipHeight_M); + Measurement(waistToHipHeight_M); + Measurement(waistToKneeHeight_M); + Measurement(crotchHeight_M); + //extended + Measurement(heightFrontNeckBasePoint_M); + Measurement(heightBaseNeckSidePoint_M); + Measurement(heightShoulderPoint_M); + Measurement(heightNipplePoint_M); + Measurement(heightBackAngleAxilla_M); + Measurement(heightScapularPoint_M); + Measurement(heightUnderButtockFolds_M); + Measurement(hipsExcludingProtrudingAbdomen_M); + Measurement(girthFootInstep_M); + Measurement(sideWaistToFloor_M); + Measurement(frontWaistToFloor_M); + Measurement(arcThroughGroinArea_M); + Measurement(waistToPlaneSeat_M); + Measurement(neckToRadialPoint_M); + Measurement(neckToThirdFinger_M); + Measurement(neckToFirstLineChestCircumference_M); + Measurement(frontWaistLength_M); + Measurement(arcThroughShoulderJoint_M); + Measurement(neckToBackLineChestCircumference_M); + Measurement(waistToNeckSide_M); + Measurement(arcLengthUpperBody_M); + Measurement(chestWidth_M); + Measurement(anteroposteriorDiameterHands_M); + Measurement(heightClavicularPoint_M); + Measurement(heightArmholeSlash_M); + Measurement(slashShoulderHeight_M); + Measurement(halfGirthNeck_M); + Measurement(halfGirthNeckForShirts_M); + Measurement(halfGirthChestFirst_M); + Measurement(halfGirthChestSecond_M); + Measurement(halfGirthChestThird_M); + Measurement(halfGirthWaist_M); + Measurement(halfGirthHipsConsideringProtrudingAbdomen_M); + Measurement(halfGirthHipsExcludingProtrudingAbdomen_M); + Measurement(girthKneeFlexedFeet_M); + Measurement(neckTransverseDiameter_M); + Measurement(frontSlashShoulderHeight_M); + Measurement(neckToFrontWaistLine_M); + Measurement(handVerticalDiameter_M); + Measurement(neckToKneePoint_M); + Measurement(waistToKnee_M); + Measurement(shoulderHeight_M); + Measurement(headHeight_M); + Measurement(bodyPosition_M); + Measurement(arcBehindShoulderGirdle_M); + Measurement(neckToNeckBase_M); + Measurement(depthWaistFirst_M); + Measurement(depthWaistSecond_M); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VStandardMeasurements::Measurement(const QString &tag) +{ + const QDomNodeList nodeList = this->elementsByTagName(tag); if (nodeList.isEmpty()) { - qDebug()<<"Measurement list is empty"<AddMeasurement(name, VMeasurement(base/10.0, size_increace/10.0, height_increase/10.0, - gui_text, number)); - } - else// Cm or inch. - { - data->AddMeasurement(name, VMeasurement(base, size_increace, height_increase, - gui_text, number)); - } + if (Unit() == Valentina::Mm)// Convert to Cm. + { + data->AddMeasurement(tag, VMeasurement(value/10.0, size_increace/10.0, height_increase/10.0, + qApp->GuiText(tag), qApp->Description(tag), tag)); + } + else// Cm or inch. + { + data->AddMeasurement(tag, VMeasurement(value, size_increace, height_increase, qApp->GuiText(tag), + qApp->Description(tag), tag)); } } } @@ -115,7 +242,7 @@ void VStandardMeasurements::SetSize() if (nodeList.isEmpty()) { data->SetSize(50); - data->SetSizeName("Сг"); + data->SetSizeName(size_M); } else { @@ -125,18 +252,13 @@ void VStandardMeasurements::SetSize() const QDomElement domElement = domNode.toElement(); if (domElement.isNull() == false) { - const QString name = GetParametrString(domElement, AttrName, "Сг"); - const qreal base = GetParametrDouble(domElement, AttrBase, "50.0"); + qreal value = GetParametrDouble(domElement, AttrValue, "50.0"); if (Unit() == Valentina::Mm)// Convert to Cm. { - data->SetSize(base/10.0); - data->SetSizeName(name); - } - else// Cm or inch. - { - data->SetSize(base); - data->SetSizeName(name); + value = value/10.0; } + data->SetSize(value); + data->SetSizeName(size_M); } } } @@ -149,7 +271,7 @@ void VStandardMeasurements::SetHeight() if (nodeList.isEmpty()) { data->SetHeight(176); - data->SetHeightName("P"); + data->SetHeightName(height_M); } else { @@ -159,18 +281,13 @@ void VStandardMeasurements::SetHeight() const QDomElement domElement = domNode.toElement(); if (domElement.isNull() == false) { - const QString name = GetParametrString(domElement, AttrName, "Р"); - const qreal base = GetParametrDouble(domElement, AttrBase, "176.0"); + qreal value = GetParametrDouble(domElement, AttrValue, "176.0"); if (Unit() == Valentina::Mm)// Convert to Cm. { - data->SetHeight(base/10.0); - data->SetHeightName(name); - } - else// Cm or inch. - { - data->SetHeight(base); - data->SetHeightName(name); + value = value / 10.0; } + data->SetHeight(value); + data->SetHeightName(height_M); } } } diff --git a/src/app/xml/vstandardmeasurements.h b/src/app/xml/vstandardmeasurements.h index d0e992eba..a970f46c4 100644 --- a/src/app/xml/vstandardmeasurements.h +++ b/src/app/xml/vstandardmeasurements.h @@ -31,6 +31,14 @@ #include "vdomdocument.h" +/* + VST_VERSION is (major << 16) + (minor << 8) + patch. +*/ +// version without patch part +#define VST_MIN_VERSION 0x000100 +// max support version of format +#define VST_VERSION 0x000100 + class VStandardMeasurements:public VDomDocument { public: @@ -44,12 +52,11 @@ public: static const QString TagDescription; static const QString TagSize; static const QString TagHeight; - static const QString AttrName; - static const QString AttrGui_text; - static const QString AttrBase; + static const QString AttrValue; static const QString AttrSize_increace; static const QString AttrHeight_increase; - static const QString AttrNumber; +private: + void Measurement(const QString &tag); }; #endif // VSTANDARDMEASUREMENTS_H diff --git a/src/libs/qmuparser/qmuparser.cpp b/src/libs/qmuparser/qmuparser.cpp index 3f0ca1d08..6180f2310 100644 --- a/src/libs/qmuparser/qmuparser.cpp +++ b/src/libs/qmuparser/qmuparser.cpp @@ -202,11 +202,7 @@ int QmuParser::IsVal(const QString &a_szExpr, int *a_iPos, qreal *a_fVal) { qreal fVal(0); - #if defined(_UNICODE) - std::wstring a_szExprStd = a_szExpr.toStdWString(); - #else - std::string a_szExprStd = a_szExpr.toStdString(); - #endif + std::wstring a_szExprStd = a_szExpr.toStdWString(); stringstream_type stream(a_szExprStd); stream.seekg(0); // todo: check if this really is necessary stream.imbue(QmuParser::s_locale); diff --git a/src/libs/qmuparser/qmuparser.h b/src/libs/qmuparser/qmuparser.h index 50892dd99..e36f52b5d 100644 --- a/src/libs/qmuparser/qmuparser.h +++ b/src/libs/qmuparser/qmuparser.h @@ -74,7 +74,7 @@ namespace qmu static qreal Sign(qreal); // Prefix operators // !!! Unary Minus is a MUST if you want to use negative signs !!! - static qreal UnaryMinus(qreal v) Q_DECL_NOEXCEPT; + static qreal UnaryMinus(qreal v); // Functions with variable number of arguments static qreal Sum(const qreal*, int); // sum static qreal Avg(const qreal*, int); // mean value @@ -88,7 +88,7 @@ namespace qmu * @param v The value to negate * @return -v */ -inline qreal QmuParser::UnaryMinus(qreal v) Q_DECL_NOEXCEPT +inline qreal QmuParser::UnaryMinus(qreal v) { return -v; } diff --git a/src/libs/qmuparser/qmuparser.pro b/src/libs/qmuparser/qmuparser.pro index 389f8235a..cb3c24548 100644 --- a/src/libs/qmuparser/qmuparser.pro +++ b/src/libs/qmuparser/qmuparser.pro @@ -24,10 +24,7 @@ MOC_DIR = moc OBJECTS_DIR = obj # files created rcc -RCC_DIR = rcc - -# files created uic -UI_DIR = uic +#RCC_DIR = rcc SOURCES += \ qmuparser.cpp \ @@ -73,8 +70,8 @@ CONFIG(debug, debug|release){ # Debug unix { *-g++{ - QMAKE_CXXFLAGS += -isystem "/usr/include/qt5" -isystem "/usr/include/qt5/QtCore" -isystem "$${UI_DIR}" \ - -isystem "$${MOC_DIR}" -isystem "$${RCC_DIR}" \ + QMAKE_CXXFLAGS += -isystem "/usr/include/qt5" -isystem "/usr/include/qt5/QtCore" -isystem "$${MOC_DIR}" \ + #-isystem "$${RCC_DIR}" \ -O0 -Wall -Wextra -pedantic -Weffc++ -Woverloaded-virtual -Wctor-dtor-privacy \ -Wnon-virtual-dtor -Wold-style-cast -Wconversion -Winit-self -Wstack-protector \ -Wunreachable-code -Wcast-align -Wcast-qual -Wdisabled-optimization -Wfloat-equal \ @@ -101,8 +98,9 @@ CONFIG(debug, debug|release){ } # Remove generated files at cleaning -QMAKE_DISTCLEAN += $${DESTDIR}/* \ - $${OBJECTS_DIR}/* \ - $${UI_DIR}/* \ - $${MOC_DIR}/* \ - $${RCC_DIR}/* +QMAKE_DISTCLEAN += \ + $${DESTDIR}/* \ + $${OBJECTS_DIR}/* \ + #$${RCC_DIR}/* \ + $${MOC_DIR}/* + diff --git a/src/libs/qmuparser/qmuparserbase.cpp b/src/libs/qmuparser/qmuparserbase.cpp index 386c0f87d..21ff321df 100644 --- a/src/libs/qmuparser/qmuparserbase.cpp +++ b/src/libs/qmuparser/qmuparserbase.cpp @@ -64,7 +64,7 @@ QmuParserBase::QmuParserBase() :m_pParseFormula(&QmuParserBase::ParseString), m_vRPN(), m_vStringBuf(), m_vStringVarBuf(), m_pTokenReader(), m_FunDef(), m_PostOprtDef(), m_InfixOprtDef(), m_OprtDef(), m_ConstDef(), m_StrVarDef(), m_VarDef(), m_bBuiltInOp(true), m_sNameChars(), m_sOprtChars(), m_sInfixOprtChars(), m_nIfElseCounter(0), m_vStackBuffer(), - m_nFinalResultIdx(0) + m_nFinalResultIdx(0), m_Tokens(QMap()), m_Numbers(QMap()) { InitTokenReader(); } @@ -79,7 +79,7 @@ QmuParserBase::QmuParserBase(const QmuParserBase &a_Parser) :m_pParseFormula(&QmuParserBase::ParseString), m_vRPN(), m_vStringBuf(), m_vStringVarBuf(), m_pTokenReader(), m_FunDef(), m_PostOprtDef(), m_InfixOprtDef(), m_OprtDef(), m_ConstDef(), m_StrVarDef(), m_VarDef(), m_bBuiltInOp(true), m_sNameChars(), m_sOprtChars(), m_sInfixOprtChars(), m_nIfElseCounter(0), m_vStackBuffer(), - m_nFinalResultIdx(0) + m_nFinalResultIdx(0), m_Tokens(QMap()), m_Numbers(QMap()) { m_pTokenReader.reset(new token_reader_type(this)); Assign(a_Parser); @@ -98,7 +98,7 @@ QmuParserBase::~QmuParserBase() * @return *this * @throw nothrow */ -QmuParserBase& QmuParserBase::operator=(const QmuParserBase &a_Parser) Q_DECL_NOEXCEPT +QmuParserBase& QmuParserBase::operator=(const QmuParserBase &a_Parser) { Assign(a_Parser); return *this; @@ -199,13 +199,15 @@ void QmuParserBase::ResetLocale() * Clear bytecode, reset the token reader. * @throw nothrow */ -void QmuParserBase::ReInit() const Q_DECL_NOEXCEPT +void QmuParserBase::ReInit() const { m_pParseFormula = &QmuParserBase::ParseString; m_vStringBuf.clear(); m_vRPN.clear(); m_pTokenReader->ReInit(); m_nIfElseCounter = 0; + m_Tokens.clear(); + m_Numbers.clear(); } //--------------------------------------------------------------------------------------------------------------------- @@ -318,13 +320,9 @@ void QmuParserBase::AddCallback(const QString &a_strName, const QmuParserCallbac void QmuParserBase::CheckOprt(const QString &a_sName, const QmuParserCallback &a_Callback, const QString &a_szCharSet) const { -#if defined(_UNICODE) const std::wstring a_sNameStd = a_sName.toStdWString(); const std::wstring a_szCharSetStd = a_szCharSet.toStdWString(); -#else - const std::string a_sNameStd = a_sName.toStdString(); - const std::string a_szCharSetStd = a_szCharSet.toStdString(); -#endif + if ( a_sNameStd.length() == false || (a_sNameStd.find_first_not_of(a_szCharSetStd)!=string_type::npos) || (a_sNameStd.at(0)>='0' && a_sNameStd.at(0)<='9')) { @@ -385,13 +383,9 @@ void QmuParserBase::CheckOprt(const QString &a_sName, const QmuParserCallback &a */ void QmuParserBase::CheckName(const QString &a_sName, const QString &a_szCharSet) const { -#if defined(_UNICODE) std::wstring a_sNameStd = a_sName.toStdWString(); std::wstring a_szCharSetStd = a_szCharSet.toStdWString(); -#else - std::string a_sNameStd = a_sName.toStdString(); - std::string a_szCharSetStd = a_szCharSet.toStdString(); -#endif + if ( a_sNameStd.length() == false || (a_sNameStd.find_first_not_of(a_szCharSetStd)!=string_type::npos) || (a_sNameStd[0]>='0' && a_sNameStd[0]<='9')) { @@ -1494,14 +1488,17 @@ void QmuParserBase::CreateRPN() const opt.SetIdx(m_vStringBuf.size()); // Assign buffer index to token stVal.push(opt); m_vStringBuf.push_back(opt.GetAsString()); // Store string in internal buffer + m_Tokens.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmVAR: stVal.push(opt); m_vRPN.AddVar( static_cast(opt.GetVar()) ); + m_Tokens.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmVAL: stVal.push(opt); m_vRPN.AddVal( opt.GetVal() ); + m_Numbers.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmELSE: m_nIfElseCounter--; @@ -1643,10 +1640,12 @@ void QmuParserBase::CreateRPN() const case cmFUNC_BULK: case cmFUNC_STR: stOpt.push(opt); + m_Tokens.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmOPRT_POSTFIX: stOpt.push(opt); ApplyFunc(stOpt, stVal, 1); // this is the postfix operator + m_Tokens.insert(m_pTokenReader->GetPos()-opt.GetAsString().length(), opt.GetAsString()); break; case cmENDIF: case cmVARPOW2: @@ -1753,7 +1752,7 @@ void Q_NORETURN QmuParserBase::Error(EErrorCodes a_iErrc, int a_iPos, const QStr * Resets the parser to string parsing mode by calling #ReInit. */ // cppcheck-suppress unusedFunction -void QmuParserBase::ClearVar() Q_DECL_NOEXCEPT +void QmuParserBase::ClearVar() { m_VarDef.clear(); ReInit(); @@ -1766,7 +1765,7 @@ void QmuParserBase::ClearVar() Q_DECL_NOEXCEPT * * Removes a variable if it exists. If the Variable does not exist nothing will be done. */ -void QmuParserBase::RemoveVar(const QString &a_strVarName) Q_DECL_NOEXCEPT +void QmuParserBase::RemoveVar(const QString &a_strVarName) { varmap_type::iterator item = m_VarDef.find(a_strVarName); if (item!=m_VarDef.end()) @@ -1783,7 +1782,7 @@ void QmuParserBase::RemoveVar(const QString &a_strVarName) Q_DECL_NOEXCEPT * @throw nothrow */ // cppcheck-suppress unusedFunction -void QmuParserBase::ClearFun() Q_DECL_NOEXCEPT +void QmuParserBase::ClearFun() { m_FunDef.clear(); ReInit(); @@ -1797,7 +1796,7 @@ void QmuParserBase::ClearFun() Q_DECL_NOEXCEPT * @post Resets the parser to string parsing mode. * @throw nothrow */ -void QmuParserBase::ClearConst() Q_DECL_NOEXCEPT +void QmuParserBase::ClearConst() { m_ConstDef.clear(); m_StrVarDef.clear(); @@ -1810,7 +1809,7 @@ void QmuParserBase::ClearConst() Q_DECL_NOEXCEPT * @post Resets the parser to string parsing mode. * @throw nothrow */ -void QmuParserBase::ClearPostfixOprt() Q_DECL_NOEXCEPT +void QmuParserBase::ClearPostfixOprt() { m_PostOprtDef.clear(); ReInit(); @@ -1823,7 +1822,7 @@ void QmuParserBase::ClearPostfixOprt() Q_DECL_NOEXCEPT * @throw nothrow */ // cppcheck-suppress unusedFunction -void QmuParserBase::ClearOprt() Q_DECL_NOEXCEPT +void QmuParserBase::ClearOprt() { m_OprtDef.clear(); ReInit(); @@ -1836,7 +1835,7 @@ void QmuParserBase::ClearOprt() Q_DECL_NOEXCEPT * @throw nothrow */ // cppcheck-suppress unusedFunction -void QmuParserBase::ClearInfixOprt() Q_DECL_NOEXCEPT +void QmuParserBase::ClearInfixOprt() { m_InfixOprtDef.clear(); ReInit(); @@ -1848,7 +1847,7 @@ void QmuParserBase::ClearInfixOprt() Q_DECL_NOEXCEPT * @post Resets the parser to string parser mode. * @throw nothrow */ -void QmuParserBase::EnableOptimizer(bool a_bIsOn) Q_DECL_NOEXCEPT +void QmuParserBase::EnableOptimizer(bool a_bIsOn) { m_vRPN.EnableOptimizer(a_bIsOn); ReInit(); @@ -1879,7 +1878,7 @@ void QmuParserBase::EnableDebugDump(bool bDumpCmd, bool bDumpStack) * manually one by one. It is not possible to disable built in operators selectively. This function will Reinitialize * the parser by calling ReInit(). */ -void QmuParserBase::EnableBuiltInOprt(bool a_bIsOn) Q_DECL_NOEXCEPT +void QmuParserBase::EnableBuiltInOprt(bool a_bIsOn) { m_bBuiltInOp = a_bIsOn; ReInit(); diff --git a/src/libs/qmuparser/qmuparserbase.h b/src/libs/qmuparser/qmuparserbase.h index d01e78ce2..b82954f9a 100644 --- a/src/libs/qmuparser/qmuparserbase.h +++ b/src/libs/qmuparser/qmuparserbase.h @@ -58,22 +58,22 @@ class QMUPARSERSHARED_EXPORT QmuParserBase public: QmuParserBase(); QmuParserBase(const QmuParserBase &a_Parser); - QmuParserBase& operator=(const QmuParserBase &a_Parser) Q_DECL_NOEXCEPT; + QmuParserBase& operator=(const QmuParserBase &a_Parser); virtual ~QmuParserBase(); static void EnableDebugDump(bool bDumpCmd, bool bDumpStack); qreal Eval() const; qreal* Eval(int &nStackSize) const; void Eval(qreal *results, int nBulkSize) const; - int GetNumResults() const Q_DECL_NOEXCEPT; + int GetNumResults() const; void SetExpr(const QString &a_sExpr); void SetVarFactory(facfun_type a_pFactory, void *pUserData = nullptr); void SetDecSep(char_type cDecSep); void SetThousandsSep(char_type cThousandsSep = 0); void ResetLocale(); - void EnableOptimizer(bool a_bIsOn=true) Q_DECL_NOEXCEPT; - void EnableBuiltInOprt(bool a_bIsOn=true) Q_DECL_NOEXCEPT; - bool HasBuiltInOprt() const Q_DECL_NOEXCEPT; + void EnableOptimizer(bool a_bIsOn=true); + void EnableBuiltInOprt(bool a_bIsOn=true); + bool HasBuiltInOprt() const; void AddValIdent(identfun_type a_pCallback); void DefineOprt(const QString &a_strName, fun_type2 a_pFun, unsigned a_iPri=0, EOprtAssociativity a_eAssociativity = oaLEFT, bool a_bAllowOpt = false); @@ -84,23 +84,25 @@ public: void DefineInfixOprt(const QString &a_strName, fun_type1 a_pOprt, int a_iPrec=prINFIX, bool a_bAllowOpt=true); // Clear user defined variables, constants or functions - void ClearVar() Q_DECL_NOEXCEPT; - void ClearFun() Q_DECL_NOEXCEPT; - void ClearConst() Q_DECL_NOEXCEPT; - void ClearInfixOprt() Q_DECL_NOEXCEPT; - void ClearPostfixOprt() Q_DECL_NOEXCEPT; - void ClearOprt() Q_DECL_NOEXCEPT; - void RemoveVar(const QString &a_strVarName) Q_DECL_NOEXCEPT; + void ClearVar(); + void ClearFun(); + void ClearConst(); + void ClearInfixOprt(); + void ClearPostfixOprt(); + void ClearOprt(); + void RemoveVar(const QString &a_strVarName); const varmap_type& GetUsedVar() const; - const varmap_type& GetVar() const Q_DECL_NOEXCEPT; - const valmap_type& GetConst() const Q_DECL_NOEXCEPT; + const varmap_type& GetVar() const; + const valmap_type& GetConst() const; const QString& GetExpr() const; - const funmap_type& GetFunDef() const Q_DECL_NOEXCEPT; + const funmap_type& GetFunDef() const; static QString GetVersion(EParserVersionInfo eInfo = pviFULL); - static const QStringList& GetOprtDef() Q_DECL_NOEXCEPT; - void DefineNameChars(const QString &a_szCharset) Q_DECL_NOEXCEPT; - void DefineOprtChars(const QString &a_szCharset) Q_DECL_NOEXCEPT; - void DefineInfixOprtChars(const QString &a_szCharset) Q_DECL_NOEXCEPT; + static const QStringList& GetOprtDef(); + QMap GetTokens() const; + QMap GetNumbers() const; + void DefineNameChars(const QString &a_szCharset); + void DefineOprtChars(const QString &a_szCharset); + void DefineInfixOprtChars(const QString &a_szCharset); const QString& ValidNameChars() const; const QString& ValidOprtChars() const; const QString& ValidInfixOprtChars() const; @@ -232,10 +234,12 @@ private: // items merely used for caching state information mutable valbuf_type m_vStackBuffer; ///< This is merely a buffer used for the stack in the cmd parsing routine mutable int m_nFinalResultIdx; + mutable QMap m_Tokens;///< Keep all tokens that we can translate + mutable QMap m_Numbers;///< Keep all numbers what exist in formula void Assign(const QmuParserBase &a_Parser); void InitTokenReader(); - void ReInit() const Q_DECL_NOEXCEPT; + void ReInit() const; void AddCallback(const QString &a_strName, const QmuParserCallback &a_Callback, funmap_type &a_Storage, const QString &a_szCharSet ); void ApplyRemainingOprt(QStack &a_stOpt, QStack &a_stVal) const; @@ -297,16 +301,26 @@ inline void QmuParserBase::SetVarFactory(facfun_type a_pFactory, void *pUserData * @brief Get the default symbols used for the built in operators. * @sa c_DefaultOprt */ -inline const QStringList &QmuParserBase::GetOprtDef() Q_DECL_NOEXCEPT +inline const QStringList &QmuParserBase::GetOprtDef() { return c_DefaultOprt; } +inline QMap QmuParserBase::GetTokens() const +{ + return m_Tokens; +} + +inline QMap QmuParserBase::GetNumbers() const +{ + return m_Numbers; +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief Define the set of valid characters to be used in names of functions, variables, constants. */ -inline void QmuParserBase::DefineNameChars(const QString &a_szCharset) Q_DECL_NOEXCEPT +inline void QmuParserBase::DefineNameChars(const QString &a_szCharset) { m_sNameChars = a_szCharset; } @@ -315,7 +329,7 @@ inline void QmuParserBase::DefineNameChars(const QString &a_szCharset) Q_DECL_NO /** * @brief Define the set of valid characters to be used in names of binary operators and postfix operators. */ -inline void QmuParserBase::DefineOprtChars(const QString &a_szCharset) Q_DECL_NOEXCEPT +inline void QmuParserBase::DefineOprtChars(const QString &a_szCharset) { m_sOprtChars = a_szCharset; } @@ -324,7 +338,7 @@ inline void QmuParserBase::DefineOprtChars(const QString &a_szCharset) Q_DECL_NO /** * @brief Define the set of valid characters to be used in names of infix operators. */ -inline void QmuParserBase::DefineInfixOprtChars(const QString &a_szCharset) Q_DECL_NOEXCEPT +inline void QmuParserBase::DefineInfixOprtChars(const QString &a_szCharset) { m_sInfixOprtChars = a_szCharset; } @@ -333,7 +347,7 @@ inline void QmuParserBase::DefineInfixOprtChars(const QString &a_szCharset) Q_DE /** * @brief Return a map containing the used variables only. */ -inline const varmap_type &QmuParserBase::GetVar() const Q_DECL_NOEXCEPT +inline const varmap_type &QmuParserBase::GetVar() const { return m_VarDef; } @@ -342,7 +356,7 @@ inline const varmap_type &QmuParserBase::GetVar() const Q_DECL_NOEXCEPT /** * @brief Return a map containing all parser constants. */ -inline const valmap_type &QmuParserBase::GetConst() const Q_DECL_NOEXCEPT +inline const valmap_type &QmuParserBase::GetConst() const { return m_ConstDef; } @@ -358,7 +372,7 @@ inline const valmap_type &QmuParserBase::GetConst() const Q_DECL_NOEXCEPT * parser functions. String functions are not part of this map. The Prototype definition is encapsulated in objects * of the class FunProt one per parser function each associated with function names via a map construct. */ -inline const funmap_type &QmuParserBase::GetFunDef() const Q_DECL_NOEXCEPT +inline const funmap_type &QmuParserBase::GetFunDef() const { return m_FunDef; } @@ -378,7 +392,7 @@ inline const QString& QmuParserBase::GetExpr() const * @return #m_bBuiltInOp; true if built in operators are enabled. * @throw nothrow */ -inline bool QmuParserBase::HasBuiltInOprt() const Q_DECL_NOEXCEPT +inline bool QmuParserBase::HasBuiltInOprt() const { return m_bBuiltInOp; } @@ -391,7 +405,7 @@ inline bool QmuParserBase::HasBuiltInOprt() const Q_DECL_NOEXCEPT * value. This function returns the number of available results. */ // cppcheck-suppress unusedFunction -inline int QmuParserBase::GetNumResults() const Q_DECL_NOEXCEPT +inline int QmuParserBase::GetNumResults() const { return m_nFinalResultIdx; } diff --git a/src/libs/qmuparser/qmuparserbytecode.cpp b/src/libs/qmuparser/qmuparserbytecode.cpp index cdd8e63ce..e4f27746e 100644 --- a/src/libs/qmuparser/qmuparserbytecode.cpp +++ b/src/libs/qmuparser/qmuparserbytecode.cpp @@ -40,7 +40,7 @@ namespace qmu * @brief Bytecode default constructor. */ // cppcheck-suppress uninitMemberVar -QmuParserByteCode::QmuParserByteCode() Q_DECL_NOEXCEPT +QmuParserByteCode::QmuParserByteCode() :m_iStackPos(0), m_iMaxStackSize(0), m_vRPN(), m_bEnableOptimizer(true) { m_vRPN.reserve(50); @@ -53,7 +53,7 @@ QmuParserByteCode::QmuParserByteCode() Q_DECL_NOEXCEPT * Implemented in Terms of Assign(const QParserByteCode &a_ByteCode) */ // cppcheck-suppress uninitMemberVar -QmuParserByteCode::QmuParserByteCode(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT +QmuParserByteCode::QmuParserByteCode(const QmuParserByteCode &a_ByteCode) :m_iStackPos(a_ByteCode.m_iStackPos), m_iMaxStackSize(a_ByteCode.m_iMaxStackSize), m_vRPN(a_ByteCode.m_vRPN), m_bEnableOptimizer(true) { @@ -67,7 +67,7 @@ QmuParserByteCode::QmuParserByteCode(const QmuParserByteCode &a_ByteCode) Q_DECL * Implemented in Terms of Assign(const QParserByteCode &a_ByteCode) */ // cppcheck-suppress operatorEqVarError -QmuParserByteCode& QmuParserByteCode::operator=(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT +QmuParserByteCode& QmuParserByteCode::operator=(const QmuParserByteCode &a_ByteCode) { Assign(a_ByteCode); return *this; @@ -79,7 +79,7 @@ QmuParserByteCode& QmuParserByteCode::operator=(const QmuParserByteCode &a_ByteC * * @throw nowthrow */ -void QmuParserByteCode::Assign(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT +void QmuParserByteCode::Assign(const QmuParserByteCode &a_ByteCode) { if (this==&a_ByteCode) { @@ -98,7 +98,7 @@ void QmuParserByteCode::Assign(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXC * @param a_pVar Pointer to be added. * @throw nothrow */ -void QmuParserByteCode::AddVar(qreal *a_pVar) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddVar(qreal *a_pVar) { ++m_iStackPos; m_iMaxStackSize = qMax(m_iMaxStackSize, static_cast(m_iStackPos)); @@ -126,7 +126,7 @@ void QmuParserByteCode::AddVar(qreal *a_pVar) Q_DECL_NOEXCEPT * @param a_pVal Value to be added. * @throw nothrow */ -void QmuParserByteCode::AddVal(qreal a_fVal) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddVal(qreal a_fVal) { ++m_iStackPos; m_iMaxStackSize = qMax(m_iMaxStackSize, static_cast(m_iStackPos)); @@ -472,7 +472,7 @@ void QmuParserByteCode::AddOp(ECmdCode a_Oprt) } //--------------------------------------------------------------------------------------------------------------------- -void QmuParserByteCode::AddIfElse(ECmdCode a_Oprt) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddIfElse(ECmdCode a_Oprt) { SToken tok; tok.Cmd = a_Oprt; @@ -491,7 +491,7 @@ void QmuParserByteCode::AddIfElse(ECmdCode a_Oprt) Q_DECL_NOEXCEPT * * @sa ParserToken::ECmdCode */ -void QmuParserByteCode::AddAssignOp(qreal *a_pVar) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddAssignOp(qreal *a_pVar) { --m_iStackPos; @@ -508,7 +508,7 @@ void QmuParserByteCode::AddAssignOp(qreal *a_pVar) Q_DECL_NOEXCEPT * @param a_iArgc Number of arguments, negative numbers indicate multiarg functions. * @param a_pFun Pointer to function callback. */ -void QmuParserByteCode::AddFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddFun(generic_fun_type a_pFun, int a_iArgc) { if (a_iArgc>=0) { @@ -535,7 +535,7 @@ void QmuParserByteCode::AddFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEX * @param a_iArgc Number of arguments, negative numbers indicate multiarg functions. * @param a_pFun Pointer to function callback. */ -void QmuParserByteCode::AddBulkFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddBulkFun(generic_fun_type a_pFun, int a_iArgc) { m_iStackPos = m_iStackPos - a_iArgc + 1; m_iMaxStackSize = qMax(m_iMaxStackSize, static_cast(m_iStackPos)); @@ -555,7 +555,7 @@ void QmuParserByteCode::AddBulkFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_ * A string function entry consists of the stack position of the return value, followed by a cmSTRFUNC code, the * function pointer and an index into the string buffer maintained by the parser. */ -void QmuParserByteCode::AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iIdx) Q_DECL_NOEXCEPT +void QmuParserByteCode::AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iIdx) { m_iStackPos = m_iStackPos - a_iArgc + 1; @@ -575,7 +575,7 @@ void QmuParserByteCode::AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iI * * @throw nothrow */ -void QmuParserByteCode::Finalize() Q_DECL_NOEXCEPT +void QmuParserByteCode::Finalize() { SToken tok; tok.Cmd = cmEND; @@ -662,7 +662,7 @@ const SToken* QmuParserByteCode::GetBase() const * The name of this function is a violation of my own coding guidelines but this way it's more in line with the STL * functions thus more intuitive. */ -void QmuParserByteCode::clear() Q_DECL_NOEXCEPT +void QmuParserByteCode::clear() { m_vRPN.clear(); m_iStackPos = 0; diff --git a/src/libs/qmuparser/qmuparserbytecode.h b/src/libs/qmuparser/qmuparserbytecode.h index 09e27bef8..3961cf9c0 100644 --- a/src/libs/qmuparser/qmuparserbytecode.h +++ b/src/libs/qmuparser/qmuparserbytecode.h @@ -81,23 +81,23 @@ struct SToken class QmuParserByteCode { public: - QmuParserByteCode() Q_DECL_NOEXCEPT; - QmuParserByteCode(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT; - QmuParserByteCode& operator=(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT; - void Assign(const QmuParserByteCode &a_ByteCode) Q_DECL_NOEXCEPT; - void AddVar(qreal *a_pVar) Q_DECL_NOEXCEPT; - void AddVal(qreal a_fVal) Q_DECL_NOEXCEPT; + QmuParserByteCode(); + QmuParserByteCode(const QmuParserByteCode &a_ByteCode); + QmuParserByteCode& operator=(const QmuParserByteCode &a_ByteCode); + void Assign(const QmuParserByteCode &a_ByteCode); + void AddVar(qreal *a_pVar); + void AddVal(qreal a_fVal); void AddOp(ECmdCode a_Oprt); - void AddIfElse(ECmdCode a_Oprt) Q_DECL_NOEXCEPT; - void AddAssignOp(qreal *a_pVar) Q_DECL_NOEXCEPT; - void AddFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEXCEPT; - void AddBulkFun(generic_fun_type a_pFun, int a_iArgc) Q_DECL_NOEXCEPT; - void AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iIdx) Q_DECL_NOEXCEPT; - void EnableOptimizer(bool bStat) Q_DECL_NOEXCEPT; - void Finalize() Q_DECL_NOEXCEPT; - void clear() Q_DECL_NOEXCEPT; - std::size_t GetMaxStackSize() const Q_DECL_NOEXCEPT; - std::size_t GetSize() const Q_DECL_NOEXCEPT; + void AddIfElse(ECmdCode a_Oprt); + void AddAssignOp(qreal *a_pVar); + void AddFun(generic_fun_type a_pFun, int a_iArgc); + void AddBulkFun(generic_fun_type a_pFun, int a_iArgc); + void AddStrFun(generic_fun_type a_pFun, int a_iArgc, int a_iIdx); + void EnableOptimizer(bool bStat); + void Finalize(); + void clear(); + std::size_t GetMaxStackSize() const; + std::size_t GetSize() const; const SToken* GetBase() const; void AsciiDump(); private: @@ -122,13 +122,13 @@ private: }; //--------------------------------------------------------------------------------------------------------------------- -inline void QmuParserByteCode::EnableOptimizer(bool bStat) Q_DECL_NOEXCEPT +inline void QmuParserByteCode::EnableOptimizer(bool bStat) { m_bEnableOptimizer = bStat; } //--------------------------------------------------------------------------------------------------------------------- -inline std::size_t QmuParserByteCode::GetMaxStackSize() const Q_DECL_NOEXCEPT +inline std::size_t QmuParserByteCode::GetMaxStackSize() const { return m_iMaxStackSize+1; } @@ -138,7 +138,7 @@ inline std::size_t QmuParserByteCode::GetMaxStackSize() const Q_DECL_NOEXCEPT * @brief Returns the number of entries in the bytecode. */ // cppcheck-suppress unusedFunction -inline std::size_t QmuParserByteCode::GetSize() const Q_DECL_NOEXCEPT +inline std::size_t QmuParserByteCode::GetSize() const { return m_vRPN.size(); } diff --git a/src/libs/qmuparser/qmuparsercallback.cpp b/src/libs/qmuparser/qmuparsercallback.cpp index 75d612b7d..df19b7fb0 100644 --- a/src/libs/qmuparser/qmuparsercallback.cpp +++ b/src/libs/qmuparser/qmuparsercallback.cpp @@ -34,7 +34,7 @@ namespace qmu #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type0 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type0 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -44,7 +44,6 @@ QmuParserCallback::QmuParserCallback ( fun_type0 a_pFun, bool a_bAllowOpti ) Q_D __extension__ #endif QmuParserCallback::QmuParserCallback ( fun_type1 a_pFun, bool a_bAllowOpti, int a_iPrec, ECmdCode a_iCode ) -Q_DECL_NOEXCEPT : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 1 ), m_iPri ( a_iPrec ), m_eOprtAsct ( oaNONE ), m_iCode ( a_iCode ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -57,7 +56,7 @@ Q_DECL_NOEXCEPT #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 2 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -75,7 +74,7 @@ QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti ) Q_D __extension__ #endif QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti, int a_iPrec, - EOprtAssociativity a_eOprtAsct ) Q_DECL_NOEXCEPT + EOprtAssociativity a_eOprtAsct ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 2 ), m_iPri ( a_iPrec ), m_eOprtAsct ( a_eOprtAsct ), m_iCode ( cmOPRT_BIN ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -84,7 +83,7 @@ QmuParserCallback::QmuParserCallback ( fun_type2 a_pFun, bool a_bAllowOpti, int #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type3 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type3 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 3 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -94,7 +93,7 @@ QmuParserCallback::QmuParserCallback ( fun_type3 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type4 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type4 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 4 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -104,7 +103,7 @@ QmuParserCallback::QmuParserCallback ( fun_type4 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type5 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type5 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 5 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -113,7 +112,7 @@ QmuParserCallback::QmuParserCallback ( fun_type5 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type6 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type6 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 6 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -122,7 +121,7 @@ QmuParserCallback::QmuParserCallback ( fun_type6 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type7 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type7 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 7 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -131,7 +130,7 @@ QmuParserCallback::QmuParserCallback ( fun_type7 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type8 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type8 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 8 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -140,7 +139,7 @@ QmuParserCallback::QmuParserCallback ( fun_type8 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type9 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type9 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 9 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -149,7 +148,7 @@ QmuParserCallback::QmuParserCallback ( fun_type9 a_pFun, bool a_bAllowOpti ) Q_D #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( fun_type10 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( fun_type10 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 10 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -158,7 +157,7 @@ QmuParserCallback::QmuParserCallback ( fun_type10 a_pFun, bool a_bAllowOpti ) Q_ #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type0 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type0 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -167,7 +166,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type0 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type1 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type1 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 1 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -180,7 +179,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type1 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type2 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type2 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 2 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -189,7 +188,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type2 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type3 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type3 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 3 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -198,7 +197,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type3 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type4 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type4 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 4 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -207,7 +206,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type4 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type5 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type5 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 5 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -216,7 +215,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type5 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type6 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type6 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 6 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -225,7 +224,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type6 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type7 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type7 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 7 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -234,7 +233,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type7 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type8 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type8 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 8 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -243,7 +242,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type8 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type9 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type9 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 9 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -252,7 +251,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type9 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( bulkfun_type10 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( bulkfun_type10 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 10 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_BULK ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -261,7 +260,7 @@ QmuParserCallback::QmuParserCallback ( bulkfun_type10 a_pFun, bool a_bAllowOpti #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( multfun_type a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( multfun_type a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( -1 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC ), m_iType ( tpDBL ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -270,7 +269,7 @@ QmuParserCallback::QmuParserCallback ( multfun_type a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( strfun_type1 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( strfun_type1 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_STR ), m_iType ( tpSTR ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -279,7 +278,7 @@ QmuParserCallback::QmuParserCallback ( strfun_type1 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( strfun_type2 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( strfun_type2 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 1 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_STR ), m_iType ( tpSTR ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -288,7 +287,7 @@ QmuParserCallback::QmuParserCallback ( strfun_type2 a_pFun, bool a_bAllowOpti ) #ifdef __GNUC__ __extension__ #endif -QmuParserCallback::QmuParserCallback ( strfun_type3 a_pFun, bool a_bAllowOpti ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( strfun_type3 a_pFun, bool a_bAllowOpti ) : m_pFun ( reinterpret_cast ( a_pFun ) ), m_iArgc ( 2 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmFUNC_STR ), m_iType ( tpSTR ), m_bAllowOpti ( a_bAllowOpti ) {} @@ -298,7 +297,7 @@ QmuParserCallback::QmuParserCallback ( strfun_type3 a_pFun, bool a_bAllowOpti ) * @brief Default constructor. * @throw nothrow */ -QmuParserCallback::QmuParserCallback() Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback() : m_pFun ( 0 ), m_iArgc ( 0 ), m_iPri ( -1 ), m_eOprtAsct ( oaNONE ), m_iCode ( cmUNKNOWN ), m_iType ( tpVOID ), m_bAllowOpti ( 0 ) {} @@ -308,7 +307,7 @@ QmuParserCallback::QmuParserCallback() Q_DECL_NOEXCEPT * @brief Copy constructor. * @throw nothrow */ -QmuParserCallback::QmuParserCallback ( const QmuParserCallback &ref ) Q_DECL_NOEXCEPT +QmuParserCallback::QmuParserCallback ( const QmuParserCallback &ref ) : m_pFun ( ref.m_pFun ), m_iArgc ( ref.m_iArgc ), m_iPri ( ref.m_iPri ), m_eOprtAsct ( ref.m_eOprtAsct ), m_iCode ( ref.m_iCode ), m_iType ( ref.m_iType ), m_bAllowOpti ( ref.m_bAllowOpti ) { diff --git a/src/libs/qmuparser/qmuparsercallback.h b/src/libs/qmuparser/qmuparsercallback.h index 2321c63a6..a038fd2ae 100644 --- a/src/libs/qmuparser/qmuparsercallback.h +++ b/src/libs/qmuparser/qmuparsercallback.h @@ -46,47 +46,47 @@ namespace qmu class QmuParserCallback { public: - QmuParserCallback(fun_type0 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type1 a_pFun, bool a_bAllowOpti, int a_iPrec = -1, ECmdCode a_iCode=cmFUNC) Q_DECL_NOEXCEPT; + QmuParserCallback(fun_type0 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type1 a_pFun, bool a_bAllowOpti, int a_iPrec = -1, ECmdCode a_iCode=cmFUNC); QmuParserCallback(fun_type2 a_pFun, bool a_bAllowOpti, int a_iPrec, EOprtAssociativity a_eAssociativity) - Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type2 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type3 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type4 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type5 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type6 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type7 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type8 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type9 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(fun_type10 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; + ; + QmuParserCallback(fun_type2 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type3 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type4 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type5 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type6 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type7 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type8 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type9 a_pFun, bool a_bAllowOpti); + QmuParserCallback(fun_type10 a_pFun, bool a_bAllowOpti); - QmuParserCallback(bulkfun_type0 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type1 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type2 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type3 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type4 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type5 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type6 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type7 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type8 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type9 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(bulkfun_type10 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; + QmuParserCallback(bulkfun_type0 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type1 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type2 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type3 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type4 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type5 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type6 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type7 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type8 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type9 a_pFun, bool a_bAllowOpti); + QmuParserCallback(bulkfun_type10 a_pFun, bool a_bAllowOpti); - QmuParserCallback(multfun_type a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(strfun_type1 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(strfun_type2 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback(strfun_type3 a_pFun, bool a_bAllowOpti) Q_DECL_NOEXCEPT; - QmuParserCallback() Q_DECL_NOEXCEPT; - QmuParserCallback(const QmuParserCallback &a_Fun) Q_DECL_NOEXCEPT; + QmuParserCallback(multfun_type a_pFun, bool a_bAllowOpti); + QmuParserCallback(strfun_type1 a_pFun, bool a_bAllowOpti); + QmuParserCallback(strfun_type2 a_pFun, bool a_bAllowOpti); + QmuParserCallback(strfun_type3 a_pFun, bool a_bAllowOpti); + QmuParserCallback(); + QmuParserCallback(const QmuParserCallback &a_Fun); QmuParserCallback* Clone() const; - bool IsOptimizable() const Q_DECL_NOEXCEPT; - void* GetAddr() const Q_DECL_NOEXCEPT; - ECmdCode GetCode() const Q_DECL_NOEXCEPT; - ETypeCode GetType() const Q_DECL_NOEXCEPT; - int GetPri() const Q_DECL_NOEXCEPT; - EOprtAssociativity GetAssociativity() const Q_DECL_NOEXCEPT; - int GetArgc() const Q_DECL_NOEXCEPT; + bool IsOptimizable() const; + void* GetAddr() const; + ECmdCode GetCode() const; + ETypeCode GetType() const; + int GetPri() const; + EOprtAssociativity GetAssociativity() const; + int GetArgc() const; private: void *m_pFun; ///< Pointer to the callback function, casted to void @@ -127,7 +127,7 @@ inline QmuParserCallback* QmuParserCallback::Clone() const * @throw nothrow */ // cppcheck-suppress unusedFunction -inline bool QmuParserCallback::IsOptimizable() const Q_DECL_NOEXCEPT +inline bool QmuParserCallback::IsOptimizable() const { return m_bAllowOpti; } @@ -141,7 +141,7 @@ inline bool QmuParserCallback::IsOptimizable() const Q_DECL_NOEXCEPT * @throw nothrow * @return #pFun */ -inline void* QmuParserCallback::GetAddr() const Q_DECL_NOEXCEPT +inline void* QmuParserCallback::GetAddr() const { return m_pFun; } @@ -150,13 +150,13 @@ inline void* QmuParserCallback::GetAddr() const Q_DECL_NOEXCEPT /** * @brief Return the callback code. */ -inline ECmdCode QmuParserCallback::GetCode() const Q_DECL_NOEXCEPT +inline ECmdCode QmuParserCallback::GetCode() const { return m_iCode; } //--------------------------------------------------------------------------------------------------------------------- -inline ETypeCode QmuParserCallback::GetType() const Q_DECL_NOEXCEPT +inline ETypeCode QmuParserCallback::GetType() const { return m_iType; } @@ -168,7 +168,7 @@ inline ETypeCode QmuParserCallback::GetType() const Q_DECL_NOEXCEPT * * Only valid if the callback token is an operator token (binary or infix). */ -inline int QmuParserCallback::GetPri() const Q_DECL_NOEXCEPT +inline int QmuParserCallback::GetPri() const { return m_iPri; } @@ -180,7 +180,7 @@ inline int QmuParserCallback::GetPri() const Q_DECL_NOEXCEPT * * Only valid if the callback token is a binary operator token. */ -inline EOprtAssociativity QmuParserCallback::GetAssociativity() const Q_DECL_NOEXCEPT +inline EOprtAssociativity QmuParserCallback::GetAssociativity() const { return m_eOprtAsct; } @@ -189,7 +189,7 @@ inline EOprtAssociativity QmuParserCallback::GetAssociativity() const Q_DECL_NOE /** * @brief Returns the number of function Arguments. */ -inline int QmuParserCallback::GetArgc() const Q_DECL_NOEXCEPT +inline int QmuParserCallback::GetArgc() const { return m_iArgc; } diff --git a/src/libs/qmuparser/qmuparserdef.h b/src/libs/qmuparser/qmuparserdef.h index a15557d9c..ee8d2b73e 100644 --- a/src/libs/qmuparser/qmuparserdef.h +++ b/src/libs/qmuparser/qmuparserdef.h @@ -46,13 +46,8 @@ */ //#define QMUP_USE_OPENMP -#if defined(_UNICODE) - /** @brief Definition of the basic parser string type. */ - #define QMUP_STRING_TYPE std::wstring -#else - /** @brief Definition of the basic parser string type. */ - #define QMUP_STRING_TYPE std::string -#endif +/** @brief Definition of the basic parser string type. */ +#define QMUP_STRING_TYPE std::wstring namespace qmu { diff --git a/src/libs/qmuparser/qmuparsererror.h b/src/libs/qmuparser/qmuparsererror.h index e12790545..0231a0e79 100644 --- a/src/libs/qmuparser/qmuparsererror.h +++ b/src/libs/qmuparser/qmuparsererror.h @@ -100,7 +100,7 @@ public: QmuParserErrorMsg(); ~QmuParserErrorMsg(); - static const QmuParserErrorMsg& Instance() Q_DECL_NOEXCEPT; + static const QmuParserErrorMsg& Instance(); QString operator[] ( unsigned a_iIdx ) const; private: @@ -111,7 +111,7 @@ private: //--------------------------------------------------------------------------------------------------------------------- // cppcheck-suppress unusedFunction -inline const QmuParserErrorMsg& QmuParserErrorMsg::Instance() Q_DECL_NOEXCEPT +inline const QmuParserErrorMsg& QmuParserErrorMsg::Instance() { return m_Instance; } @@ -141,12 +141,12 @@ public: QmuParserError& operator= ( const QmuParserError &a_Obj ); virtual ~QmuParserError() noexcept (true){} - void SetFormula ( const QString &a_strFormula ) Q_DECL_NOEXCEPT; - const QString& GetExpr() const Q_DECL_NOEXCEPT; - const QString& GetMsg() const Q_DECL_NOEXCEPT; - int GetPos() const Q_DECL_NOEXCEPT; - const QString& GetToken() const Q_DECL_NOEXCEPT; - EErrorCodes GetCode() const Q_DECL_NOEXCEPT; + void SetFormula ( const QString &a_strFormula ); + const QString& GetExpr() const; + const QString& GetMsg() const; + int GetPos() const; + const QString& GetToken() const; + EErrorCodes GetCode() const; virtual void raise() const; virtual QmuParserError *clone() const; private: @@ -186,7 +186,7 @@ inline QmuParserError *QmuParserError::clone() const /** * @brief Set the expression related to this error. */ -inline void QmuParserError::SetFormula ( const QString &a_strFormula ) Q_DECL_NOEXCEPT +inline void QmuParserError::SetFormula ( const QString &a_strFormula ) { m_sExpr = a_strFormula; } @@ -195,7 +195,7 @@ inline void QmuParserError::SetFormula ( const QString &a_strFormula ) Q_DECL_NO /** * @brief gets the expression related tp this error. */ -inline const QString& QmuParserError::GetExpr() const Q_DECL_NOEXCEPT +inline const QString& QmuParserError::GetExpr() const { return m_sExpr; } @@ -204,7 +204,7 @@ inline const QString& QmuParserError::GetExpr() const Q_DECL_NOEXCEPT /** * @brief Returns the message string for this error. */ -inline const QString& QmuParserError::GetMsg() const Q_DECL_NOEXCEPT +inline const QString& QmuParserError::GetMsg() const { return m_sMsg; } @@ -215,7 +215,7 @@ inline const QString& QmuParserError::GetMsg() const Q_DECL_NOEXCEPT * * If the error is not related to a distinct position this will return -1 */ -inline int QmuParserError::GetPos() const Q_DECL_NOEXCEPT +inline int QmuParserError::GetPos() const { return m_iPos; } @@ -224,7 +224,7 @@ inline int QmuParserError::GetPos() const Q_DECL_NOEXCEPT /** * @brief Return string related with this token (if available). */ -inline const QString& QmuParserError::GetToken() const Q_DECL_NOEXCEPT +inline const QString& QmuParserError::GetToken() const { return m_sTok; } @@ -233,7 +233,7 @@ inline const QString& QmuParserError::GetToken() const Q_DECL_NOEXCEPT /** * @brief Return the error code. */ -inline EErrorCodes QmuParserError::GetCode() const Q_DECL_NOEXCEPT +inline EErrorCodes QmuParserError::GetCode() const { return m_iErrc; } diff --git a/src/libs/qmuparser/qmuparsertest.cpp b/src/libs/qmuparser/qmuparsertest.cpp index cce7cdfc2..7664df6a3 100644 --- a/src/libs/qmuparser/qmuparsertest.cpp +++ b/src/libs/qmuparser/qmuparsertest.cpp @@ -69,11 +69,7 @@ int QmuParserTester::IsHexVal ( const QString &a_szExpr, int *a_iPos, qreal *a_f unsigned iVal ( 0 ); -#if defined(_UNICODE) std::wstring a_szExprStd = a_szExpr.mid(2).toStdWString(); -#else - std::string a_szExprStd = a_szExpr.mid(2).toStdString(); -#endif // New code based on streams for UNICODE compliance: stringstream_type::pos_type nPos(0); diff --git a/src/libs/qmuparser/qmuparsertoken.h b/src/libs/qmuparser/qmuparsertoken.h index 5dd720766..7241abeef 100644 --- a/src/libs/qmuparser/qmuparsertoken.h +++ b/src/libs/qmuparser/qmuparsertoken.h @@ -270,7 +270,7 @@ public: * @return #m_iType * @throw nothrow */ - ECmdCode GetCode() const Q_DECL_NOEXCEPT + ECmdCode GetCode() const { if ( m_pCallback.get() ) { @@ -442,7 +442,7 @@ public: * @throw nothrow * @sa m_strTok */ - const TString& GetAsString() const Q_DECL_NOEXCEPT + const TString& GetAsString() const { return m_strTok; } diff --git a/src/libs/qmuparser/qmuparsertokenreader.cpp b/src/libs/qmuparser/qmuparsertokenreader.cpp index e2d869c9b..d21bc93be 100644 --- a/src/libs/qmuparser/qmuparsertokenreader.cpp +++ b/src/libs/qmuparser/qmuparsertokenreader.cpp @@ -43,7 +43,7 @@ class QmuParserBase; * @sa Assign * @throw nothrow */ -QmuParserTokenReader::QmuParserTokenReader ( const QmuParserTokenReader &a_Reader ) Q_DECL_NOEXCEPT +QmuParserTokenReader::QmuParserTokenReader ( const QmuParserTokenReader &a_Reader ) :m_pParser( a_Reader.m_pParser ), m_strFormula( a_Reader.m_strFormula ), m_iPos( a_Reader.m_iPos ), m_iSynFlags( a_Reader.m_iSynFlags ), m_bIgnoreUndefVar( a_Reader.m_bIgnoreUndefVar ), m_pFunDef( a_Reader.m_pFunDef ), m_pPostOprtDef( a_Reader.m_pPostOprtDef ), @@ -63,7 +63,7 @@ QmuParserTokenReader::QmuParserTokenReader ( const QmuParserTokenReader &a_Reade * @param a_Reader Object to copy to this token reader. * @throw nothrow */ -QmuParserTokenReader& QmuParserTokenReader::operator= ( const QmuParserTokenReader &a_Reader ) Q_DECL_NOEXCEPT +QmuParserTokenReader& QmuParserTokenReader::operator= ( const QmuParserTokenReader &a_Reader ) { if ( &a_Reader != this ) { @@ -80,7 +80,7 @@ QmuParserTokenReader& QmuParserTokenReader::operator= ( const QmuParserTokenRead * @param a_Reader Object from which the state should be copied. * @throw nothrow */ -void QmuParserTokenReader::Assign ( const QmuParserTokenReader &a_Reader ) Q_DECL_NOEXCEPT +void QmuParserTokenReader::Assign ( const QmuParserTokenReader &a_Reader ) { m_pParser = a_Reader.m_pParser; m_strFormula = a_Reader.m_strFormula; @@ -116,7 +116,7 @@ void QmuParserTokenReader::Assign ( const QmuParserTokenReader &a_Reader ) Q_DEC * @post #m_pParser==a_pParser * @param a_pParent Parent parser object of the token reader. */ -QmuParserTokenReader::QmuParserTokenReader ( QmuParserBase *a_pParent ) Q_DECL_NOEXCEPT +QmuParserTokenReader::QmuParserTokenReader ( QmuParserBase *a_pParent ) : m_pParser ( a_pParent ), m_strFormula(), m_iPos ( 0 ), m_iSynFlags ( 0 ), m_bIgnoreUndefVar ( false ), m_pFunDef ( nullptr ), m_pPostOprtDef ( nullptr ), m_pInfixOprtDef ( nullptr ), m_pOprtDef ( nullptr ), m_pConstDef ( nullptr ), m_pStrVarDef ( nullptr ), m_pVarDef ( nullptr ), m_pFactory ( nullptr ), @@ -136,7 +136,7 @@ QmuParserTokenReader::QmuParserTokenReader ( QmuParserBase *a_pParent ) Q_DECL_N * @return A new QParserTokenReader object. * @throw nothrow */ -QmuParserTokenReader* QmuParserTokenReader::Clone ( QmuParserBase *a_pParent ) const Q_DECL_NOEXCEPT +QmuParserTokenReader* QmuParserTokenReader::Clone ( QmuParserBase *a_pParent ) const { std::unique_ptr ptr ( new QmuParserTokenReader ( *this ) ); ptr->SetParent ( a_pParent ); @@ -144,7 +144,7 @@ QmuParserTokenReader* QmuParserTokenReader::Clone ( QmuParserBase *a_pParent ) c } //--------------------------------------------------------------------------------------------------------------------- -QmuParserTokenReader::token_type& QmuParserTokenReader::SaveBeforeReturn ( const token_type &tok ) Q_DECL_NOEXCEPT +QmuParserTokenReader::token_type& QmuParserTokenReader::SaveBeforeReturn ( const token_type &tok ) { m_lastTok = tok; return m_lastTok; @@ -163,7 +163,7 @@ void QmuParserTokenReader::AddValIdent ( identfun_type a_pCallback ) } //--------------------------------------------------------------------------------------------------------------------- -void QmuParserTokenReader::SetVarCreator ( facfun_type a_pFactory, void *pUserData ) Q_DECL_NOEXCEPT +void QmuParserTokenReader::SetVarCreator ( facfun_type a_pFactory, void *pUserData ) { m_pFactory = a_pFactory; m_pFactoryData = pUserData; @@ -176,7 +176,7 @@ void QmuParserTokenReader::SetVarCreator ( facfun_type a_pFactory, void *pUserDa * Sets the formula position index to zero and set Syntax flags to default for initial formula parsing. * @pre [assert] triggered if a_szFormula==0 */ -void QmuParserTokenReader::SetFormula ( const QString &a_strFormula ) Q_DECL_NOEXCEPT +void QmuParserTokenReader::SetFormula ( const QString &a_strFormula ) { m_strFormula = a_strFormula; ReInit(); @@ -191,7 +191,7 @@ void QmuParserTokenReader::SetFormula ( const QString &a_strFormula ) Q_DECL_NOE * @throw nothrow * @sa ESynCodes */ -void QmuParserTokenReader::ReInit() Q_DECL_NOEXCEPT +void QmuParserTokenReader::ReInit() { m_iPos = 0; m_iSynFlags = sfSTART_OF_LINE; @@ -289,7 +289,7 @@ QmuParserTokenReader::token_type QmuParserTokenReader::ReadNextToken() } //--------------------------------------------------------------------------------------------------------------------- -void QmuParserTokenReader::SetParent ( QmuParserBase *a_pParent ) Q_DECL_NOEXCEPT +void QmuParserTokenReader::SetParent ( QmuParserBase *a_pParent ) { m_pParser = a_pParent; m_pFunDef = &a_pParent->m_FunDef; @@ -311,15 +311,10 @@ void QmuParserTokenReader::SetParent ( QmuParserBase *a_pParent ) Q_DECL_NOEXCEP * @return The Position of the first character not listed in a_szCharSet. * @throw nothrow */ -int QmuParserTokenReader::ExtractToken ( const QString &a_szCharSet, QString &a_sTok, int a_iPos ) const Q_DECL_NOEXCEPT +int QmuParserTokenReader::ExtractToken ( const QString &a_szCharSet, QString &a_sTok, int a_iPos ) const { -#if defined(_UNICODE) const std::wstring m_strFormulaStd = m_strFormula.toStdWString(); const std::wstring a_szCharSetStd = a_szCharSet.toStdWString(); -#else - const std::string m_strFormulaStd = m_strFormula.toStdString(); - const std::string a_szCharSetStd = a_szCharSet.toStdString(); -#endif int iEnd = static_cast(m_strFormulaStd.find_first_not_of ( a_szCharSetStd, a_iPos )); @@ -331,13 +326,8 @@ int QmuParserTokenReader::ExtractToken ( const QString &a_szCharSet, QString &a_ // Assign token string if there was something found if ( a_iPos != iEnd ) { -#if defined(_UNICODE) a_sTok = QString().fromStdWString ( std::wstring ( m_strFormulaStd.begin() + a_iPos, m_strFormulaStd.begin() + iEnd ) ); -#else - a_sTok = QString().fromStdString ( std::string ( m_strFormulaStd.begin() + a_iPos, - m_strFormulaStd.begin() + iEnd ) ); -#endif } return iEnd; @@ -353,13 +343,9 @@ int QmuParserTokenReader::ExtractToken ( const QString &a_szCharSet, QString &a_ */ int QmuParserTokenReader::ExtractOperatorToken ( QString &a_sTok, int a_iPos ) const { -#if defined(_UNICODE) const std::wstring m_strFormulaStd = m_strFormula.toStdWString(); const std::wstring oprtCharsStd = m_pParser->ValidInfixOprtChars().toStdWString(); -#else - const std::string m_strFormulaStd = m_strFormula.toStdString(); - const std::string oprtCharsStd = m_pParser->ValidInfixOprtChars().toStdString(); -#endif + int iEnd = static_cast( m_strFormulaStd.find_first_not_of ( oprtCharsStd, a_iPos ) ); if ( iEnd == static_cast( string_type::npos ) ) { @@ -369,13 +355,8 @@ int QmuParserTokenReader::ExtractOperatorToken ( QString &a_sTok, int a_iPos ) c // Assign token string if there was something found if ( a_iPos != iEnd ) { -#if defined(_UNICODE) a_sTok = QString().fromStdWString ( string_type ( m_strFormulaStd.begin() + a_iPos, m_strFormulaStd.begin() + iEnd ) ); -#else - a_sTok = QString().fromStdString ( string_type ( m_strFormulaStd.begin() + a_iPos, - m_strFormulaStd.begin() + iEnd ) ); -#endif return iEnd; } else @@ -549,12 +530,6 @@ bool QmuParserTokenReader::IsArgSep ( token_type &a_Tok ) */ bool QmuParserTokenReader::IsEOF ( token_type &a_Tok ) { -//#if defined(_UNICODE) -// const char_type* szFormula = m_strFormula.toStdWString().c_str(); -//#else -// const char_type* szFormula = m_strFormula.toStdString().c_str(); -//#endif - // check for EOF if ( m_strFormula.data()[m_iPos] == false /*|| szFormula[m_iPos] == '\n'*/ ) { @@ -848,8 +823,7 @@ bool QmuParserTokenReader::IsValTok ( token_type &a_Tok ) if ( ( *item ) ( m_strFormula.mid ( m_iPos ), &m_iPos, &fVal ) == 1 ) { // 2013-11-27 Issue 2: https://code.google.com/p/muparser/issues/detail?id=2 - //strTok = m_strFormula.mid ( iStart, m_iPos-iStart ); - strTok = m_strFormula.mid ( iStart, m_iPos ); + strTok = m_strFormula.mid ( iStart, m_iPos-iStart ); if ( m_iSynFlags & noVAL ) { Error ( ecUNEXPECTED_VAL, m_iPos - strTok.length(), strTok ); @@ -955,7 +929,7 @@ bool QmuParserTokenReader::IsStrVarTok ( token_type &a_Tok ) * @return true if a variable token has been found. * @throw nothrow */ -bool QmuParserTokenReader::IsUndefVarTok ( token_type &a_Tok ) Q_DECL_NOEXCEPT +bool QmuParserTokenReader::IsUndefVarTok ( token_type &a_Tok ) { QString strTok; int iEnd ( ExtractToken ( m_pParser->ValidNameChars(), strTok, m_iPos ) ); diff --git a/src/libs/qmuparser/qmuparsertokenreader.h b/src/libs/qmuparser/qmuparsertokenreader.h index b7ab1a7cf..43d08106e 100644 --- a/src/libs/qmuparser/qmuparsertokenreader.h +++ b/src/libs/qmuparser/qmuparsertokenreader.h @@ -45,19 +45,19 @@ class QmuParserTokenReader private: typedef QmuParserToken token_type; public: - QmuParserTokenReader(QmuParserBase *a_pParent) Q_DECL_NOEXCEPT; - QmuParserTokenReader* Clone(QmuParserBase *a_pParent) const Q_DECL_NOEXCEPT; + QmuParserTokenReader(QmuParserBase *a_pParent); + QmuParserTokenReader* Clone(QmuParserBase *a_pParent) const; void AddValIdent(identfun_type a_pCallback); - void SetVarCreator(facfun_type a_pFactory, void *pUserData) Q_DECL_NOEXCEPT; - void SetFormula(const QString &a_strFormula) Q_DECL_NOEXCEPT; - void SetArgSep(char_type cArgSep) Q_DECL_NOEXCEPT; - int GetPos() const Q_DECL_NOEXCEPT; - const QString& GetExpr() const Q_DECL_NOEXCEPT; - varmap_type& GetUsedVar() Q_DECL_NOEXCEPT; - QChar GetArgSep() const Q_DECL_NOEXCEPT; - void IgnoreUndefVar(bool bIgnore) Q_DECL_NOEXCEPT; - void ReInit() Q_DECL_NOEXCEPT; + void SetVarCreator(facfun_type a_pFactory, void *pUserData); + void SetFormula(const QString &a_strFormula); + void SetArgSep(char_type cArgSep); + int GetPos() const; + const QString& GetExpr() const; + varmap_type& GetUsedVar(); + QChar GetArgSep() const; + void IgnoreUndefVar(bool bIgnore); + void ReInit(); token_type ReadNextToken(); private: @@ -88,12 +88,12 @@ private: noANY = ~0 ///< All of he above flags set }; - QmuParserTokenReader(const QmuParserTokenReader &a_Reader) Q_DECL_NOEXCEPT; - QmuParserTokenReader& operator=(const QmuParserTokenReader &a_Reader) Q_DECL_NOEXCEPT; - void Assign(const QmuParserTokenReader &a_Reader) Q_DECL_NOEXCEPT; + QmuParserTokenReader(const QmuParserTokenReader &a_Reader); + QmuParserTokenReader& operator=(const QmuParserTokenReader &a_Reader); + void Assign(const QmuParserTokenReader &a_Reader); - void SetParent(QmuParserBase *a_pParent) Q_DECL_NOEXCEPT; - int ExtractToken(const QString &a_szCharSet, QString &a_strTok, int a_iPos) const Q_DECL_NOEXCEPT; + void SetParent(QmuParserBase *a_pParent); + int ExtractToken(const QString &a_szCharSet, QString &a_strTok, int a_iPos) const; int ExtractOperatorToken(QString &a_sTok, int a_iPos) const; bool IsBuiltIn(token_type &a_Tok); @@ -106,11 +106,11 @@ private: bool IsValTok(token_type &a_Tok); bool IsVarTok(token_type &a_Tok); bool IsStrVarTok(token_type &a_Tok); - bool IsUndefVarTok(token_type &a_Tok) Q_DECL_NOEXCEPT; + bool IsUndefVarTok(token_type &a_Tok); bool IsString(token_type &a_Tok); void Q_NORETURN Error(EErrorCodes a_iErrc, int a_iPos = -1, const QString &a_sTok = QString() ) const; - token_type& SaveBeforeReturn(const token_type &tok) Q_DECL_NOEXCEPT; + token_type& SaveBeforeReturn(const token_type &tok); QmuParserBase *m_pParser; QString m_strFormula; @@ -142,7 +142,7 @@ private: * @return #m_iPos * @throw nothrow */ -inline int QmuParserTokenReader::GetPos() const Q_DECL_NOEXCEPT +inline int QmuParserTokenReader::GetPos() const { return m_iPos; } @@ -154,7 +154,7 @@ inline int QmuParserTokenReader::GetPos() const Q_DECL_NOEXCEPT * @return #m_strFormula * @throw nothrow */ -inline const QString& QmuParserTokenReader::GetExpr() const Q_DECL_NOEXCEPT +inline const QString& QmuParserTokenReader::GetExpr() const { return m_strFormula; } @@ -163,7 +163,7 @@ inline const QString& QmuParserTokenReader::GetExpr() const Q_DECL_NOEXCEPT /** * @brief Return a map containing the used variables only. */ -inline varmap_type& QmuParserTokenReader::GetUsedVar() Q_DECL_NOEXCEPT +inline varmap_type& QmuParserTokenReader::GetUsedVar() { return m_UsedVar; } @@ -177,19 +177,19 @@ inline varmap_type& QmuParserTokenReader::GetUsedVar() Q_DECL_NOEXCEPT * Those function should return a complete list of variables including * those the are not defined by the time of it's call. */ -inline void QmuParserTokenReader::IgnoreUndefVar ( bool bIgnore ) Q_DECL_NOEXCEPT +inline void QmuParserTokenReader::IgnoreUndefVar ( bool bIgnore ) { m_bIgnoreUndefVar = bIgnore; } //--------------------------------------------------------------------------------------------------------------------- -inline void QmuParserTokenReader::SetArgSep ( char_type cArgSep ) Q_DECL_NOEXCEPT +inline void QmuParserTokenReader::SetArgSep ( char_type cArgSep ) { m_cArgSep = cArgSep; } //--------------------------------------------------------------------------------------------------------------------- -inline QChar QmuParserTokenReader::GetArgSep() const Q_DECL_NOEXCEPT +inline QChar QmuParserTokenReader::GetArgSep() const { return m_cArgSep; } diff --git a/src/libs/qmuparser/stable.h b/src/libs/qmuparser/stable.h index ec80ff9ca..824fb3b9d 100644 --- a/src/libs/qmuparser/stable.h +++ b/src/libs/qmuparser/stable.h @@ -39,8 +39,11 @@ #ifdef Q_CC_MSVC #define _USE_MATH_DEFINES #endif + +#ifdef QT_CORE_LIB #include -#include +#endif + #endif #endif // STABLE_H diff --git a/src/src.pro b/src/src.pro index 5ffab2912..6e951fd25 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,17 +1,16 @@ TEMPLATE = subdirs -#SUBDIRS = sub_lib sub_tests sub_app SUBDIRS = \ sub_app \ - sub_lib_qmuparser + sub_lib_qmuparser \ + test/ParserTest -sub_lib_qmuparser.subdir = libs/qmuparser sub_lib_qmuparser.file = libs/qmuparser/qmuparser.pro -#sub_tests.file = tests/proj.pro -#sub_tests.depends = sub_lib -sub_app.subdir = app +sub_parser_tests.file = test/ParserTest/ParserTest.pro +sub_parser_tests.depends = sub_lib_qmuparser sub_app.file = app/app.pro sub_app.depends = sub_lib_qmuparser + #This makes it possible to use make -j 4 on your fancy quad-core system with a project that consists of several #components that depend on each other. To simplify the process a bit, the following test function can be defined: diff --git a/src/test/ParserTest/ParserTest.pro b/src/test/ParserTest/ParserTest.pro new file mode 100644 index 000000000..e7da26428 --- /dev/null +++ b/src/test/ParserTest/ParserTest.pro @@ -0,0 +1,66 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2014-05-21T20:43:38 +# +#------------------------------------------------- + +QT += core + +QT -= gui + +TARGET = ParserTest +CONFIG += console c++11 +CONFIG -= app_bundle debug_and_release debug_and_release_target + +TEMPLATE = app + +# directory for executable file +DESTDIR = bin + +# objecs files +OBJECTS_DIR = obj + +SOURCES += main.cpp + +unix { +QMAKE_CXX = ccache g++ +} + +CONFIG(debug, debug|release){ + # Debug + unix { + *-g++{ + QMAKE_CXXFLAGS += -isystem "/usr/include/qt5" -isystem "/usr/include/qt5/QtCore" \ + -O0 -Wall -Wextra -pedantic -Weffc++ -Woverloaded-virtual -Wctor-dtor-privacy \ + -Wnon-virtual-dtor -Wold-style-cast -Wconversion -Winit-self -Wstack-protector \ + -Wunreachable-code -Wcast-align -Wcast-qual -Wdisabled-optimization -Wfloat-equal \ + -Wformat=2 -Wimport \ + -Winvalid-pch -Wunsafe-loop-optimizations -Wlong-long -Wmissing-format-attribute \ + -Wmissing-include-dirs -Wpacked -Wredundant-decls -Winline \ + -Wswitch-default -Wswitch-enum -Wuninitialized -Wvariadic-macros \ + -Wlogical-op -Wnoexcept -Wmissing-noreturn -Wpointer-arith\ + -Wstrict-null-sentinel -Wstrict-overflow=5 -Wundef -Wno-unused -gdwarf-3 \ + -ftrapv + } + } else { + *-g++{#Don't use additional GCC keys on Windows system. + QMAKE_CXXFLAGS += -O0 -Wall -Wextra -pedantic + } + } +}else{ + # Release + *-g++{ + QMAKE_CXXFLAGS += -O2 + } +} + +# Remove generated files at cleaning +QMAKE_DISTCLEAN += $${DESTDIR}/* \ + $${OBJECTS_DIR}/* + +win32:CONFIG(release, debug|release): LIBS += -L../../libs/qmuparser/bin -lqmuparser2 +else:win32:CONFIG(debug, debug|release): LIBS += -L../../libs/qmuparser/bin -lqmuparser2 +else:unix: LIBS += -L../../libs/qmuparser/bin -lqmuparser + +INCLUDEPATH += ../../libs/qmuparser +DEPENDPATH += ../../libs/qmuparser diff --git a/src/test/ParserTest/main.cpp b/src/test/ParserTest/main.cpp new file mode 100644 index 000000000..6158c339c --- /dev/null +++ b/src/test/ParserTest/main.cpp @@ -0,0 +1,77 @@ +/************************************************************************ + ** + ** @file main.cpp + ** @author Roman Telezhynskyi + ** @date 21 5, 2014 + ** + ** @brief + ** @copyright + ** This source code is part of the Valentine project, a pattern making + ** program, whose allow create and modeling patterns of clothing. + ** Copyright (C) 2014 Valentina project + ** 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 . + ** + *************************************************************************/ + +#include +#include +#include +#include "../../libs/qmuparser/qmuparsertest.h" + +using namespace qmu; + +//--------------------------------------------------------------------------------------------------------------------- +void testMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) +{ + QByteArray localMsg = msg.toLocal8Bit(); + switch (type) + { + case QtDebugMsg: + fprintf(stderr, "%s\n", localMsg.constData()); + break; + case QtWarningMsg: + fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, + context.function); + break; + case QtCriticalMsg: + fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, + context.function); + break; + case QtFatalMsg: + fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, + context.function); + abort(); + default: + break; + } +} + +//--------------------------------------------------------------------------------------------------------------------- +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + + qInstallMessageHandler(testMessageOutput); + + qDebug() << "-----------------------------------------------------------"; + qDebug() << "Running test suite:\n"; + + + qmu::Test::QmuParserTester pt; + pt.Run(); + + return a.exec(); +}