diff --git a/.travis.yml b/.travis.yml index f127c76aa..002229d15 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,27 @@ jobs: compiler: clang env: - DEPLOY=true + - LEGACY=false osx_image: xcode11 + cache: + directories: + - $HOME/Library/Caches/Homebrew + - /usr/local/Homebrew + - os: osx + compiler: clang + env: + - DEPLOY=true + - LEGACY=true + osx_image: xcode8 + cache: + directories: + - $HOME/Library/Caches/Homebrew + - /usr/local/Homebrew +before_cache: + - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi +# Credit https://discourse.brew.sh/t/best-practice-for-homebrew-on-travis-brew-update-is-5min-to-build-time/5215/9 +# Cache only .git files under "/usr/local/Homebrew" so "brew update" does not take 5min every build + - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then find /usr/local/Homebrew \! -regex ".+\.git.+" -delete; fi before_install: - | if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then @@ -50,9 +70,16 @@ before_install: wget https://launchpad.net/ubuntu/+archive/primary/+files/ccache_3.3.4-1_amd64.deb; sudo dpkg -i ccache_3.3.4-1_amd64.deb; else - brew update > /dev/null; - brew install qt5; - chmod -R 755 /usr/local/opt/qt5/* + if [[ "$LEGACY" = false ]]; then + brew update > /dev/null; + brew install qt5; + chmod -R 755 /usr/local/opt/qt5/* + else + unset SSL_CERT_FILE; + HOMEBREW_NO_AUTO_UPDATE=1 brew install https://gist.githubusercontent.com/dismine/c3ac01de38e12edcf22d9e05791adf82/raw/f553c39bbc5f3a2b231a767924e846bdd2a56d8d/qt.rb; + brew link qt --force; + chmod -R 755 /usr/local/opt/qt/* + fi fi before_script: - | @@ -102,7 +129,11 @@ before_deploy: - | if [[ "$DEPLOY" == "true" ]]; then ../scripts/macfixqtdylibrpath.py $TRAVIS_BUILD_DIR/build/src/app/valentina/bin/Valentina.app; - tar -C $TRAVIS_BUILD_DIR/build/src/app/valentina/bin --exclude "*.DS_Store" -cvzf valentina-osx-${TRAVIS_COMMIT}.tar.gz Valentina.app/; + if [[ "$LEGACY" = false ]]; then + tar -C $TRAVIS_BUILD_DIR/build/src/app/valentina/bin --exclude "*.DS_Store" -cvzf valentina-osx-${TRAVIS_COMMIT}.tar.gz Valentina.app/; + else + tar -C $TRAVIS_BUILD_DIR/build/src/app/valentina/bin --exclude "*.DS_Store" -cvzf valentina-osx-${TRAVIS_COMMIT}-legacy.tar.gz Valentina.app/; + fi fi deploy: provider: bintray diff --git a/ChangeLog.txt b/ChangeLog.txt index 928d35d93..af5c298fe 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,11 @@ +# Version 0.7.40 (unreleased) +- New function Warning. + +# Version 0.7.39 Nov 17, 2020 +- Fix crash for Line tool notes. +- Restored support for Mac OS 10.11+. +- Updated translations. + # Version 0.7.38 Nov 12, 2020 - Bug fixes. diff --git a/appveyor.yml b/appveyor.yml index 967bc88e6..4fb19e9fb 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -258,7 +258,7 @@ deploy: package: valentina-win_auto-upload publish: true override: true - version: 0.7.38 + version: 0.7.39 on: DEPLOY: true artifact: valentina-win-$(QT_VERSION)-$(APPVEYOR_REPO_BRANCH)-$(APPVEYOR_REPO_COMMIT) diff --git a/common.pri b/common.pri index 858645b51..9cf33735d 100644 --- a/common.pri +++ b/common.pri @@ -41,6 +41,9 @@ win32{ macx{ # Check which minimal OSX version supports current Qt version # See page https://doc.qt.io/qt-5/supported-platforms-and-configurations.html + # For qt 5.14 https://doc.qt.io/qt-5.14/supported-platforms.html + # For Qt 5.13 https://doc.qt.io/archives/qt-5.13/supported-platforms.html + # For Qt 5.12 https://doc-snapshots.qt.io/qt5-5.12/supported-platforms.html # For older versions https://doc.qt.io/qt-5.11/supported-platforms-and-configurations.html equals(QT_MAJOR_VERSION, 5):greaterThan(QT_MINOR_VERSION, 13) {# Qt 5.14 QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.13 diff --git a/dist/OBS_debian/debian.changelog b/dist/OBS_debian/debian.changelog index f1462eed1..6d4012767 100644 --- a/dist/OBS_debian/debian.changelog +++ b/dist/OBS_debian/debian.changelog @@ -1,5 +1,5 @@ -valentina (0.7.38) trusty; urgency=low +valentina (0.7.39) trusty; urgency=low * Auto build. - -- dismine Thu, 12 Nov 2020 16:30:00 +0300 + -- dismine Thu, 17 Nov 2020 16:30:00 +0300 diff --git a/dist/debian/changelog b/dist/debian/changelog index f1462eed1..6d4012767 100644 --- a/dist/debian/changelog +++ b/dist/debian/changelog @@ -1,5 +1,5 @@ -valentina (0.7.38) trusty; urgency=low +valentina (0.7.39) trusty; urgency=low * Auto build. - -- dismine Thu, 12 Nov 2020 16:30:00 +0300 + -- dismine Thu, 17 Nov 2020 16:30:00 +0300 diff --git a/dist/macx/tape/Info.plist b/dist/macx/tape/Info.plist index 4b6bbcff9..c9f820da0 100755 --- a/dist/macx/tape/Info.plist +++ b/dist/macx/tape/Info.plist @@ -19,9 +19,9 @@ CFBundleIdentifier io.bitbucket.valentinaproject.@EXECUTABLE@ CFBundleShortVersionString - 0.7.38 + 0.7.39 CFBundleVersion - 0.7.38.0 + 0.7.39.0 CFBundleInfoDictionaryVersion 6.0 CFBundleDocumentTypes diff --git a/dist/macx/valentina/Info.plist b/dist/macx/valentina/Info.plist index 2b28a3b12..0278316c8 100755 --- a/dist/macx/valentina/Info.plist +++ b/dist/macx/valentina/Info.plist @@ -19,9 +19,9 @@ CFBundleIdentifier io.bitbucket.valentinaproject.@EXECUTABLE@ CFBundleShortVersionString - 0.7.38 + 0.7.39 CFBundleVersion - 0.7.38.0 + 0.7.39.0 CFBundleInfoDictionaryVersion 6.0 CFBundleDocumentTypes diff --git a/dist/rpm/_service b/dist/rpm/_service index a7a5e5d46..93aee5dd8 100644 --- a/dist/rpm/_service +++ b/dist/rpm/_service @@ -1,7 +1,7 @@ git://github.com/dismine/Valentina_git.git - 0.7.38 + 0.7.39 valentina git .git diff --git a/dist/rpm/valentina.spec b/dist/rpm/valentina.spec index cd6e3f0b0..be5462663 100644 --- a/dist/rpm/valentina.spec +++ b/dist/rpm/valentina.spec @@ -91,7 +91,7 @@ Requires: poppler-tools Requires: poppler-utils %endif -Version: 0.7.38 +Version: 0.7.39 Release: 0 URL: https://gitlab.com/smart-pattern/valentina License: GPL-3.0+ diff --git a/dist/valentina.dsc b/dist/valentina.dsc index f62afb612..fd71edb9b 100644 --- a/dist/valentina.dsc +++ b/dist/valentina.dsc @@ -2,7 +2,7 @@ Format: 3.0 (native) Source: valentina Binary: valentina Architecture: i386 amd64 -Version: 0.7.38 +Version: 0.7.39 Maintainer: Roman Telezhynskyi Homepage: https://valentinaproject.bitbucket.io Standards-Version: 3.9.5 @@ -18,8 +18,8 @@ Build-Depends: debhelper (>= 8.0.0), Package-List: valentina deb graphics optional Checksums-Sha1: - 581eb1bf36b4ab7126b5983d809130f15396859e 24838101 valentina_0.7.38.tar + 581eb1bf36b4ab7126b5983d809130f15396859e 24838101 valentina_0.7.39.tar Checksums-Sha256: - 9b156c7120a69b90373efb8ca9998c3e0563a60ad337210166cfd41b00b0f13c 24838101 valentina_0.7.38.tar + 9b156c7120a69b90373efb8ca9998c3e0563a60ad337210166cfd41b00b0f13c 24838101 valentina_0.7.39.tar Files: - 95677e29d3a59cf5b064f7be236a4b78 24838101 valentina_0.7.38.tar + 95677e29d3a59cf5b064f7be236a4b78 24838101 valentina_0.7.39.tar diff --git a/dist/win/inno/valentina.iss b/dist/win/inno/valentina.iss index 6269da7c1..053625e54 100644 --- a/dist/win/inno/valentina.iss +++ b/dist/win/inno/valentina.iss @@ -233,10 +233,6 @@ Source: ".\valentina\*.ini"; DestDir: "{app}"; Flags: ignoreversion Type: filesandordirs; Name: "{app}\translations" Type: files; Name: "{userappdata}\ValentinaTeam\*.ini"; Tasks: deletesettings -[UninstallDelete] -Type: files; Name: "{userappdata}\ValentinaTeam\*.ini" -Type: filesandordirs; Name: "{userappdata}\ValentinaTeam" - [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" @@ -356,6 +352,12 @@ russian.ManageSettings = Управление настройками ukrainian.ManageSettings = Керування налаштуваннями german.ManageSettings = Einstellungen verwalten +QuestionRemoveAnyExistingSettings = Do you want to remove any existing settings? +english.QuestionRemoveAnyExistingSettings = Do you want to remove any existing settings? +russian.QuestionRemoveAnyExistingSettings = Вы хотите удалить существующие настройки? +ukrainian.QuestionRemoveAnyExistingSettings = Видалити будь-які існуючі налаштування? +german.QuestionRemoveAnyExistingSettings = Möchten Sie vorhandene Einstellungen entfernen? + [Code] const @@ -563,3 +565,15 @@ var end; end; end; + +procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); +begin + if CurUninstallStep = usPostUninstall then + begin + if MsgBox(ExpandConstant('{cm:QuestionRemoveAnyExistingSettings}'), mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then + //this is the msg that will display after uninstall + begin + DelTree(ExpandConstant('{userappdata}\ValentinaTeam'), True, True, True); + end; + end; +end; diff --git a/share/bintray.json b/share/bintray.json index 58ac90717..89f47e01f 100644 --- a/share/bintray.json +++ b/share/bintray.json @@ -15,10 +15,10 @@ }, "version": { - "name": "0.7.38", + "name": "0.7.39", "desc": "Test branch release", - "released": "2020-11-12", - "vcs_tag": "v0.7.38", + "released": "2020-11-17", + "vcs_tag": "v0.7.39", "gpgSign": false }, diff --git a/share/translations/valentina.ts b/share/translations/valentina.ts index 3c4937c43..32982c864 100644 --- a/share/translations/valentina.ts +++ b/share/translations/valentina.ts @@ -8031,6 +8031,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10738,6 +10742,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -13284,6 +13292,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -17275,6 +17287,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_cs_CZ.ts b/share/translations/valentina_cs_CZ.ts index 11ffdbb4d..18799e999 100644 --- a/share/translations/valentina_cs_CZ.ts +++ b/share/translations/valentina_cs_CZ.ts @@ -7855,6 +7855,10 @@ Přesto použít nastavení? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10539,6 +10543,10 @@ Tato volba se projeví po opětovném spuštění. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12940,6 +12948,10 @@ Chcete uložit změny? Invalid notch. Neplatný zářez. + + Formula warning: %1. Program will be terminated. + + VBank @@ -17023,6 +17035,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_de_DE.ts b/share/translations/valentina_de_DE.ts index fe5a33ed8..92c3ddd3d 100644 --- a/share/translations/valentina_de_DE.ts +++ b/share/translations/valentina_de_DE.ts @@ -7852,6 +7852,10 @@ Einstellungen trotzdem anwenden? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10536,6 +10540,10 @@ Diese Option wird nach einem Neustart aktiv. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12942,6 +12950,10 @@ Do you want to save your changes? Invalid notch. Fehlerhafter Einschnitt. + + Formula warning: %1. Program will be terminated. + + VBank @@ -16848,6 +16860,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_el_GR.ts b/share/translations/valentina_el_GR.ts index 7b5318a63..84f17ddf1 100644 --- a/share/translations/valentina_el_GR.ts +++ b/share/translations/valentina_el_GR.ts @@ -7732,6 +7732,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10308,6 +10312,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QmuParser @@ -12606,6 +12614,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -16288,6 +16300,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_en_CA.ts b/share/translations/valentina_en_CA.ts index a263a3cd9..e0a30e2b3 100644 --- a/share/translations/valentina_en_CA.ts +++ b/share/translations/valentina_en_CA.ts @@ -7847,6 +7847,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10514,6 +10518,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12895,6 +12903,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -16845,6 +16857,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod Returns the floating-point remainder of numer/denom (rounded towards zero) + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_en_IN.ts b/share/translations/valentina_en_IN.ts index 88f5aa539..f17d67073 100644 --- a/share/translations/valentina_en_IN.ts +++ b/share/translations/valentina_en_IN.ts @@ -7847,6 +7847,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10514,6 +10518,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12895,6 +12903,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -16845,6 +16857,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_en_US.ts b/share/translations/valentina_en_US.ts index 2aa5d6110..574d4f54b 100644 --- a/share/translations/valentina_en_US.ts +++ b/share/translations/valentina_en_US.ts @@ -7847,6 +7847,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10514,6 +10518,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12895,6 +12903,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -16845,6 +16857,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_es_ES.ts b/share/translations/valentina_es_ES.ts index d31877e54..03508cae2 100644 --- a/share/translations/valentina_es_ES.ts +++ b/share/translations/valentina_es_ES.ts @@ -4200,7 +4200,7 @@ Aplicar características de todos modos? Ready - + Listo Name @@ -6797,7 +6797,7 @@ Aplicar características de todos modos? Ready - + Listo @@ -7852,6 +7852,10 @@ Aplicar características de todos modos? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -8945,7 +8949,7 @@ el patrón. Variables Table - Mesa de variables + Tabla de variables Contains information about increments and internal variables @@ -10537,6 +10541,10 @@ Esta opción surtirá efecto después de reiniciar. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12945,6 +12953,10 @@ Quieres guardar los cambios? Invalid notch. Pique invalido. + + Formula warning: %1. Program will be terminated. + + VBank @@ -17028,6 +17040,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod Devuelve el resto de punto flotante de numerador/denominador (redondeado hacia cero) + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_fi_FI.ts b/share/translations/valentina_fi_FI.ts index bf0f96611..1a77ababd 100644 --- a/share/translations/valentina_fi_FI.ts +++ b/share/translations/valentina_fi_FI.ts @@ -7048,6 +7048,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -9408,6 +9412,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QmuParser @@ -11544,6 +11552,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -15171,6 +15183,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_fr_FR.ts b/share/translations/valentina_fr_FR.ts index 345ab918e..60e1fd184 100644 --- a/share/translations/valentina_fr_FR.ts +++ b/share/translations/valentina_fr_FR.ts @@ -7844,6 +7844,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10495,6 +10499,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12867,6 +12875,10 @@ Voulez-vous enregistrer les changements? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -16797,6 +16809,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_he_IL.ts b/share/translations/valentina_he_IL.ts index 092e8d24a..0501f6bdb 100644 --- a/share/translations/valentina_he_IL.ts +++ b/share/translations/valentina_he_IL.ts @@ -6170,6 +6170,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -8339,6 +8343,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QmuParser @@ -10316,6 +10324,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -13755,6 +13767,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VValentinaSettings diff --git a/share/translations/valentina_id_ID.ts b/share/translations/valentina_id_ID.ts index 2e57fe84a..78c7641e7 100644 --- a/share/translations/valentina_id_ID.ts +++ b/share/translations/valentina_id_ID.ts @@ -6507,6 +6507,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -8677,6 +8681,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QmuParser @@ -10696,6 +10704,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -14156,6 +14168,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VValentinaSettings diff --git a/share/translations/valentina_it_IT.ts b/share/translations/valentina_it_IT.ts index 9ebbaf0ec..25cc7b048 100644 --- a/share/translations/valentina_it_IT.ts +++ b/share/translations/valentina_it_IT.ts @@ -7845,6 +7845,10 @@ Applicare la configurazione comunque? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10521,6 +10525,10 @@ Questa opzione sarà effettiva dopo il riavvio del programma. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12897,6 +12905,10 @@ Vuoi salvare le tue modifiche? Invalid notch. Tacca non valida. + + Formula warning: %1. Program will be terminated. + + VBank @@ -16745,6 +16757,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_nl_NL.ts b/share/translations/valentina_nl_NL.ts index ceb1481f0..4c8ffac38 100644 --- a/share/translations/valentina_nl_NL.ts +++ b/share/translations/valentina_nl_NL.ts @@ -4201,7 +4201,7 @@ Toch de instellingen aanpassen? Ready - + Klaar Name @@ -6798,7 +6798,7 @@ Toch de instellingen aanpassen? Ready - + Klaar @@ -7853,6 +7853,10 @@ Toch de instellingen aanpassen? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10536,6 +10540,10 @@ Deze optie wordt actief na een herstart.. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12944,6 +12952,10 @@ Wil je deze veranderingen opslaan? Invalid notch. Ongeldige inkeping. + + Formula warning: %1. Program will be terminated. + + VBank @@ -17027,6 +17039,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod Brengt het drijvende-punt restant van numerator/denominator terug ( afgerond naar nul) + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_pl_PL.ts b/share/translations/valentina_pl_PL.ts index 4c87dd1c0..8577a08c4 100644 --- a/share/translations/valentina_pl_PL.ts +++ b/share/translations/valentina_pl_PL.ts @@ -7134,6 +7134,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -9503,6 +9507,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QmuParser @@ -11760,6 +11768,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -15304,6 +15316,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_pt_BR.ts b/share/translations/valentina_pt_BR.ts index a471b291f..758b3f643 100644 --- a/share/translations/valentina_pt_BR.ts +++ b/share/translations/valentina_pt_BR.ts @@ -7845,6 +7845,10 @@ Aplicar configurações de qualquer forma? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10513,6 +10517,10 @@ Esta opção terá um efeito após o reinício. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12902,6 +12910,10 @@ Deseja salvar suas mudanças? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -16784,6 +16796,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_ro_RO.ts b/share/translations/valentina_ro_RO.ts index c5407f6c4..0139653ff 100644 --- a/share/translations/valentina_ro_RO.ts +++ b/share/translations/valentina_ro_RO.ts @@ -7103,6 +7103,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -9375,6 +9379,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QmuParser @@ -11477,6 +11485,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -14983,6 +14995,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VValentinaSettings diff --git a/share/translations/valentina_ru_RU.ts b/share/translations/valentina_ru_RU.ts index 338741f0e..5b05f8b8b 100644 --- a/share/translations/valentina_ru_RU.ts +++ b/share/translations/valentina_ru_RU.ts @@ -4201,7 +4201,7 @@ Apply settings anyway? Ready - + Готово Name @@ -6799,7 +6799,7 @@ Apply settings anyway? Ready - + Готово @@ -7855,6 +7855,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10500,7 +10504,7 @@ This option will take an affect after restart. Piece name '%1' is not unique. - + Имя детали "%1" не уникальное. Could not find the segment start. @@ -10539,8 +10543,8 @@ This option will take an affect after restart. - Piece name '%1' is not unique. - Имя детали "%1" не уникальное. + Cannot get tokens from formula '%1'. Formula error: %2. + @@ -12950,6 +12954,10 @@ Do you want to save your changes? Invalid notch. Неправильная надсечка. + + Formula warning: %1. Program will be terminated. + + VBank @@ -17038,6 +17046,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_uk_UA.ts b/share/translations/valentina_uk_UA.ts index 6068923fb..da6ee3b13 100644 --- a/share/translations/valentina_uk_UA.ts +++ b/share/translations/valentina_uk_UA.ts @@ -7849,6 +7849,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -10515,6 +10519,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QSaveFile @@ -12895,6 +12903,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -16844,6 +16856,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VVITConverter diff --git a/share/translations/valentina_zh_CN.ts b/share/translations/valentina_zh_CN.ts index 7a0e2362d..c9bd758b8 100644 --- a/share/translations/valentina_zh_CN.ts +++ b/share/translations/valentina_zh_CN.ts @@ -6280,6 +6280,10 @@ Apply settings anyway? Invalid dimension C base value. + + Formula warning: %1. Program will be terminated. + + MainWindow @@ -8471,6 +8475,10 @@ This option will take an affect after restart. Cannot prepare passmark '%1' for piece '%2'. Passmark is empty. + + Cannot get tokens from formula '%1'. Formula error: %2. + + QmuParser @@ -10517,6 +10525,10 @@ Do you want to save your changes? Invalid notch. + + Formula warning: %1. Program will be terminated. + + VBank @@ -13947,6 +13959,16 @@ Raw layout format compatibility error: actualFileVersion = %1 and fileVersion = function fmod + + warning + Calculation warning + + + + Show a warning in calculations + function warning + + VValentinaSettings diff --git a/src/app/tape/mapplication.cpp b/src/app/tape/mapplication.cpp index f48df8829..080b06bd2 100644 --- a/src/app/tape/mapplication.cpp +++ b/src/app/tape/mapplication.cpp @@ -150,23 +150,30 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con type = QtDebugMsg; } + QString logMsg = msg; + const bool isWarningMessage = qApp->IsWarningMessage(msg); + if (isWarningMessage) + { + logMsg = logMsg.remove(VAbstractApplication::warningMessageSignature); + } + switch (type) { case QtDebugMsg: - vStdOut() << QApplication::translate("mNoisyHandler", "DEBUG:") << msg << "\n"; + vStdOut() << QApplication::translate("mNoisyHandler", "DEBUG:") << logMsg << "\n"; return; case QtWarningMsg: - vStdErr() << QApplication::translate("mNoisyHandler", "WARNING:") << msg << "\n"; + vStdErr() << QApplication::translate("mNoisyHandler", "WARNING:") << logMsg << "\n"; break; case QtCriticalMsg: - vStdErr() << QApplication::translate("mNoisyHandler", "CRITICAL:") << msg << "\n"; + vStdErr() << QApplication::translate("mNoisyHandler", "CRITICAL:") << logMsg << "\n"; break; case QtFatalMsg: - vStdErr() << QApplication::translate("mNoisyHandler", "FATAL:") << msg << "\n"; + vStdErr() << QApplication::translate("mNoisyHandler", "FATAL:") << logMsg << "\n"; break; #if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) case QtInfoMsg: - vStdOut() << QApplication::translate("mNoisyHandler", "INFO:") << msg << "\n"; + vStdOut() << QApplication::translate("mNoisyHandler", "INFO:") << logMsg << "\n"; break; #endif default: @@ -216,7 +223,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con { if (topWinAllowsPop) { - messageBox.setText(msg); + messageBox.setText(VAbstractApplication::ClearMessage(logMsg)); messageBox.setStandardButtons(QMessageBox::Ok); messageBox.setWindowModality(Qt::ApplicationModal); messageBox.setModal(true); @@ -335,6 +342,11 @@ bool MApplication::notify(QObject *receiver, QEvent *event) qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation())); return true; } + catch (const qmu::QmuParserWarning &e) + { + qCCritical(mApp, "%s", qUtf8Printable(tr("Formula warning: %1. Program will be terminated.").arg(e.GetMsg()))); + exit(V_EX_DATAERR); + } // These last two cases special. I found that we can't show here modal dialog with error message. // Somehow program doesn't waite untile an error dialog will be closed. But if ignore this program will hang. catch (const qmu::QmuParserError &e) diff --git a/src/app/tape/tape.pro b/src/app/tape/tape.pro index 24daaece2..a1bfd651e 100644 --- a/src/app/tape/tape.pro +++ b/src/app/tape/tape.pro @@ -388,15 +388,6 @@ DEPENDPATH += $$PWD/../../libs/ifc win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/ifc.lib else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/libifc.a -#VMisc static library -unix|win32: LIBS += -L$$OUT_PWD/../../libs/vmisc/$${DESTDIR}/ -lvmisc - -INCLUDEPATH += $$PWD/../../libs/vmisc -DEPENDPATH += $$PWD/../../libs/vmisc - -win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib -else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a - # VGeometry static library (depend on ifc) unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/ -lvgeometry @@ -406,6 +397,15 @@ DEPENDPATH += $$PWD/../../libs/vgeometry win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/vgeometry.lib else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/libvgeometry.a +#VMisc static library +unix|win32: LIBS += -L$$OUT_PWD/../../libs/vmisc/$${DESTDIR}/ -lvmisc + +INCLUDEPATH += $$PWD/../../libs/vmisc +DEPENDPATH += $$PWD/../../libs/vmisc + +win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib +else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a + # QMuParser library win32:CONFIG(release, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -lqmuparser2 else:win32:CONFIG(debug, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -lqmuparser2 diff --git a/src/app/valentina/core/vapplication.cpp b/src/app/valentina/core/vapplication.cpp index be7983b0b..0871c36ca 100644 --- a/src/app/valentina/core/vapplication.cpp +++ b/src/app/valentina/core/vapplication.cpp @@ -169,10 +169,10 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con } QString logMsg = msg; - const bool isPatternMessage = qApp->IsPatternMessage(msg); + const bool isPatternMessage = qApp->IsWarningMessage(msg); if (isPatternMessage) { - logMsg = logMsg.remove(VAbstractValApplication::patternMessageSignature); + logMsg = logMsg.remove(VAbstractValApplication::warningMessageSignature); } { @@ -188,7 +188,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con case QtWarningMsg: if (isPatternMessage) { - qApp->PostPatternMessage(logMsg, type); + qApp->PostWarningMessage(logMsg, type); } debugdate += QStringLiteral(":WARNING:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line) .arg(context.function, context.category, logMsg); @@ -197,7 +197,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con case QtCriticalMsg: if (isPatternMessage) { - qApp->PostPatternMessage(logMsg, type); + qApp->PostWarningMessage(logMsg, type); } debugdate += QStringLiteral(":CRITICAL:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line) .arg(context.function, context.category, logMsg); @@ -212,7 +212,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con case QtInfoMsg: if (isPatternMessage) { - qApp->PostPatternMessage(logMsg, type); + qApp->PostWarningMessage(logMsg, type); } debugdate += QStringLiteral(":INFO:%1(%2)] %3: %4: %5").arg(context.file).arg(context.line) .arg(context.function, context.category, logMsg); @@ -434,6 +434,11 @@ bool VApplication::notify(QObject *receiver, QEvent *event) qUtf8Printable(e.ErrorMessage()), qUtf8Printable(e.DetailedInformation())); return true; } + catch (const qmu::QmuParserWarning &e) + { + qCCritical(vApp, "%s", qUtf8Printable(tr("Formula warning: %1. Program will be terminated.").arg(e.GetMsg()))); + exit(V_EX_DATAERR); + } // These last two cases are special. I found that we can't show here a modal dialog with an error message. // Somehow program doesn't wait until an error dialog will be closed. But if ignore the exception the program will // hang. diff --git a/src/app/valentina/dialogs/vwidgetdetails.cpp b/src/app/valentina/dialogs/vwidgetdetails.cpp index 609d533a9..73ab8b76c 100644 --- a/src/app/valentina/dialogs/vwidgetdetails.cpp +++ b/src/app/valentina/dialogs/vwidgetdetails.cpp @@ -297,7 +297,7 @@ void VWidgetDetails::ShowContextMenu(const QPoint &pos) catch (const VExceptionBadId &) { const QString errorMsg = tr("Cannot find piece by id '%1'").arg(id); - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } } diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 9dc16a8ba..ace489e75 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -174,7 +174,7 @@ void WarningNotUniquePieceName(const QHash *allDetails) { const QString errorMsg = QObject::tr("Piece name '%1' is not unique.").arg(pieceName); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } ++i; @@ -1629,7 +1629,7 @@ void MainWindow::customEvent(QEvent *event) { ZoomFitBestCurrent(); } - else if (event->type() == PATTERN_MESSAGE_EVENT) + else if (event->type() == WARNING_MESSAGE_EVENT) { PrintPatternMessage(event); } @@ -6669,7 +6669,7 @@ void MainWindow::ToolSelectDetail() void MainWindow::PrintPatternMessage(QEvent *event) { SCASSERT(event != nullptr) - auto *patternMessage = static_cast(event); + auto *patternMessage = static_cast(event); QString severity; diff --git a/src/app/valentina/mainwindowsnogui.cpp b/src/app/valentina/mainwindowsnogui.cpp index b9afbe7be..475ad183e 100644 --- a/src/app/valentina/mainwindowsnogui.cpp +++ b/src/app/valentina/mainwindowsnogui.cpp @@ -935,7 +935,7 @@ void MainWindowsNoGUI::PrintPages(QPrinter *printer) { const QString errorMsg = tr("File error.\n\n%1\n\n%2").arg(e.ErrorMessage(), e.DetailedInformation()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } } diff --git a/src/libs/ifc/xml/vabstractpattern.cpp b/src/libs/ifc/xml/vabstractpattern.cpp index c12bf9233..4037bb40f 100644 --- a/src/libs/ifc/xml/vabstractpattern.cpp +++ b/src/libs/ifc/xml/vabstractpattern.cpp @@ -193,6 +193,12 @@ QList GetTokens(const VFormulaField &formula) .arg(formula.expression, e.GetMsg()); return QList(); } + catch (const qmu::QmuParserWarning &e) + { + qWarning() << QObject::tr("Cannot get tokens from formula '%1'. Formula error: %2.") + .arg(formula.expression, e.GetMsg()); + return QList(); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/qmuparser/qmuparser.cpp b/src/libs/qmuparser/qmuparser.cpp index 06e76cb19..3ddf10a87 100644 --- a/src/libs/qmuparser/qmuparser.cpp +++ b/src/libs/qmuparser/qmuparser.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include "qmuparserdef.h" #include "qmuparsererror.h" @@ -414,10 +415,7 @@ QmuParser::QmuParser():QmuParserBase() { AddValIdent(IsVal); - InitCharSets(); - InitFun(); - InitConst(); - InitOprt(); + Init(); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/qmuparser/qmuparserbase.cpp b/src/libs/qmuparser/qmuparserbase.cpp index e94a28a92..bc1d4c849 100644 --- a/src/libs/qmuparser/qmuparserbase.cpp +++ b/src/libs/qmuparser/qmuparserbase.cpp @@ -1383,7 +1383,6 @@ void QmuParserBase::CreateRPN() const stVal.push(opt); const QString &str = opt.GetAsString(); m_vStringBuf.push_back(str); // Store string in internal buffer - m_Tokens.insert(m_pTokenReader->GetPos()-str.length(), str); break; } case cmVAR: diff --git a/src/libs/qmuparser/qmuparsererror.cpp b/src/libs/qmuparser/qmuparsererror.cpp index 7e75c402a..987a09c4b 100644 --- a/src/libs/qmuparser/qmuparsererror.cpp +++ b/src/libs/qmuparser/qmuparsererror.cpp @@ -301,4 +301,45 @@ QmuParserError *QmuParserError::clone() const return new QmuParserError(*this); } +//--------------------------------------------------------------------------------------------------------------------- +QmuParserWarning::QmuParserWarning(const QString &sMsg) + : QException(), m_sMsg ( sMsg ) +{} + +//--------------------------------------------------------------------------------------------------------------------- +QmuParserWarning::QmuParserWarning(const QmuParserWarning &a_Obj) + : QException(), m_sMsg(a_Obj.m_sMsg) +{} + +//--------------------------------------------------------------------------------------------------------------------- +QmuParserWarning &QmuParserWarning::operator=(const QmuParserWarning &a_Obj) +{ + if ( this == &a_Obj ) + { + return *this; + } + + m_sMsg = a_Obj.m_sMsg; + return *this; +} + +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief raise method raise for exception + */ +Q_NORETURN void QmuParserWarning::raise() const +{ + throw *this; +} + +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief clone clone exception + * @return new exception + */ +QmuParserWarning *QmuParserWarning::clone() const +{ + return new QmuParserWarning(*this); +} + } // namespace qmu diff --git a/src/libs/qmuparser/qmuparsererror.h b/src/libs/qmuparser/qmuparsererror.h index 41dad2400..4fc6d35e9 100644 --- a/src/libs/qmuparser/qmuparsererror.h +++ b/src/libs/qmuparser/qmuparsererror.h @@ -129,6 +129,31 @@ inline QString QmuParserErrorMsg::operator[] ( int a_iIdx ) const return m_vErrMsg.value(a_iIdx).translate(QString()); } +class QMUPARSERSHARED_EXPORT QmuParserWarning : public QException +{ +public: + explicit QmuParserWarning ( const QString &sMsg ); + QmuParserWarning ( const QmuParserWarning &a_Obj ); + QmuParserWarning& operator= ( const QmuParserWarning &a_Obj ); + virtual ~QmuParserWarning() QMUP_NOEXCEPT_EXPR (true) override {} + + const QString& GetMsg() const; + + Q_NORETURN virtual void raise() const override; + Q_REQUIRED_RESULT virtual QmuParserWarning *clone() const override; +private: + QString m_sMsg; ///< The message string +}; + +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief Returns the message string for this error. + */ +inline const QString& QmuParserWarning::GetMsg() const +{ + return m_sMsg; +} + //--------------------------------------------------------------------------- /** @brief Error class of the parser. @author Ingo Berg diff --git a/src/libs/qmuparser/qmutokenparser.cpp b/src/libs/qmuparser/qmutokenparser.cpp index 45a6520dd..a8840561d 100644 --- a/src/libs/qmuparser/qmutokenparser.cpp +++ b/src/libs/qmuparser/qmutokenparser.cpp @@ -63,6 +63,8 @@ QmuTokenParser::QmuTokenParser(const QString &formula, bool osSeparator, SetVarFactory(AddVariable, this); SetSepForTr(osSeparator, fromUser); + DefineFun(QStringLiteral("warning"), Warning); + // Fix for issue #776. Valentina cannot recognize translated functions. QMap::const_iterator i = translatedFunctions.constBegin(); while (i != translatedFunctions.constEnd()) @@ -100,4 +102,12 @@ bool QmuTokenParser::IsSingle(const QString &formula) return ok; } +//--------------------------------------------------------------------------------------------------------------------- +qreal QmuTokenParser::Warning(const QString &warningMsg, qreal value) +{ + Q_UNUSED(warningMsg); + + return value; +} + }// namespace qmu diff --git a/src/libs/qmuparser/qmutokenparser.h b/src/libs/qmuparser/qmutokenparser.h index 9f0f08b5e..407138d91 100644 --- a/src/libs/qmuparser/qmutokenparser.h +++ b/src/libs/qmuparser/qmutokenparser.h @@ -42,6 +42,9 @@ public: static bool IsSingle(const QString &formula); +protected: + static qreal Warning(const QString &warningMsg, qreal value); + private: Q_DISABLE_COPY(QmuTokenParser) QmuTokenParser(); diff --git a/src/libs/vdxf/libdxfrw/intern/drw_textcodec.cpp b/src/libs/vdxf/libdxfrw/intern/drw_textcodec.cpp index 3cfd120c0..307e4e81e 100644 --- a/src/libs/vdxf/libdxfrw/intern/drw_textcodec.cpp +++ b/src/libs/vdxf/libdxfrw/intern/drw_textcodec.cpp @@ -113,7 +113,7 @@ void DRW_TextCodec::setCodePage(const std::string *c, bool dxfFormat){ const QString errorMsg = QCoreApplication::translate("DRW_TextCodec", "No available codec for code page '%1'.") .arg(cp.c_str()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; if (version < DRW::AC1021 && cp == "UTF-8") { diff --git a/src/libs/vformat/vpatternrecipe.cpp b/src/libs/vformat/vpatternrecipe.cpp index 61a66245b..c8f9304b9 100644 --- a/src/libs/vformat/vpatternrecipe.cpp +++ b/src/libs/vformat/vpatternrecipe.cpp @@ -437,7 +437,7 @@ QDomElement VPatternRecipe::FinalMeasurement(const VFinalMeasurement &fm) tr("Value for final measurtement '%1' is infinite or NaN. " "Please, check your calculations.").arg(fm.name)); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } SetAttribute(recipeFinalMeasurement, QStringLiteral("value"), result); diff --git a/src/libs/vgeometry/vabstractcurve.cpp b/src/libs/vgeometry/vabstractcurve.cpp index fac6f5c3b..e8bde1cd6 100644 --- a/src/libs/vgeometry/vabstractcurve.cpp +++ b/src/libs/vgeometry/vabstractcurve.cpp @@ -146,7 +146,7 @@ QVector VAbstractCurve::GetSegmentPoints(const QPointF &begin, const QP .arg(piece, name(), error); } qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } return segment; diff --git a/src/libs/vlayout/vabstractpiece.cpp b/src/libs/vlayout/vabstractpiece.cpp index 4d9a946dd..51a919a86 100644 --- a/src/libs/vlayout/vabstractpiece.cpp +++ b/src/libs/vlayout/vabstractpiece.cpp @@ -1072,7 +1072,7 @@ QVector VAbstractPiece::Equidistant(QVector points, qreal wid { const QString errorMsg = tr("Piece '%1'. Not enough points to build seam allowance.").arg(name); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return QVector(); } diff --git a/src/libs/vlayout/vbank.cpp b/src/libs/vlayout/vbank.cpp index 12861e401..8931bec50 100644 --- a/src/libs/vlayout/vbank.cpp +++ b/src/libs/vlayout/vbank.cpp @@ -335,7 +335,7 @@ bool VBank::PrepareUnsorted() const qint64 square = details.at(i).Square(); if (square <= 0) { - qCCritical(lBank) << VAbstractValApplication::patternMessageSignature + + qCCritical(lBank) << VAbstractValApplication::warningMessageSignature + tr("Preparing data for layout error: Detail '%1' square <= 0") .arg(details.at(i).GetName()); prepare = false; @@ -360,7 +360,7 @@ bool VBank::PrepareDetails() { if (layoutWidth <= 0) { - qCCritical(lBank) << VAbstractValApplication::patternMessageSignature + + qCCritical(lBank) << VAbstractValApplication::warningMessageSignature + tr("Preparing data for layout error: Layout paper sheet <= 0"); prepare = false; return prepare; @@ -368,7 +368,7 @@ bool VBank::PrepareDetails() if (details.isEmpty()) { - qCCritical(lBank) << VAbstractValApplication::patternMessageSignature + + qCCritical(lBank) << VAbstractValApplication::warningMessageSignature + tr("Preparing data for layout error: List of details is empty"); prepare = false; return prepare; @@ -391,7 +391,7 @@ bool VBank::PrepareDetails() const QString errorMsg = QObject::tr("Piece '%1' has invalid layout allowance. Please, check seam allowance" " to check how seam allowance behave.").arg(details.at(i).GetName()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } const qreal d = details.at(i).Diagonal(); diff --git a/src/libs/vlayout/vlayoutpiece.cpp b/src/libs/vlayout/vlayoutpiece.cpp index 23022e323..42184e8de 100644 --- a/src/libs/vlayout/vlayoutpiece.cpp +++ b/src/libs/vlayout/vlayoutpiece.cpp @@ -270,7 +270,7 @@ QVector ConvertPassmarks(const VPiece &piece, const VContainer QObject::tr("Cannot prepare builtin passmark '%1' for piece '%2'. Passmark is empty.") .arg(pData.nodeName, piece.GetName()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return; } @@ -284,7 +284,7 @@ QVector ConvertPassmarks(const VPiece &piece, const VContainer "empty.") .arg(pData.nodeName, piece.GetName()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return; } layoutPassmark.baseLine = ConstFirst (baseLines); @@ -301,7 +301,7 @@ QVector ConvertPassmarks(const VPiece &piece, const VContainer QObject::tr("Passmark '%1' is not part of piece '%2'.") .arg(pData.nodeName, piece.GetName()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } }; @@ -327,7 +327,7 @@ QVector ConvertPassmarks(const VPiece &piece, const VContainer QObject::tr("Cannot prepare passmark '%1' for piece '%2'. Passmark base line is empty.") .arg(pData.nodeName, piece.GetName()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return; } @@ -347,7 +347,7 @@ QVector ConvertPassmarks(const VPiece &piece, const VContainer QObject::tr("Cannot prepare passmark '%1' for piece '%2'. Passmark is empty.") .arg(pData.nodeName, piece.GetName()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return; } @@ -363,7 +363,7 @@ QVector ConvertPassmarks(const VPiece &piece, const VContainer QObject::tr("Passmark '%1' is not part of piece '%2'.") .arg(pData.nodeName, piece.GetName()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } }; @@ -510,7 +510,7 @@ VLayoutPiece VLayoutPiece::Create(const VPiece &piece, vidtype id, const VContai const QString errorMsg = QObject::tr("Piece '%1'. Seam allowance is not valid.") .arg(piece.GetName()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } det.SetCountourPoints(futureMainPath.result(), diff --git a/src/libs/vlayout/vposter.cpp b/src/libs/vlayout/vposter.cpp index f7d73c80e..13d8fdd51 100644 --- a/src/libs/vlayout/vposter.cpp +++ b/src/libs/vlayout/vposter.cpp @@ -310,7 +310,7 @@ QVector VPoster::ImageWatermark(QGraphicsItem *parent, const Po { const QString errorMsg = tr("Cannot open the watermark image.") + QChar(' ') + error; qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return data; } @@ -320,7 +320,7 @@ QVector VPoster::ImageWatermark(QGraphicsItem *parent, const Po { const QString errorMsg = tr("Not supported file suffix '%1'").arg(f.suffix()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return data; } diff --git a/src/libs/vmisc/customevents.h b/src/libs/vmisc/customevents.h index 72638e16c..d99ca8b1a 100644 --- a/src/libs/vmisc/customevents.h +++ b/src/libs/vmisc/customevents.h @@ -39,7 +39,7 @@ enum CustomEventType { UndoEventType = 1, LiteParseEventType = 2, FitBestCurrentEventType = 3, - PatternMessageEventType = 4, + WarningMessageEventType = 4, }; //--------------------------------------------------------------------------------------------------------------------- @@ -84,19 +84,19 @@ public: }; //--------------------------------------------------------------------------------------------------------------------- -const QEvent::Type PATTERN_MESSAGE_EVENT = static_cast(QEvent::User + - CustomEventType::PatternMessageEventType); +const QEvent::Type WARNING_MESSAGE_EVENT = static_cast(QEvent::User + + CustomEventType::WarningMessageEventType); -class PatternMessageEvent : public QEvent +class WarningMessageEvent : public QEvent { public: - PatternMessageEvent(const QString &message, QtMsgType severity) - : QEvent(PATTERN_MESSAGE_EVENT), + WarningMessageEvent(const QString &message, QtMsgType severity) + : QEvent(WARNING_MESSAGE_EVENT), m_message(message), m_severity(severity) {} - virtual ~PatternMessageEvent() =default; + virtual ~WarningMessageEvent() =default; QString Message() const; @@ -107,12 +107,12 @@ private: QtMsgType m_severity; }; -inline QString PatternMessageEvent::Message() const +inline QString WarningMessageEvent::Message() const { return m_message; } -inline QtMsgType PatternMessageEvent::Severity() const +inline QtMsgType WarningMessageEvent::Severity() const { return m_severity; } diff --git a/src/libs/vmisc/def.cpp b/src/libs/vmisc/def.cpp index e7289a6d7..9da9d89e4 100644 --- a/src/libs/vmisc/def.cpp +++ b/src/libs/vmisc/def.cpp @@ -108,44 +108,31 @@ const QString max_F = QStringLiteral("max"); const QString sum_F = QStringLiteral("sum"); const QString avg_F = QStringLiteral("avg"); const QString fmod_F = QStringLiteral("fmod"); +const QString warning_F = QStringLiteral("warning"); -const QStringList builInFunctions = QStringList() << degTorad_F - << radTodeg_F - << sin_F - << cos_F - << tan_F - << asin_F - << acos_F - << atan_F - << sinh_F - << cosh_F - << tanh_F - << asinh_F - << acosh_F - << atanh_F - << sinD_F - << cosD_F - << tanD_F - << asinD_F - << acosD_F - << atanD_F - << log2_F - << log10_F - << log_F - << ln_F - << exp_F - << sqrt_F - << sign_F - << rint_F - << r2cm_F - << csrCm_F - << csrInch_F - << abs_F - << min_F - << max_F - << sum_F - << avg_F - << fmod_F; +const QStringList builInFunctions +{ + degTorad_F, radTodeg_F, + sin_F, cos_F, tan_F, + asin_F, acos_F, atan_F, + sinh_F, cosh_F, tanh_F, + asinh_F, acosh_F, atanh_F, + sinD_F, cosD_F, tanD_F, + asinD_F, acosD_F, atanD_F, + log2_F, log10_F, log_F, + ln_F, + exp_F, + sqrt_F, + sign_F, + rint_F, r2cm_F, + csrCm_F, csrInch_F, + abs_F, + min_F, max_F, + sum_F, + avg_F, + fmod_F, + warning_F +}; const QString pl_size = QStringLiteral("size"); const QString pl_height = QStringLiteral("height"); diff --git a/src/libs/vmisc/def.h b/src/libs/vmisc/def.h index 9b4e76ae5..73f8f96ff 100644 --- a/src/libs/vmisc/def.h +++ b/src/libs/vmisc/def.h @@ -397,6 +397,7 @@ extern const QString max_F; extern const QString sum_F; extern const QString avg_F; extern const QString fmod_F; +extern const QString warning_F; extern const QStringList builInFunctions; diff --git a/src/libs/vmisc/projectversion.cpp b/src/libs/vmisc/projectversion.cpp index 86dbfe5c7..867a956b1 100644 --- a/src/libs/vmisc/projectversion.cpp +++ b/src/libs/vmisc/projectversion.cpp @@ -42,7 +42,7 @@ extern const int MAJOR_VERSION = 0; extern const int MINOR_VERSION = 7; -extern const int DEBUG_VERSION = 38; +extern const int DEBUG_VERSION = 39; extern const QString APP_VERSION_STR(QStringLiteral("%1.%2.%3.%4").arg(MAJOR_VERSION).arg(MINOR_VERSION) .arg(DEBUG_VERSION).arg(LATEST_TAG_DISTANCE)); diff --git a/src/libs/vmisc/projectversion.h b/src/libs/vmisc/projectversion.h index 66334edde..890a5766f 100644 --- a/src/libs/vmisc/projectversion.h +++ b/src/libs/vmisc/projectversion.h @@ -49,8 +49,8 @@ extern const QString APP_VERSION_STR; // Change version number in projectversion.cpp too. // Synchronize valentina.nsi -#define VER_FILEVERSION 0,7,38 -#define VER_FILEVERSION_STR "0.7.38\0" +#define VER_FILEVERSION 0,7,39 +#define VER_FILEVERSION_STR "0.7.39\0" #define V_PRERELEASE // Mark prerelease builds diff --git a/src/libs/vmisc/vabstractapplication.cpp b/src/libs/vmisc/vabstractapplication.cpp index 78d06a864..9c185d0e6 100644 --- a/src/libs/vmisc/vabstractapplication.cpp +++ b/src/libs/vmisc/vabstractapplication.cpp @@ -50,6 +50,8 @@ # include "appimage.h" #endif // defined(APPIMAGE) && defined(Q_OS_LINUX) +const QString VAbstractApplication::warningMessageSignature = QStringLiteral("[PATTERN MESSAGE]"); + //--------------------------------------------------------------------------------------------------------------------- VAbstractApplication::VAbstractApplication(int &argc, char **argv) :QApplication(argc, argv), @@ -288,3 +290,26 @@ void VAbstractApplication::ClearTranslation() delete pmsTranslator; } } + +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief ClearMessage helps to clear a message string from standard Qt function. + * @param msg the message that contains '"' at the start and at the end + * @return cleared string + */ +QString VAbstractApplication::ClearMessage(QString msg) +{ + if (msg.startsWith('"') && msg.endsWith('"')) + { + msg.remove(0, 1); + msg.chop(1); + } + + return msg; +} + +//--------------------------------------------------------------------------------------------------------------------- +bool VAbstractApplication::IsWarningMessage(const QString &message) const +{ + return VAbstractApplication::ClearMessage(message).startsWith(warningMessageSignature); +} diff --git a/src/libs/vmisc/vabstractapplication.h b/src/libs/vmisc/vabstractapplication.h index b7f9e5231..6afaf899d 100644 --- a/src/libs/vmisc/vabstractapplication.h +++ b/src/libs/vmisc/vabstractapplication.h @@ -77,6 +77,11 @@ public: virtual bool IsAppInGUIMode()const =0; virtual bool IsPedantic() const; + static QString ClearMessage(QString msg); + + static const QString warningMessageSignature; + bool IsWarningMessage(const QString &message) const; + #if defined(Q_OS_WIN) static void WinAttachConsole(); #endif diff --git a/src/libs/vmisc/vabstractvalapplication.cpp b/src/libs/vmisc/vabstractvalapplication.cpp index f9bec265a..0e36f0891 100644 --- a/src/libs/vmisc/vabstractvalapplication.cpp +++ b/src/libs/vmisc/vabstractvalapplication.cpp @@ -30,8 +30,6 @@ #include -const QString VAbstractValApplication::patternMessageSignature = QStringLiteral("[PATTERN MESSAGE]"); - //--------------------------------------------------------------------------------------------------------------------- VAbstractValApplication::VAbstractValApplication(int &argc, char **argv) : VAbstractApplication(argc, argv) @@ -50,31 +48,8 @@ double VAbstractValApplication::fromPixel(double pix) const } //--------------------------------------------------------------------------------------------------------------------- -void VAbstractValApplication::PostPatternMessage(const QString &message, QtMsgType severity) const +void VAbstractValApplication::PostWarningMessage(const QString &message, QtMsgType severity) const { QApplication::postEvent(mainWindow, - new PatternMessageEvent(VAbstractValApplication::ClearMessage(message), severity)); -} - -//--------------------------------------------------------------------------------------------------------------------- -/** - * @brief ClearMessage helps to clear a message string from standard Qt function. - * @param msg the message that contains '"' at the start and at the end - * @return cleared string - */ -QString VAbstractValApplication::ClearMessage(QString msg) -{ - if (msg.startsWith('"') && msg.endsWith('"')) - { - msg.remove(0, 1); - msg.chop(1); - } - - return msg; -} - -//--------------------------------------------------------------------------------------------------------------------- -bool VAbstractValApplication::IsPatternMessage(const QString &message) const -{ - return VAbstractValApplication::ClearMessage(message).startsWith(patternMessageSignature); + new WarningMessageEvent(VAbstractValApplication::ClearMessage(message), severity)); } diff --git a/src/libs/vmisc/vabstractvalapplication.h b/src/libs/vmisc/vabstractvalapplication.h index 105040311..a188388c8 100644 --- a/src/libs/vmisc/vabstractvalapplication.h +++ b/src/libs/vmisc/vabstractvalapplication.h @@ -98,12 +98,7 @@ public: bool getOpeningPattern() const; void setOpeningPattern(); - void PostPatternMessage(const QString &message, QtMsgType severity) const; - - static QString ClearMessage(QString msg); - - static const QString patternMessageSignature; - bool IsPatternMessage(const QString &message) const; + void PostWarningMessage(const QString &message, QtMsgType severity) const; qreal GetDimensionHeight() const; void SetDimensionHeight(qreal dimensionHeight); diff --git a/src/libs/vpatterndb/calculator.cpp b/src/libs/vpatterndb/calculator.cpp index 3139b2d8d..105877a47 100644 --- a/src/libs/vpatterndb/calculator.cpp +++ b/src/libs/vpatterndb/calculator.cpp @@ -33,10 +33,12 @@ #include #include #include +#include #include "../vmisc/def.h" #include "../qmuparser/qmuparsererror.h" #include "variables/vinternalvariable.h" +#include "../vmisc/vabstractapplication.h" //--------------------------------------------------------------------------------------------------------------------- /** @@ -63,6 +65,8 @@ Calculator::Calculator() // set value to 0. SetVarFactory(VarFactory, this); SetSepForEval(); + + DefineFun(QStringLiteral("warning"), Warning); } //--------------------------------------------------------------------------------------------------------------------- @@ -116,3 +120,12 @@ qreal *Calculator::VarFactory(const QString &a_szName, void *a_pUserData) throw qmu::QmuParserError (qmu::ecUNASSIGNABLE_TOKEN); } + +//--------------------------------------------------------------------------------------------------------------------- +qreal Calculator::Warning(const QString &warningMsg, qreal value) +{ + qApp->IsPedantic() ? throw qmu::QmuParserWarning(warningMsg) + : qWarning() << VAbstractApplication::warningMessageSignature + warningMsg; + + return value; +} diff --git a/src/libs/vpatterndb/calculator.h b/src/libs/vpatterndb/calculator.h index 08fd4dcfb..9848e6d19 100644 --- a/src/libs/vpatterndb/calculator.h +++ b/src/libs/vpatterndb/calculator.h @@ -66,6 +66,7 @@ public: qreal EvalFormula(const QHash > *vars, const QString &formula); protected: static qreal* VarFactory(const QString &a_szName, void *a_pUserData); + static qreal Warning(const QString &warningMsg, qreal value); private: Q_DISABLE_COPY(Calculator) QVector> m_varsValues; diff --git a/src/libs/vpatterndb/vpassmark.cpp b/src/libs/vpatterndb/vpassmark.cpp index f9ccf0085..d6eda48aa 100644 --- a/src/libs/vpatterndb/vpassmark.cpp +++ b/src/libs/vpatterndb/vpassmark.cpp @@ -579,7 +579,7 @@ QVector PassmarkBisectorBaseLine(PassmarkStatus seamPassmarkType, const "than minimal allowed.") .arg(passmarkData.nodeName, passmarkData.pieceName); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return QVector(); } @@ -788,7 +788,7 @@ QVector VPassmark::BuiltInSAPassmarkBaseLine(const VPiece &piece) const "than minimal allowed.") .arg(m_data.nodeName, m_data.pieceName); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return QVector(); } } @@ -804,7 +804,7 @@ QVector VPassmark::BuiltInSAPassmarkBaseLine(const VPiece &piece) const "seam allowance. User must manually provide length.") .arg(m_data.nodeName, m_data.pieceName); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return QVector(); } } @@ -848,7 +848,7 @@ QVector VPassmark::SAPassmarkBaseLine(const QVector &seamAllowa const QString errorMsg = QObject::tr("Cannot calculate a notch for point '%1' in piece '%2'. Seam allowance is " "empty.").arg(m_data.nodeName, m_data.pieceName); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return QVector(); // Something wrong } @@ -860,7 +860,7 @@ QVector VPassmark::SAPassmarkBaseLine(const QVector &seamAllowa "position for a notch.") .arg(m_data.nodeName, m_data.pieceName); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return QVector(); // Something wrong } @@ -870,7 +870,7 @@ QVector VPassmark::SAPassmarkBaseLine(const QVector &seamAllowa "notch position.") .arg(m_data.nodeName, m_data.pieceName); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } auto PassmarkIntersection = [this, seamAllowance] (QLineF line, qreal width) @@ -897,7 +897,7 @@ QVector VPassmark::SAPassmarkBaseLine(const QVector &seamAllowa "less than minimal allowed.") .arg(m_data.nodeName, m_data.pieceName); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return QLineF(); } line.setLength(length); @@ -914,7 +914,7 @@ QVector VPassmark::SAPassmarkBaseLine(const QVector &seamAllowa "collapse.") .arg(m_data.nodeName, m_data.pieceName); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } } else @@ -923,7 +923,7 @@ QVector VPassmark::SAPassmarkBaseLine(const QVector &seamAllowa "intersection.") .arg(m_data.nodeName, m_data.pieceName); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } return QLineF(); @@ -938,7 +938,7 @@ QVector VPassmark::SAPassmarkBaseLine(const QVector &seamAllowa "than minimal allowed.") .arg(m_data.nodeName, m_data.pieceName); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } else { diff --git a/src/libs/vpatterndb/vpiece.cpp b/src/libs/vpatterndb/vpiece.cpp index b5c7ff486..8f22261e9 100644 --- a/src/libs/vpatterndb/vpiece.cpp +++ b/src/libs/vpatterndb/vpiece.cpp @@ -937,7 +937,7 @@ bool VPiece::GetPassmarkPreviousSAPoints(const QVector &path, int in const QString errorMsg = tr("Cannot calculate a notch for point '%1' in piece '%2'.") .arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName()); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return false; // Something wrong } @@ -976,7 +976,7 @@ bool VPiece::GetPassmarkNextSAPoints(const QVector &path, int index, const QString errorMsg = tr("Cannot calculate a notch for point '%1' in piece '%2'.") .arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName()); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return false; // Something wrong } @@ -1060,7 +1060,7 @@ VPassmark VPiece::CreatePassmark(const QVector &path, int previousIn const QString errorMsg = tr("Cannot calculate a notch for point '%1' in piece '%2'.") .arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName()); qApp->IsPedantic() ? throw VExceptionInvalidNotch(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return VPassmark(); } @@ -1089,7 +1089,7 @@ VPassmark VPiece::CreatePassmark(const QVector &path, int previousIn const QString infoMsg = tr("Notch for point '%1' in piece '%2' will be disabled. Manual length is less than " "allowed value.") .arg(VPiecePath::NodeName(path, passmarkIndex, data), GetName()); - qInfo() << VAbstractValApplication::patternMessageSignature + infoMsg; + qInfo() << VAbstractValApplication::warningMessageSignature + infoMsg; return VPassmark(); } diff --git a/src/libs/vpatterndb/vpiecenode.cpp b/src/libs/vpatterndb/vpiecenode.cpp index 1798f2a02..719d8f089 100644 --- a/src/libs/vpatterndb/vpiecenode.cpp +++ b/src/libs/vpatterndb/vpiecenode.cpp @@ -162,7 +162,7 @@ qreal VPieceNode::GetSABefore(const VContainer *data) const const QString errorMsg = QObject::tr("Cannot calculate seam allowance before for point '%1'. Reason: %2.") .arg(nodeName, formula.Reason()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return -1; } return formula.getDoubleValue(); @@ -193,7 +193,7 @@ qreal VPieceNode::GetSABefore(const VContainer *data, Unit unit) const const QString errorMsg = QObject::tr("Cannot calculate seam allowance before for point '%1'. Reason: %2.") .arg(nodeName, formula.Reason()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return -1; } @@ -245,7 +245,7 @@ qreal VPieceNode::GetSAAfter(const VContainer *data) const const QString errorMsg = QObject::tr("Cannot calculate seam allowance after for point '%1'. Reason: %2.") .arg(nodeName, formula.Reason()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return -1; } @@ -277,7 +277,7 @@ qreal VPieceNode::GetSAAfter(const VContainer *data, Unit unit) const const QString errorMsg = QObject::tr("Cannot calculate seam allowance after for point '%1'. Reason: ") .arg(nodeName, formula.Reason()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return -1; } @@ -343,7 +343,7 @@ qreal VPieceNode::GetPassmarkLength(const VContainer *data, Unit unit) const const QString errorMsg = QObject::tr("Cannot calculate passmark length for point '%1'. Reason: %2.") .arg(nodeName, formula.Reason()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; return VSAPoint::maxPassmarkLength; } diff --git a/src/libs/vpatterndb/vpiecepath.cpp b/src/libs/vpatterndb/vpiecepath.cpp index 59c2ebb73..0cd36482c 100644 --- a/src/libs/vpatterndb/vpiecepath.cpp +++ b/src/libs/vpatterndb/vpiecepath.cpp @@ -385,7 +385,7 @@ QVector VPiecePath::PathPoints(const VContainer *data, const QVectorIsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } } @@ -402,7 +402,7 @@ QVector VPiecePath::PathPoints(const VContainer *data, const QVectorIsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } } diff --git a/src/libs/vpatterndb/vtranslatevars.cpp b/src/libs/vpatterndb/vtranslatevars.cpp index 0931a12b2..d75078b84 100644 --- a/src/libs/vpatterndb/vtranslatevars.cpp +++ b/src/libs/vpatterndb/vtranslatevars.cpp @@ -533,6 +533,9 @@ void VTranslateVars::InitFunctions() functionsDescriptions.insert(fmod_F, translate("VTranslateVars", "Returns the floating-point remainder of " "numer/denom (rounded towards zero)", "function fmod")); + functions.insert(warning_F, translate("VTranslateVars", "warning", "Calculation warning")); + functionsDescriptions.insert(warning_F, translate("VTranslateVars", "Show a warning in calculations", + "function warning")); } #undef translate diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.cpp index cd59ab249..662185787 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoolcurveintersectaxis.cpp @@ -145,7 +145,7 @@ VToolCurveIntersectAxis *VToolCurveIntersectAxis::Create(VToolCurveIntersectAxis " through point '%3' with angle %4°") .arg(initData.name, curve->ObjectName(), basePoint->name()).arg(angle); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } const qreal segLength = curve->GetLengthByPoint(fPoint); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp index 84d8b3830..5415067c1 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/toollinepoint/vtoollineintersectaxis.cpp @@ -137,7 +137,7 @@ VToolLineIntersectAxis *VToolLineIntersectAxis::Create(VToolLineIntersectAxisIni "through point '%4' and angle %5°") .arg(initData.name, firstPoint->name(), secondPoint->name(), basePoint->name()).arg(axis.angle()); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.cpp index 995acdaa5..fe63d38dd 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoollineintersect.cpp @@ -152,7 +152,7 @@ VToolLineIntersect* VToolLineIntersect::Create(VToolLineIntersectInitData initDa "intersection") .arg(initData.name, p1Line1->name(), p2Line1->name(), p1Line2->name(), p2Line2->name()); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.cpp index ff1b81a74..a7536d80b 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromarcandtangent.cpp @@ -124,7 +124,7 @@ VToolPointFromArcAndTangent *VToolPointFromArcAndTangent::Create(VToolPointFromA const QString errorMsg = tr("Error calculating point '%1'. Tangent to arc '%2' from point '%3' cannot be found") .arg(initData.name, arc.ObjectName(), tPoint.name()); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.cpp index 19fb58a80..0890794a2 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointfromcircleandtangent.cpp @@ -133,7 +133,7 @@ VToolPointFromCircleAndTangent *VToolPointFromCircleAndTangent::Create(VToolPoin .arg(initData.name, cPoint.name()).arg(radius).arg(tPoint.name()); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.cpp index 56d0f0aa5..30bbda66c 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofcontact.cpp @@ -219,7 +219,7 @@ VToolPointOfContact* VToolPointOfContact::Create(VToolPointOfContactInitData &in "intersection with line (%4;%5)") .arg(initData.name, centerP->name()).arg(result).arg(firstP->name(), secondP->name()); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } VPointF *p = new VPointF(fPoint, initData.name, initData.mx, initData.my); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.cpp index 23dc7842e..33069a0b1 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectionarcs.cpp @@ -123,7 +123,7 @@ VToolPointOfIntersectionArcs *VToolPointOfIntersectionArcs::Create(VToolPointOfI const QString errorMsg = tr("Error calculating point '%1'. Arcs '%2' and '%3' have no point of intersection") .arg(initData.name, firstArc->ObjectName(), secondArc->ObjectName()); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.cpp index 164031486..dabd037bf 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncircles.cpp @@ -137,7 +137,7 @@ VToolPointOfIntersectionCircles::Create(VToolPointOfIntersectionCirclesInitData const QString errorMsg = tr("Error calculating point '%1'. Circles with centers in points '%2' and '%3' have " "no point of intersection").arg(initData.name, c1Point.name(), c2Point.name()); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp index c9178c162..0a8e0cc5d 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtoolpointofintersectioncurves.cpp @@ -128,7 +128,7 @@ VToolPointOfIntersectionCurves *VToolPointOfIntersectionCurves::Create(VToolPoin const QString errorMsg = tr("Error calculating point '%1'. Curves '%2' and '%3' have no point of intersection") .arg(initData.name, curve1->name(), curve2->name()); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my); diff --git a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp index 12d8073fc..79833306d 100644 --- a/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp +++ b/src/libs/vtools/tools/drawTools/toolpoint/toolsinglepoint/vtooltriangle.cpp @@ -150,7 +150,7 @@ VToolTriangle* VToolTriangle::Create(VToolTriangleInitData initData) const QString errorMsg = tr("Error calculating point '%1'. Point of intersection cannot be found") .arg(initData.name); qApp->IsPedantic() ? throw VExceptionObjectError(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } VPointF *p = new VPointF(point, initData.name, initData.mx, initData.my); diff --git a/src/libs/vtools/tools/vtoolseamallowance.cpp b/src/libs/vtools/tools/vtoolseamallowance.cpp index 6b9a0af61..ceba1678f 100644 --- a/src/libs/vtools/tools/vtoolseamallowance.cpp +++ b/src/libs/vtools/tools/vtoolseamallowance.cpp @@ -1323,7 +1323,7 @@ void VToolSeamAllowance::RefreshGeometry(bool updateChildren) const QString errorMsg = QObject::tr("Piece '%1'. Seam allowance is not valid.") .arg(detail.GetName()); qApp->IsPedantic() ? throw VException(errorMsg) : - qWarning() << VAbstractValApplication::patternMessageSignature + errorMsg; + qWarning() << VAbstractValApplication::warningMessageSignature + errorMsg; } path.addPath(detail.SeamAllowancePath(futureSeamAllowance.result())); path.setFillRule(Qt::OddEvenFill); diff --git a/src/test/TranslationsTest/TranslationsTest.pro b/src/test/TranslationsTest/TranslationsTest.pro index 5267100dd..5ef2c3862 100644 --- a/src/test/TranslationsTest/TranslationsTest.pro +++ b/src/test/TranslationsTest/TranslationsTest.pro @@ -129,15 +129,6 @@ DEPENDPATH += $$PWD/../../libs/vpatterndb win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a -#VMisc static library -unix|win32: LIBS += -L$$OUT_PWD/../../libs/vmisc/$${DESTDIR} -lvmisc - -INCLUDEPATH += $$PWD/../../libs/vmisc -DEPENDPATH += $$PWD/../../libs/vmisc - -win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib -else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a - ## VGeometry static library (depend on ifc) unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR} -lvgeometry @@ -156,6 +147,15 @@ DEPENDPATH += $$PWD/../../libs/ifc win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/ifc.lib else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/ifc/$${DESTDIR}/libifc.a +#VMisc static library +unix|win32: LIBS += -L$$OUT_PWD/../../libs/vmisc/$${DESTDIR} -lvmisc + +INCLUDEPATH += $$PWD/../../libs/vmisc +DEPENDPATH += $$PWD/../../libs/vmisc + +win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib +else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a + # QMuParser library win32:CONFIG(release, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -lqmuparser2 else:win32:CONFIG(debug, debug|release): LIBS += -L$${OUT_PWD}/../../libs/qmuparser/$${DESTDIR} -lqmuparser2 diff --git a/src/test/ValentinaTest/ValentinaTest.pro b/src/test/ValentinaTest/ValentinaTest.pro index 6dd422899..7cff6b9be 100644 --- a/src/test/ValentinaTest/ValentinaTest.pro +++ b/src/test/ValentinaTest/ValentinaTest.pro @@ -186,6 +186,15 @@ DEPENDPATH += $$PWD/../../libs/vpatterndb win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/vpatterndb.lib else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vpatterndb/$${DESTDIR}/libvpatterndb.a +# VGeometry static library (depend on ifc, VMisc) +unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR} -lvgeometry + +INCLUDEPATH += $$PWD/../../libs/vgeometry +DEPENDPATH += $$PWD/../../libs/vgeometry + +win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/vgeometry.lib +else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/libvgeometry.a + # IFC static library (depend on QMuParser, VMisc) unix|win32: LIBS += -L$$OUT_PWD/../../libs/ifc/$${DESTDIR}/ -lifc @@ -204,15 +213,6 @@ DEPENDPATH += $$PWD/../../libs/vmisc win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/vmisc.lib else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vmisc/$${DESTDIR}/libvmisc.a -# VGeometry static library (depend on ifc) -unix|win32: LIBS += -L$$OUT_PWD/../../libs/vgeometry/$${DESTDIR} -lvgeometry - -INCLUDEPATH += $$PWD/../../libs/vgeometry -DEPENDPATH += $$PWD/../../libs/vgeometry - -win32:!win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/vgeometry.lib -else:unix|win32-g++: PRE_TARGETDEPS += $$OUT_PWD/../../libs/vgeometry/$${DESTDIR}/libvgeometry.a - # VDxf static library unix|win32: LIBS += -L$$OUT_PWD/../../libs/vdxf/$${DESTDIR}/ -lvdxf