diff --git a/CREDIT b/CREDIT
index 0c09dd918..aee8774a4 100644
--- a/CREDIT
+++ b/CREDIT
@@ -1,3 +1,33 @@
+[ca]
+Gràcies a Qt Software per la biblioteca Qt ( http://www.qtsoftware.com/ ), amb llicència GNU/GPL.
+Gràcies al projecte KDE ( http://www.kde.org/ ).
+Gràcies a Loic per les seves explicacions d'ordre matemàtic.
+Gràcies a Remi Collet pels paquets Fedora.
+Gràcies a Laurent Trinques pels paquets Debian.
+Gràcies a `trem' pels paquets Mandriva.
+Gràcies a TuxFamily ( http://tuxfamily.org/ ) per a l'allotjament del projecte.
+Gràcies a `Nishiki' pels seus elements i el seu suport suport.
+Gràcies a qtcentre.org per la seva classe SingleApplication.
+Gràcies a Alfredo Carreto per les seves traduccions i correccions al castellà ( http://electronicosmx.net )
+Gràcies a 'Dr.Slump' et Sivio pour leurs traductions a l'italià
+Gràcies a Jose Carlos Martins per les seves traduccions al portuguès
+Gràcies a Pavel Fric per les seves traduccions al txec
+Gràcies a Pawel Smiech per les seves traduccions al polonès
+Gràcies a Yuriy Litkevich per les seves traduccions al rus
+Gràcies a Youssef Ouamalkran i Antoni Mirabete per les seves traduccions al català
+Gràcies a Gabi Mandoc per les seves traduccions al romanès
+Gràcies a Markus Budde i Jonas Stein et Noah Braden per les seves traduccions a l'alemany
+Gràcies a Mohamed Souabni per les seves traduccions a l'àrab
+Gràcies a Uroš Platiše per les seves traduccions a l'eslovè
+Gràcies a Antun Marakovic per les seves traduccions al croat
+Gràcies a Nikos Papadopoylos && Yannis Gyftomitros per les seves traduccions al grec
+Gràcies a Markos Chandras pels paquets Gentoo
+Gràcies a David pels paquets Slackware
+Gràcies a Chipsterjulien pels paquets Archlinux AUR
+Gràcies a Elbert de NL pels paquets OS/2
+Gràcies a Zloidemon pels paquets (port GCC)
+Gràcies a Mrbit per ebuild els paquets Gentoo
+
[en]
Thanks to Qt Software for their Qt library ( http://www.qtsoftware.com/ ), licensed under GNU/GPL.
Thanks to the KDE project ( http://www.kde.org/ ).
diff --git a/ChangeLog.MD b/ChangeLog.MD
new file mode 100644
index 000000000..a72f88fef
--- /dev/null
+++ b/ChangeLog.MD
@@ -0,0 +1,338 @@
+# Changelog
+
+## [Unreleased](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/HEAD)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9...HEAD)
+
+**Closed issues:**
+
+- Apple silicon download is not working [\#400](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/400)
+- Apple silicon download is not working [\#394](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/394)
+- Differenciating connector for proper labeling [\#390](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/390)
+- Non-perpendicular connections [\#368](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/368)
+- using the wrong Application Data folder on Windows [\#325](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/325)
+- Unclear which PPA to use [\#321](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/321)
+- missing group functionality [\#318](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/318)
+- segfault due to calling method of uninitialized object [\#311](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/311)
+- Cannot open qelectrotech.app on macOS Sequoia 15.0 [\#307](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/307)
+- Dark Mode [\#301](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/301)
+- README 404 Not Found URL: qelectrotech.org/download.html needs to be qelectrotech.org/download.php [\#298](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/298)
+- Malware warning when trying to install dev version 0.100 [\#290](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/290)
+- The page sorting of folio [\#279](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/279)
+- Bad file name for translations [\#278](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/278)
+- Error using Portuguese Language [\#274](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/274)
+- Uninstaller [\#265](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/265)
+- New Maintainer [\#263](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/263)
+- crash on export project db \(sqlite\) [\#262](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/262)
+- https://qelectrotech.org/ is down for several days now ! [\#261](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/261)
+- right click on text crashes app [\#260](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/260)
+- broken link on github [\#259](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/259)
+- Build on Bullseye 11.5 fails [\#254](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/254)
+- Question about ARM target in future release [\#238](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/238)
+- Component library disappears completely after reset of program [\#87](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/87)
+- Can't change language in portable version [\#75](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/75)
+- Transformation Matrix for Element Editor [\#56](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/56)
+
+**Merged pull requests:**
+
+- Fixing translation file list in CMake [\#404](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/404) ([arummler](https://github.com/arummler))
+- Update dependencies to fix compilation errors [\#403](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/403) ([arummler](https://github.com/arummler))
+- Minor corrections to prevent crashes [\#401](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/401) ([Evilscrack](https://github.com/Evilscrack))
+- Correct compositeText alignment on copying [\#399](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/399) ([ChuckNr11](https://github.com/ChuckNr11))
+- Better handling of conductors when moving [\#398](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/398) ([ChuckNr11](https://github.com/ChuckNr11))
+- A few small improvements [\#395](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/395) ([ChuckNr11](https://github.com/ChuckNr11))
+- qet\_de updated [\#388](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/388) ([Bisku](https://github.com/Bisku))
+- only calculate grid-point-size, when min != max [\#387](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/387) ([plc-user](https://github.com/plc-user))
+- Mouse hover text for dynamic text items [\#386](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/386) ([elevatormind](https://github.com/elevatormind))
+- improvement: adjust size of grid-dots with zoom-factor [\#384](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/384) ([plc-user](https://github.com/plc-user))
+- adjust zoom-factor to use cosmetic-line and fixed comments [\#383](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/383) ([plc-user](https://github.com/plc-user))
+- element-editor: fix jumping positions when rotate, mirror or flip [\#382](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/382) ([plc-user](https://github.com/plc-user))
+- unify some more code for Qt5 & Qt6 \(and more\) [\#379](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/379) ([plc-user](https://github.com/plc-user))
+- same simplifications as in \#376 "use the same code for Qt5 & Qt6" [\#377](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/377) ([plc-user](https://github.com/plc-user))
+- simplify and use the same code for Qt5 & Qt6 [\#376](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/376) ([plc-user](https://github.com/plc-user))
+- bordertitleblock: use same code for Qt5 & Qt6 for "numbering" rows [\#375](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/375) ([plc-user](https://github.com/plc-user))
+- some minor changes [\#374](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/374) ([plc-user](https://github.com/plc-user))
+- implement setting of point-size of grids [\#372](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/372) ([plc-user](https://github.com/plc-user))
+- some small changes for selective move [\#370](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/370) ([plc-user](https://github.com/plc-user))
+- Added slovak translation to org.qelectrotech.qelectrotech.desktop [\#369](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/369) ([prescott66](https://github.com/prescott66))
+- unify calls to "setRotation" for element-primitives again [\#367](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/367) ([plc-user](https://github.com/plc-user))
+- Added option to only move dynamic texts [\#365](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/365) ([scorpio810](https://github.com/scorpio810))
+- New variables for conductor text formulas [\#364](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/364) ([scorpio810](https://github.com/scorpio810))
+- Fix typo widht to width [\#362](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/362) ([pkess](https://github.com/pkess))
+- element-editor: add mirror and flip for "text" [\#361](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/361) ([plc-user](https://github.com/plc-user))
+- Add Swedish translation [\#360](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/360) ([scorpio810](https://github.com/scorpio810))
+- German text for launcher and debian package code style [\#359](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/359) ([pkess](https://github.com/pkess))
+- some more rotation, mirror and flip [\#358](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/358) ([plc-user](https://github.com/plc-user))
+- BugFix: Flip and Mirror of terminals [\#357](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/357) ([plc-user](https://github.com/plc-user))
+- element-editor: fix rotation and more [\#356](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/356) ([plc-user](https://github.com/plc-user))
+- minor: mostly typos [\#355](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/355) ([plc-user](https://github.com/plc-user))
+- a few translated shortcuts were still there ... fixed! [\#354](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/354) ([plc-user](https://github.com/plc-user))
+- FIX: some shortcuts do not work with language set to local [\#353](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/353) ([plc-user](https://github.com/plc-user))
+- fix movement of element, when origin is outside of graphics [\#352](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/352) ([plc-user](https://github.com/plc-user))
+- FIX copy-and-paste in element-editor: set paste-position to meaningful values [\#351](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/351) ([plc-user](https://github.com/plc-user))
+- some cleaning for element-file [\#350](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/350) ([plc-user](https://github.com/plc-user))
+- fix: properties in project-file [\#348](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/348) ([plc-user](https://github.com/plc-user))
+- translation: update German and English [\#347](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/347) ([plc-user](https://github.com/plc-user))
+- export: set maximum width / height according limitations in QPainter [\#346](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/346) ([plc-user](https://github.com/plc-user))
+- export: set maximum width / height according specifications of export-type [\#345](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/345) ([plc-user](https://github.com/plc-user))
+- some clean-up for element-file and in code [\#344](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/344) ([plc-user](https://github.com/plc-user))
+- minor: typos, comments, whitespace, translation [\#343](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/343) ([plc-user](https://github.com/plc-user))
+- Sort names in element-file by language-code [\#342](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/342) ([plc-user](https://github.com/plc-user))
+- more precise Log-Text for search of "qet\_tb\_generator" [\#341](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/341) ([plc-user](https://github.com/plc-user))
+- machine\_info: add entry for QETApp::configDir\(\) also for win [\#340](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/340) ([plc-user](https://github.com/plc-user))
+- remove dead code \(local variables that were never used\) [\#339](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/339) ([plc-user](https://github.com/plc-user))
+- minor changes [\#338](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/338) ([plc-user](https://github.com/plc-user))
+- Update of qet\_de [\#337](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/337) ([Bisku](https://github.com/Bisku))
+- rewrite code for executing “qet\_tb\_generator” plugin [\#335](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/335) ([plc-user](https://github.com/plc-user))
+- build-aux/snap/snapcraft.yaml: python3.8 -\> 3.10 [\#334](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/334) ([zultron](https://github.com/zultron))
+- corrected a few places where QETApp::documentDir\(\) should also be used [\#333](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/333) ([plc-user](https://github.com/plc-user))
+- add commandline-parameter "--data-dir" [\#332](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/332) ([plc-user](https://github.com/plc-user))
+- machine\_info: fix element-count and make static text a bit shorter [\#331](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/331) ([plc-user](https://github.com/plc-user))
+- formatting / whitespace - unify declarations [\#330](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/330) ([plc-user](https://github.com/plc-user))
+- Set default-location for projects to documents-dir. [\#329](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/329) ([plc-user](https://github.com/plc-user))
+- machine\_info.cpp: add explaining text for directory-list [\#328](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/328) ([plc-user](https://github.com/plc-user))
+- set config- and data-dir to system-specific paths [\#327](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/327) ([plc-user](https://github.com/plc-user))
+- Update qet\_cs.ts [\#326](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/326) ([pafri](https://github.com/pafri))
+- update German translation [\#324](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/324) ([plc-user](https://github.com/plc-user))
+- fix copyright-year [\#323](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/323) ([plc-user](https://github.com/plc-user))
+- PT-BR language update [\#322](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/322) ([gleissonjoaquim3](https://github.com/gleissonjoaquim3))
+- Fix: Only scroll diagram-view, when moved text leaves visible area [\#320](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/320) ([plc-user](https://github.com/plc-user))
+- Change Sorting of ElementInfo ComboBox [\#319](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/319) ([ChuckNr11](https://github.com/ChuckNr11))
+- Revert "ElementEditor elmt\_info\_cb sorting changed" [\#317](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/317) ([scorpio810](https://github.com/scorpio810))
+- Fix typo and some whitespace [\#316](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/316) ([plc-user](https://github.com/plc-user))
+- Fix missing company-titleblocks in properties-dialog [\#315](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/315) ([plc-user](https://github.com/plc-user))
+- ElementEditor elmt\_info\_cb sorting changed [\#314](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/314) ([ChuckNr11](https://github.com/ChuckNr11))
+- fix typos and whitespace [\#313](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/313) ([plc-user](https://github.com/plc-user))
+- Force light mode in collections like projects [\#312](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/312) ([Arusekk](https://github.com/Arusekk))
+- About QET: improvements in usability [\#310](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/310) ([plc-user](https://github.com/plc-user))
+- use MessageBox to inform user about additional info when importing scaled element [\#308](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/308) ([plc-user](https://github.com/plc-user))
+- make text for missing software "dxf2elmt" translatable [\#304](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/304) ([plc-user](https://github.com/plc-user))
+- QET\_ElementScaler: fix error for Qt 5.9 and added mirroring [\#303](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/303) ([plc-user](https://github.com/plc-user))
+- integrate "QET\_ElementScaler" as external software [\#302](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/302) ([plc-user](https://github.com/plc-user))
+- move code into else-clause to avoid possible crashes [\#300](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/300) ([plc-user](https://github.com/plc-user))
+- add terminal-names to connection in qet-file [\#297](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/297) ([plc-user](https://github.com/plc-user))
+- fix: editing SpinBoxes with keyboard lose focus [\#296](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/296) ([plc-user](https://github.com/plc-user))
+- Spanish lang update [\#295](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/295) ([joseyspain](https://github.com/joseyspain))
+- More spanish translations.Josey [\#294](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/294) ([joseyspain](https://github.com/joseyspain))
+- update German and English translations [\#293](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/293) ([plc-user](https://github.com/plc-user))
+- hide SVG background checkbox in print preferences [\#292](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/292) ([plc-user](https://github.com/plc-user))
+- fixed indentations of the remaining \*.cpp/\*.h files [\#291](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/291) ([plc-user](https://github.com/plc-user))
+- correct more indentations / whitespace [\#289](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/289) ([plc-user](https://github.com/plc-user))
+- update German and English translations [\#288](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/288) ([plc-user](https://github.com/plc-user))
+- some minor changes [\#286](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/286) ([plc-user](https://github.com/plc-user))
+- correct comments [\#285](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/285) ([plc-user](https://github.com/plc-user))
+- FIX SegFault: Disable menu-entry for DB-export when no project loaded [\#284](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/284) ([plc-user](https://github.com/plc-user))
+- changed some remaining "pt\_br" to "pt\_BR" [\#282](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/282) ([plc-user](https://github.com/plc-user))
+- add option "transparent background" in SVG-export [\#281](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/281) ([plc-user](https://github.com/plc-user))
+- Fix sizes [\#280](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/280) ([plc-user](https://github.com/plc-user))
+- added folder "company-titleblocks" \(incl. language-files\) [\#277](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/277) ([plc-user](https://github.com/plc-user))
+- update translations: de, en, nl [\#276](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/276) ([plc-user](https://github.com/plc-user))
+- fix: set default "company-element-dir" [\#275](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/275) ([plc-user](https://github.com/plc-user))
+- Fix Cmake build [\#273](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/273) ([De-Backer](https://github.com/De-Backer))
+- added "company-collection" as second user-collection [\#272](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/272) ([plc-user](https://github.com/plc-user))
+- corrected german texts for "line-style" [\#269](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/269) ([plc-user](https://github.com/plc-user))
+- Too many parts [\#268](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/268) ([scorpio810](https://github.com/scorpio810))
+- Merge Terminal strip to master [\#267](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/267) ([scorpio810](https://github.com/scorpio810))
+- Terminal strip [\#266](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/266) ([scorpio810](https://github.com/scorpio810))
+- Added new symbols [\#264](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/264) ([kamikazzyyyy](https://github.com/kamikazzyyyy))
+
+## [0.9](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9) (2023-01-03)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2022/12/30...0.9)
+
+## [0.9-dev-2022/12/30](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2022/12/30) (2022-12-30)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2022/08/15...0.9-dev-2022/12/30)
+
+## [0.9-dev-2022/08/15](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2022/08/15) (2022-08-13)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2022/04/22...0.9-dev-2022/08/15)
+
+**Closed issues:**
+
+- Polylines always closed on dxf export [\#228](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/228)
+- Refreshing after making changes to elements [\#168](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/168)
+
+## [9-dev-2022/04/22](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2022/04/22) (2022-04-09)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/09/09...9-dev-2022/04/22)
+
+**Closed issues:**
+
+- File dialog should enforce suffix [\#206](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/206)
+- snap: Update stable release to core20 & introduce branch for stable releases [\#201](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/201)
+- Can we submit Flatpak to Flathub? [\#143](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/143)
+
+## [9-dev-2021/09/09](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/09/09) (2021-09-08)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/06/28...9-dev-2021/09/09)
+
+## [9-dev-2021/06/28](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/06/28) (2021-07-06)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/05/09...9-dev-2021/06/28)
+
+## [9-dev-2021/05/09](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/05/09) (2021-05-09)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2021/05...9-dev-2021/05/09)
+
+## [0.9-dev-2021/05](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2021/05) (2021-04-30)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8.0...0.9-dev-2021/05)
+
+**Merged pull requests:**
+
+- Rewrite how Properties are stored in the Project file [\#144](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/144) ([Murmele](https://github.com/Murmele))
+- Xml properties rebase2 [\#80](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/80) ([Murmele](https://github.com/Murmele))
+
+## [0.8.0](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8.0) (2021-02-21)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev...0.8.0)
+
+## [0.9-dev](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev) (2021-02-21)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8.rc...0.9-dev)
+
+**Closed issues:**
+
+- QET font [\#110](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/110)
+
+## [0.8.rc](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8.rc) (2020-12-01)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8-dev...0.8.rc)
+
+**Closed issues:**
+
+- overlapping comparisons always evaluate to true [\#78](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/78)
+- New snap break HiDPI [\#41](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/41)
+
+## [0.8-dev](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8-dev) (2019-08-06)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.7.0...0.8-dev)
+
+## [0.7.0](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.7.0) (2019-07-17)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2a...0.7.0)
+
+## [0.2a](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2a) (2019-06-26)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2b...0.2a)
+
+## [0.2b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2b) (2019-06-26)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2rc1...0.2b)
+
+## [0.2rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2rc1) (2019-06-26)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2rc2...0.2rc1)
+
+## [0.2rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2rc2) (2019-06-26)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2...0.2rc2)
+
+## [0.2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2) (2019-06-26)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3a...0.2)
+
+## [0.3a](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3a) (2019-06-26)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.11...0.3a)
+
+## [0.11](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.11) (2019-06-26)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.21...0.11)
+
+## [0.21](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.21) (2019-06-26)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.22...0.21)
+
+## [0.22](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.22) (2019-06-26)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.70rc2...0.22)
+
+## [0.70rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.70rc2) (2019-06-25)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.70rc1...0.70rc2)
+
+## [0.70rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.70rc1) (2019-04-12)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.61...0.70rc1)
+
+## [0.61](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.61) (2018-08-23)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6...0.61)
+
+## [0.6](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6) (2018-03-06)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc4...0.6)
+
+## [0.6rc4](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc4) (2018-01-12)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc3...0.6rc4)
+
+## [0.6rc3](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc3) (2017-09-20)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc2...0.6rc3)
+
+## [0.6rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc2) (2017-06-13)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc1...0.6rc2)
+
+## [0.6rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc1) (2017-04-23)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5...0.6rc1)
+
+## [0.5](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5) (2015-11-27)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5rc1...0.5)
+
+## [0.5rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5rc1) (2015-10-30)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5b...0.5rc1)
+
+## [0.5b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5b) (2015-10-04)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4...0.5b)
+
+## [0.4](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4) (2015-02-20)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4rc2...0.4)
+
+## [0.4rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4rc2) (2014-12-27)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4rc1...0.4rc2)
+
+## [0.4rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4rc1) (2014-11-10)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4b...0.4rc1)
+
+## [0.4b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4b) (2014-11-02)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3...0.4b)
+
+## [0.3](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3) (2013-09-28)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3rc...0.3)
+
+## [0.3rc](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3rc) (2013-09-10)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3b...0.3rc)
+
+## [0.3b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3b) (2013-06-18)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1...0.3b)
+
+## [0.1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1) (2008-03-08)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1rc1...0.1)
+
+## [0.1rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1rc1) (2008-03-02)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1b...0.1rc1)
+
+## [0.1b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1b) (2007-12-23)
+
+[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/5cadf173c7b73460b62409c81568fc8999177d52...0.1b)
+
+
+
+\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
diff --git a/ELEMENTS.LICENSE b/ELEMENTS.LICENSE
index b82799b0b..9ac38c5d3 100644
--- a/ELEMENTS.LICENSE
+++ b/ELEMENTS.LICENSE
@@ -163,6 +163,7 @@ http://creativecommons.org/licenses/by/3.0/ ή στείλτε μια επιστ
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
[nl]
+
De elementen collectie voorzien, samen met QElectroTech wordt geleverd als en
zonder enige garantie van geschiktheid voor uw doel of werk.
Het gebruik, de wijziging en de integratie van de elementen in elektrische
@@ -177,7 +178,8 @@ http://creativecommons.org/licenses/by/3.0/ of stuur een brief naar Creative
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
[be]
-De elementen collectie welke samen met QElectroTech wordt geleverd zonder enige garantie
+
+De elementen collectie welke samen met QElectroTech wordt geleverd zonder enige garantie
of deze geschikt zijn voor uw doel of de werking.
Het gebruik, wijzigen en integratie van de elementen in uw elektrische
schema's wordt toegestaan zonder enige voorwaarden, ongeacht wat de uiteindelijke
diff --git a/INSTALL b/INSTALL
index 03508f7ad..bb2bfe21c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,3 +1,14 @@
+[ca]
+Dependències:
+libQt5 (paquets libqt5*)
+cupsys-bsd per imprimir
+
+Com compilar:
+$ qmake (qmake-qt5 pels sistemes basats en Debian)
+$ make
+# umask 0022
+# make install
+
[en]
Requirements :
libQt5 (see packages libqt5*)
@@ -64,17 +75,6 @@ $ make
# umask 0022
# make install
-[ca]
-Dependències:
-libQt5 (paquets libqt5*)
-cupsys-bsd per imprimir
-
-Com compilar:
-$ qmake (qmake-qt5 pels sistemes basats en Debian)
-$ make
-# umask 0022
-# make install
-
[cs]
Požadavky :
libQt5 (viz balíček libqt5*)
diff --git a/README b/README
index b38cd8f41..d35aac646 100644
--- a/README
+++ b/README
@@ -1,3 +1,7 @@
+[ca]
+QElectroTech és una aplicació Qt5 per crear esquemes elèctrics.
+QET utilitza el format XML per als seus elements i esquemes i inclou un editor d'esquemes, un editor d'elements i un editor de caixetins.
+
[en]
QElectroTech is a Qt5 application to design electric diagrams.
It uses XML files for elements and diagrams, and includes both a diagram editor, a element editor, and an titleblock editor.
diff --git a/build-aux/linux/fedora/README.elements b/build-aux/linux/fedora/README.elements
index 2c86f9538..9530b30cd 100644
--- a/build-aux/linux/fedora/README.elements
+++ b/build-aux/linux/fedora/README.elements
@@ -1,3 +1,6 @@
+[ca]
+Col·lecció d'elements per a QElectroTech.
+
[fr]
Collection d'éléments pour QElectroTech.
@@ -10,6 +13,7 @@ Bauteilsammlung für QElectroTech.
[es]
Collección de elementos para QElectroTech.
+
[pt]
Colecção de elementos para QElectroTech.
diff --git a/cmake/qet_compilation_vars.cmake b/cmake/qet_compilation_vars.cmake
index 85aa6ead8..d0d33af19 100644
--- a/cmake/qet_compilation_vars.cmake
+++ b/cmake/qet_compilation_vars.cmake
@@ -710,7 +710,6 @@ set(QET_SRC_FILES
set(TS_FILES
${QET_DIR}/lang/qet_ar.ts
- ${QET_DIR}/lang/qet_be.ts
${QET_DIR}/lang/qet_ca.ts
${QET_DIR}/lang/qet_cs.ts
${QET_DIR}/lang/qet_da.ts
@@ -727,16 +726,19 @@ set(TS_FILES
${QET_DIR}/lang/qet_mn.ts
${QET_DIR}/lang/qet_nb.ts
${QET_DIR}/lang/qet_nl.ts
+ ${QET_DIR}/lang/qet_nl_BE.ts
${QET_DIR}/lang/qet_no.ts
${QET_DIR}/lang/qet_pl.ts
${QET_DIR}/lang/qet_pt.ts
${QET_DIR}/lang/qet_pt_BR.ts
${QET_DIR}/lang/qet_ro.ts
+ ${QET_DIR}/lang/qet_rs.ts
${QET_DIR}/lang/qet_ru.ts
${QET_DIR}/lang/qet_sk.ts
${QET_DIR}/lang/qet_sl.ts
${QET_DIR}/lang/qet_sr.ts
${QET_DIR}/lang/qet_sv.ts
${QET_DIR}/lang/qet_tr.ts
+ ${QET_DIR}/lang/qet_uk.ts
${QET_DIR}/lang/qet_zh.ts
)
diff --git a/elements b/elements
index 09eb672e0..b95562bbc 160000
--- a/elements
+++ b/elements
@@ -1 +1 @@
-Subproject commit 09eb672e0f08684f38b0896bf22cef98ca777fad
+Subproject commit b95562bbc9f98a454af3a42ac617e9283f89443f
diff --git a/examples/schema_unifilaire_voltaique2.qet b/examples/schema_unifilaire_voltaique2.qet
new file mode 100644
index 000000000..f5cf51e69
--- /dev/null
+++ b/examples/schema_unifilaire_voltaique2.qet
@@ -0,0 +1,3500 @@
+
+
+ 17/08/2025
+ 17-08-2025
+ 2025-08-17
+ schema_unifilaire_voltaique2
+ /home/laurent/schema_unifilaire_voltaique2.qet
+ 11:51
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Q7 32A
+
+
+
+ Q7 32A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID5 30mA 25A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Q3 32A
+
+
+
+ Q3 32A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Q6 32A
+
+
+
+ Q6 32A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Q5 32A
+
+
+
+ Q5 32A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID4 30mA 63A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID1 30mA 63A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+ Qrelay
+
+
+
+
+
+
+
+
+
+
+
+ Q100 16A
+
+
+
+ Q100 16A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Q2 32A
+
+
+
+ Q2 32A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Q51 2A
+
+
+
+ Q51 2A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID3 30mA 63A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ID2 30mA 63A
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Q1 32A
+
+
+
+ Q1 32A
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Q4 32A
+
+
+
+ Q4 32A
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Q8 10A
+
+
+
+ Q8 10A
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Q50 20A
+
+
+
+ Q50 20A
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ US3000C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+ 45A 500mA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Linky
+ Linky
+
+
+
+ Linky
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ US3000C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ elementos importados
+ Elementos importados
+ Elementi importati
+ Elementen geïmporteerd
+ Imported elements
+ Éléments importés
+ Elements importats
+ Importerede elementer
+ Uvoženi elementi
+ Импортированные элементы
+ Zavedené prvky
+ Elemente importate
+ Uvezeni elementi
+ インバートされた要素
+ Εισηγμένα στοιχεία
+ Importierte elemente
+ İthal öğeler
+ Elementy importowane
+ Імпортовані елементи
+
+
+
+ Elettrica
+ Elektrisk
+ Электротехника
+ Ηλεκτρικά
+ 電気
+ Elektrotechniek
+ Elektrotechnika
+ Elektrotechnika
+ Electric
+ Elektrik
+ Electrique
+ Eléctrica
+
+
+
+ Multifilare
+ Flere ledere
+ Többvonalas szimbólumok
+ Многополюсные
+ Πολυγραμμικό
+ 複線
+ Vícežilový
+ Veel polig
+ Schematy wieloliniowe
+ All-pole
+ Multifilaire
+ Allpolig
+ Multifilar
+
+
+
+ Generatori e sorgenti
+ Генераторы и источники
+ Γεννήτριες και πηγές
+ 発電機と電源
+ Generatoren en Voedingen
+ Generátory a zdroje
+ Źródła zasilania
+ Generators and sources
+ Generatoren und Quellen
+ Générateurs et sources
+ Generadores y fuentes
+
+
+
+ Generatori
+ Генераторы
+ Γενήτριες
+ Generátory
+ Generatoren
+ Generators
+ Generatory
+ Generatoren
+ Générateurs
+ Generators
+ Generadores
+
+
+
+
+
+ Caisson solaire photovoltaïque
+ Photovoltaikmodul
+ Fotovoltaico
+ Zonnepaneel DC
+ Φωτοβολταϊκή κυψέλη
+ Fotovoltaický panel DC
+ PVCell
+ Celda fotovoltaica
+ Bateria ogniw fotowoltanicznych
+ Zonnepaneel DC
+
+ Author: Arun Kishore Eswara
+
+License: Creative Commons Attribution 3.0 base License
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sensori e misuratori
+ Датчики и инструменты
+ Αισθητήρες και όργανα
+ センサと計器
+ Sensoren en instrumenten
+ Čidla a měřiče
+ Sensors and instruments
+ Czujniki i przyrządy
+ Capteurs et instruments
+ Sensoren und Messgeräte
+ Sensores e instrumentos
+
+
+
+ Misuratori
+ عدّادات
+ Измерители и инзмерительные индикаторы
+ Μετρητές
+ Měřiče a indikátory
+ Meters
+ Meters and measuring indicators
+ Liczniki
+ Zähler und Messanzeigegeräte
+ Compteurs et afficheurs de mesure
+ Contadores
+
+
+
+
+
+ Contatore monofase 230V
+ Stromzähler einphasig
+ عدّاد أحادي الوجه 220V
+ Licznik jednofazowy
+ 220V single phase meter
+ Compteur 220V monophase
+ Μονοφασικός μετρητής
+ Čítač impulzů 230V
+ KWh meter 230V
+
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Misuratore di Kwh
+ Energy meter
+ Licznik energii
+ Energiezähler
+ Μετρητής ενέργειας, Κιλοβατώρες (KWh)
+ عدّاد طاقة
+ Compteur d’énergie
+ Elektroměr
+ Energiemeter
+
+
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Čítač impulzů 230V
+ KWh meter 230V
+ Contatore monofase 230V
+ Μονοφασικός μετρητής
+ Stromzähler einphasig
+ 220V single phase meter
+ Compteur 220V monophase
+ Licznik jednofazowy
+ عدّاد أحادي الوجه 220V
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Relæer, kontaktorer og kontakter
+ Relè, contattori e contatti
+ Relays, contactors and contacts
+ 継電器、接触器、接点
+ Relais, contacteurs et contacts
+ Relais, Schütze und Kontakte
+ Relais, contactoren en contacten
+ Relé, stykače a kontakty
+ Реле, пускатели и контакты
+ Ηλεκτρονόμοι και επαφές
+ Przekaźniki i styczniki
+ Relevadores, contactores y contactos
+ Relék, kontaktorok és érintkezők
+
+
+
+ Kontaker med krydsreference
+ Contatti con riferimenti incrociati
+ Contacts with cross referencing
+ Kontakte mit Querverweis
+ Contacts avec référence croisée
+ Contacten met kruisreferentie
+ Kontakty s křížovými odkazy
+ Контакты с перекрестными ссылками
+ Επαφές με παραπομπές
+ Zestyki (automatyczne oznaczenia)
+ Contactos con referencia cruzada
+
+
+
+ Hoved kontaktor
+ Potência
+ Potenza
+ قدرة
+ Power
+ Leistung
+ Puissance
+ Last contacten
+ Silové kontakty
+ Силовые
+ Ισχύος
+ Styczniki
+ Potencia
+
+
+
+
+
+ مُلامس قدرة - كونتكتور (NO)
+ Leistungsschliesser 1-polig
+ Контакт контактора (НР)
+ Interruptor de potência contactor
+ Επαφή ρελέ ισχύος, ανοικτή
+ Contact power contactor
+ Contatto NA di potenza
+ Contact puissance contacteur
+ Stycznik
+ Interruptor de potencia contactor
+ Silový kontakt 1p
+ Last contact
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+ NO
+ 1
+ power
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Convertitori e inverter
+ Converters and inverters
+ 変換器とインバータ
+ Convertisseurs et variateurs
+ Umformer und Umrichter
+ Omzetters en Omkeerders
+ Měniče a střídače
+ Преобразователи
+ Μετατροπείς και αντιστροφείς
+ Przetworniki i przekształtniki
+ Convertidores e invertidores
+
+
+
+ Trasformatori di corrente
+ Current transformers
+ Stromwandler
+ Transformateurs de courant
+ Transformator stroom
+ Transformátory proudu
+ Μετασχηματιστές Έντασης
+ Трансформаторы тока
+ Przekładniki
+ Transformadores de corriente
+
+
+
+
+
+ ملف حلقي قطب 1
+ Núcleo toroide 1 polo
+ Núcleo toroidal de 1 polo
+ Przekładnik prądowy jednotorowy
+ Τοροειδές πηνίο 1 πόλου
+ Tore 1 pôle
+ Stromwandler 1-polig
+ Jednopólový proudový transformátor
+ 1-pole toroidal core
+ Toroide a 1 polo
+ Stroomtransformator ringkern 1AC
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Соединения
+ Ενώσεις
+ Verbindungen
+ Csatlakozások
+ Połączenia
+ Collegamenti
+ Forbindelser
+ 接続
+ Spojení
+ Conexiones
+ Connections
+ Verbindingen
+ Connections
+
+
+
+
+
+ connexion
+ Bod
+ connection
+ Keresztezés pont alakzatban
+ Verbindung
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+ Σύνδεσμοι και πρίζες
+ Stik
+ Csatlakozók és dugók
+ Conectores y enchufes
+ コネクタとプラグ
+ Connectoren en stekkers
+ Connecteurs et prises
+ Steckverbinder und Steckdosen
+ Konektory a zásuvky
+ Соединители и разъемы
+ Connettori e prese
+ Złącza wtykowe
+ Connectors and plugs
+
+
+
+ Ακίδες συνδέσμων
+ Stik ben
+ Csatlakozók
+ Pines de conector
+ Steckkontakte
+ Contacts de fiche
+ Konektorové piny
+ Контакты разъемов
+ Złącza wtykowe
+ Contatti
+ Connector pins
+
+
+
+
+
+ Connector
+ Connecteur
+ Соединение (нов.)
+ Conector
+ Stopcontact
+ Conector
+ Spojený pin
+ Steckverbindung Buchse + Stecker
+ Connettori M/F
+ Σύνδεσμος
+ موصل
+ Złącze wtykowe
+ Anya + apa csatlakozó
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unifilare
+ Enkel leder
+ Однополюсные
+ Μονογραμμικό
+ 単線
+ Jednopólové
+ Enkel pool
+ Schematy jednoliniowe
+ Single pole
+ Unifilaire
+ Einpolig
+ Polo simple
+
+
+
+ Fusibili e protezioni
+ Предохранители и элементы защиты
+ Ασφάλειες και διατάξεις προστασίας
+ ヒューズと保護装置
+ Zekeringen en beveiligingen
+ Pojistky a ochrany
+ Łączniki i zabezpieczenia
+ Fuses and protective gears
+ Sicherungen und Schutzeinrichtungen
+ Fusibles et protections
+
+
+
+ Relè termici
+ قواطع
+ Выключатели
+ Αυτόματοι διακόπτες
+ Jističe
+ Lastscheiders
+ Circuit-breakers
+ Disjuntores
+ Wyłączniki
+ Leitungsschutzschalter und Lastschalter
+ Disjoncteurs
+ Disyuntores
+
+
+
+
+
+ قاطع
+ Lastschalter 1P
+ Выключатель
+ Disjuntor
+ Circuit-breaker
+ Sezionatore 1P
+ Disjoncteur
+ Wyłącznik
+ Disyuntor
+ Lastscheider 1
+ Vypínač
+
+
+ protection
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ قاطع أحدي القطب
+ Leitungsschutzschalter 1P
+ Circuit-breaker
+ Disyuntor termico magnetico
+ Int. Aut. Magneto-termico 1P
+ Disjoncteur unipolaire
+ Wyłącznik
+ Lastscheider 1
+ Jednopólový jistič
+
+
+ protection
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Jednopólový jistič
+ قاطع أحدي القطب
+ Circuit-breaker
+ Lastscheider 1
+ Wyłącznik
+ Int. Aut. Magneto-termico 1P
+ Leitungsschutzschalter 1P
+ Disjoncteur unipolaire
+
+
+ protection
+
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+ 2
+
+
+
+ comment
+
+
+
+
+
+
+
+
+
+ Interruttori differenziali
+ قواطع تفاضلية
+ Дифавтоматы
+ Διαφορικοί αποζεύκτες
+ Proudové chrániče
+ Aardlekschakelaar + automaat
+ Residual Circuit Breakers
+ Disjunctores diferenciais
+ Wyłączniki różnicowoprądowe
+ Fehlerstromschutzschalter
+ Disjoncteurs différentiels
+ Dispositivos diferenciales residuales
+
+
+
+
+
+ قاطع تفاضلي مغناطيسي - حراري
+ Θερμομαγνητικός διαφορικός διακόπτης
+ Magneto-thermal differential switch
+ Kombischalter 1-polig
+ Interr. magneto-termico differenziale
+ Disjoncteur différentiel magnéto-thermique
+ Wyłącznik różnicowoprądowy z członem nadprądowym
+ Aardlekschakelaar + automaat
+ Jističochránič
+
+
+ protection
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ مفتاح تفاضلي
+ Rozłącznik różnicowoprądowy
+ Differential switch
+ Interrupteur différentiel
+ УЗО
+ Interruptor diferencial
+ Aardlekschakelaar
+ Interruptor diferencial
+ Fehlerstromschutzschalter
+ Interruttore differenziale
+ Proudový chránič
+
+
+ protection
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Portafusibles
+ Zekeringscheiders
+ Porta fusíveis
+ Schmelzsicherungen
+ Pojistky
+ Portafusibili
+ Ασφάλειες
+ حوامل-مصهرات
+ Odłączniki bezpiecznikowe
+ Fuses
+ Fusibles
+ Выключатели-предохранители
+
+
+
+
+
+ مصهر
+ Sicherung
+ Предохранитель
+ Fusível
+ Ασφάλεια
+ Fuse
+ Fusibile
+ Fusible
+ Bezpiecznik topikowy
+ Fusible
+ Zekering
+ Pojistka
+
+
+ protection
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Разъеденители
+ Αποζεύκτες
+ Seccionadores
+ Sectionneurs
+ Odłączniki
+ Sezionatori
+ Odpojovače
+ Disconnecting switches
+ Seccionadores
+ Lasttrenner
+ عازلات
+ Lastschakelaars
+
+
+
+
+
+ مفتاح عزل
+ Trennschalter 1P
+ Выключатель-разъеденитель
+ Seccionador
+ Διακόπτης φορτίου
+ Disconnecting switch
+ Sezionatore 1P
+ Sectionneur
+ Rozłącznik
+ Seccionador
+ Scheidingsschakelaar
+ Odpínač
+
+
+ protection
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Connettori e prese
+ Соединители и разъемы
+ Σύνδεσμοι και πρίζες
+ コネクタとプラグ
+ Connectoren en pluggen
+ Konektory a zástrčky
+ Złącza wtykowe
+ Connectors and plugs
+ Stecker und Buchsen
+ Connecteurs et prises
+ Conectores y Enchufes
+
+
+
+
+
+ قابس و مقبس متعدد الأقطاب, تمثيل أحادي الخط
+ Steckverbindung komplett mit 6 Kontakten
+ Plug and multipolar representation
+unifilar
+ Spina e presa multipolari, rappresentazione unifilare
+ Prise et fiche multipolaires, représentation
+unifilaire
+
+ Złącze wielostykowe
+ Conector multipolar, representación unifilar
+ Zásuvka a zástrčka vícepólová
+ Steker en Contact veelpolig enkellijns
+
+ EN 60617: 03-03-08
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Οικιακά
+ Electrodoméstico
+ 住宅機器
+ Electrodomésticos
+ منزليات
+ Huisinstallatie
+ Installation domestique
+ Haustechnik Installation
+ Domácí elektrotechnika
+ Бытовая техника
+ Instalacje w obiektach budowlanych
+ Impianti civili
+ Home installation
+
+
+
+ Μετρητές
+ Contadores
+ عدّادات
+ Meters
+ Zähler
+ Compteurs
+ Měřidla
+ Измерители
+ Liczniki
+ Misuratori
+ Meters
+
+
+
+
+
+ Elektroměr
+ Energiezähler
+ Misuratore di Kwh
+ Μετρητής ενέργειας, Κιλοβατώρες (KWh)
+ عدّاد طاقة
+ Licznik energii
+ Energy meter
+ Compteur d’énergie
+ Energiemeter
+
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Articulos de fabricantes
+ Κατασκευαστές υλικού
+ Tovární díly
+ Marchi produttori
+ База изделий производителей
+ Producent produkter
+ 製品
+ Urządzenia producentów
+ Herstellerartikel
+ Manufacturers articles
+ Articles constructeurs
+
+
+
+ Qubino
+ Qubino
+ Qubino
+ Qubino
+ Qubino
+ Qubino
+ Qubino
+ Qubino
+ Qubino
+ Qubino
+ Qubino
+ Qubino
+
+
+
+
+
+ Smart Meter ZMNHTD1
+ Smart Meter ZMNHTD1
+
+
+
+
+
+
+ Schneider Electric
+
+
+
+
+
+
+
+
+ Autor: KevinarCZ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ET_
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DS/IEC 60617
+ IEC 60617
+ 電気用図記号 (JIS C 0617 / IEC 60617)
+ EN 60617
+ DIN EN 60617
+ EN 60617
+ IEC 60617
+
+
+
+ 06- Produktion og omformning af elektrisk energi
+ 06- Production and conversion of electrical energy
+ 06- 電気エネルギーの発生及び変換
+ 06- Production, transformation et conversion de l'électricité
+ 06- Erzeugung und Umwandlung elektrischer Energie
+ 06- Výroba a přeměna elektrické energie
+ 06- Producción, transformación y conversión de electricidad
+
+
+
+ 14- 電力変換装置に用いるブロック図記号
+ 14- Power converters
+ 14- Symboles fonctionnels pour convertiseurs de puissance
+ 14- Blocksymbole für Leistungsumrichter
+ 14- Blokové značky pro výkonové převodníky-měniče
+
+
+
+
+
+ Wechselrichter
+ Invertor, střídač, převodník(měnič)
+stejnosměrného proudu na střídavý
+ Onduleur
+ Inverter
+
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 08- Måleinstrumenter, lamper og signaludstyr
+ 08- Measuring instruments, lamps and signalling devices
+ 08- 計器,ランプ及び信号装置
+ 08- Appareils de mesure, lampes et dispositifs de siglalisation
+ 08- Meß-, Melde- und Signaleinrichtungen
+ 08- Měřicí přístroje, zdroje světla a signalizační zařízení
+ 08- Dispositivos de medición, lámparas y dispositivos de señalización
+
+
+
+ 04- 積算計の例
+ 04- Examples of meter or counter instruments
+ 04- Exemples de compteurs
+ 04- Beispiele für integrierende Messgeräte
+ 04- Příklady integračních přístrojů
+
+
+
+
+
+ Wattstundenzähler,
+Elektrizitätszähler
+ Compteur d'énergie active
+Wattheuremètre
+ Watthodinový měřič
+ Watt-hour meter
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+ 02- Symbolelementer, tillægssymboler og andre symboler, som har almindelig anvendelse
+ 02- Symbol elements, qualifying symbols and other symbols having general application
+ 02- Éléments de symboles, symboles distinctifs et autres symboles d'application générale
+ 02- Elementos e identificadores de símbolos
+ 02- Prvky značek, doplňkové značky a ostatní značky pro všeobecné použití
+ 02- 図記号要素,限定図記号及びその他の一般用途図記号
+ 02- Symbolelemente, Kennzeichen und andere Schaltzeichen für allgemeine Anwendungen
+
+
+
+ 15- Mise à la terre et à la masse, équipotentialité
+ 15- Earth, frame or ground connections
+ 15- Conexiones a Tierra y chasis
+ 15- Uzemnění a spojení s kostrou, ekvipotencialita
+ 15- 接地及びフレーム接続又は等電位
+ 15- Erde, Masse, Äquipotential
+
+
+
+
+
+ Terre, symbole général
+ Tierra ó neutro, simbolo general
+ Erde
+ Earth or ground, general symbol
+ Uzemnění, všeobecná značka
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Графика
+ Grafik
+ Graphics
+ Grafica
+ グラフィック
+ Označení
+ Grafik
+ Γραφικά
+ Gráficos
+ Grafisch
+ Oznaczenia
+ Graphisme
+
+
+
+ Thumbnails for assembly plan
+ Miniature per schemi di montaggio
+ 組立図用サムネイル
+ Náhledy montážního plánu
+ Aufbauplanzeichnungen
+ Budowa rozdzielnic i sterownic
+ Opbouwtekeningen
+ Vignettes pour mise en armoire
+
+
+
+ Thumbnails for mounting plate
+ Miniature apparecchi guida DIN
+ Montážní schémata
+ Miniaturansichten für Montageplatte
+ Schemat montażowy
+ Montageplaat miniaturen
+ Vignettes pour plaque de montage
+
+
+
+ Legrand
+ Legrand
+
+
+
+ Board
+ Skříně
+ Tableau
+
+
+
+ Distribution terminal block
+ Svorkovnice
+ Bornier
+
+
+
+
+
+ 004830 - Bornier phase 4 x 1,5-16mm²
+ 004830 - Svorkovnice PE 4 x 1,5-16mm²
+
+
+
+ Bornier de répartition isolé IP2X terre - 4 connexions 1,5mm² à 16mm²- vert - longueur 47mm
+
+
+
+ Legrand
+
+ 0048 30
+
+
+
+
+ Arnaud Valmary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0048 30
+ designation
+
+
+ Legrand
+ manufacturer
+
+
+
+
+
+
+
+
+
+
+
+
+ 004832 - Bornier phase 8 x 1,5-16mm²
+ 004832 - Svorkovnice PE 8 x 1,5-16mm²
+
+
+
+ Bornier de répartition isolé IP2X terre - 8 connexions 1,5mm² à 16mm²- vert - longueur 75mm
+
+
+
+ Legrand
+
+ 0048 32
+
+
+
+
+ Arnaud Valmary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0048 32
+ designation
+
+
+ Legrand
+ manufacturer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Verbindungsklemme 8-polig
+ Terminale Spring Box 8
+ Pružinová svorka 8 vodičů
+ Borne automatique à ressorts 8 entrées (Wago)
+ Terminale Spring Box 8
+
+
+
+ Author convertor: Ronny Desmedt
+ ELMT created by dxfTOelmt converter V1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ pv+mo
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Importerede elementer
+ Uvezeni elementi
+ elementos importados
+ Elementi importati
+ İthal öğeler
+ Imported elements
+ Elements importats
+ Elementen geïmporteerd
+ Éléments importés
+ Importierte elemente
+ Zavedené prvky
+ Εισηγμένα στοιχεία
+ Импортированные элементы
+ Elemente importate
+ Elementy importowane
+ Elementos importados
+ Uvoženi elementi
+
+
+
+
+
+ Watt-hour meter
+ Wattstundenzähler,
+Elektrizitätszähler
+ Compteur d'énergie active
+Wattheuremètre
+ Watthodinový měřič
+
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+ Электротехника
+ Elektrisk
+ Electric
+ Elettrica
+ 電気
+ Elektrotechnika
+ Ηλεκτρικά
+ Eléctrica
+ Elektrik
+ Elektrotechniek
+ Elektrotechnika
+ Electrique
+
+
+
+ Многополюсные
+ Flere ledere
+ All-pole
+ Multifilare
+ 複線
+ Többvonalas szimbólumok
+ Vícežilový
+ Πολυγραμμικό
+ Multifilar
+ Allpolig
+ Veel polig
+ Schematy wieloliniowe
+ Multifilaire
+
+
+
+ Соединения
+ Forbindelser
+ Connections
+ Collegamenti
+ 接続
+ Csatlakozások
+ Spojení
+ Ενώσεις
+ Verbindungen
+ Conexiones
+ Połączenia
+ Verbindingen
+ Connections
+
+
+
+
+
+ connexion
+ connection
+ Bod
+ Verbindung
+ Keresztezés pont alakzatban
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Primärzelle, -element,
+Sekundärzelle, -element,
+Batterie von Primär- oder Sekundärzellen,
+Akkumulator
+ Primární článek,
+Sekundární článek,
+Baterie primárních nebo sekundárních článků
+ Élément de pile,
+Élément d'accumulateur,
+Batterie pile ou accumulateurs
+ Battery cell
+
+
+ Author: The QElectroTech team
+License: see http://qelectrotech.org/wiki/doc/elements_license
+
+
+
+ label
+
+
+
+
+
+
+
+ USD2000C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Terminale Spring Box 8
+ Verbindungsklemme 8-polig
+ Pružinová svorka 8 vodičů
+ Terminale Spring Box 8
+ Borne automatique à ressorts 8 entrées (Wago)
+
+
+
+ Author convertor: Ronny Desmedt
+ ELMT created by dxfTOelmt converter V1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Verbindung
+ connexion
+ Keresztezés pont alakzatban
+ connection
+ Bod
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+ Verbindung
+ connexion
+ Keresztezés pont alakzatban
+ connection
+ Bod
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+ Verbindung
+ connexion
+ Keresztezés pont alakzatban
+ connection
+ Bod
+
+
+
+
+
+
+
+ label
+
+
+
+
+
+
+
+
+
+
+
+
+ Nom du nouvel élément
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/fonts/osifont.ttf b/fonts/osifont.ttf
index 126a7f104..2b157e640 100644
Binary files a/fonts/osifont.ttf and b/fonts/osifont.ttf differ
diff --git a/lang/qet_ca.qm b/lang/qet_ca.qm
index 5b3f187e6..b1438bc8c 100644
Binary files a/lang/qet_ca.qm and b/lang/qet_ca.qm differ
diff --git a/lang/qet_ca.ts b/lang/qet_ca.ts
index b6aa30c22..e0421c2fc 100644
--- a/lang/qet_ca.ts
+++ b/lang/qet_ca.ts
@@ -6,75 +6,80 @@
À propos de QElectrotech
- Sobre QElectrotech
+ Quant a QElectrotechÀ propos
-
+ Quant aAuteurs
-
+ AutorsTraducteurs
-
+ TraductorsContributeurs
-
+ ContribuïdorsVersion
-
+ VersióProjet annexe
-
+ Projecte annexBibliothèques
-
+ Biblioteques
- Licenses
-
+ Accord de licence
+ Acord de llicència
-
+
+ Ce programme est sous licence GNU/GPL.
+ Aquest programa està subjecte a la llicència GNU/GPL.
+
+
+ log
-
+ RegistreQElectroTech, une application de réalisation de schémas électriques.about tab, description line
- QElectroTech, un programa per fer esquemes d'instal·lacions elèctriques.
+ QElectroTech, un programa per fer esquemes elèctrics. Les développeurs de QElectroTechabout tab, developers line
-
+ Els desenvolupadors de QElectroTechContact : <a href="mailto:qet@lists.tuxfamily.org">qet@lists.tuxfamily.org</a>about tab, contact line
- Contacte : <a href=\"mailto:qet@lists.tuxfamily.org\">qet@lists.tuxfamily.org</a>
+ Contacte : <a href=\"mailto:qet@lists.tuxfamily.org\">qet@lists.tuxfamily.org</a>Idée originale
- Idea original
+ Idea original
@@ -88,236 +93,236 @@
Développement
- Desenvolupament
+ DesenvolupamentConvertisseur DXF
- Convertidor a DXF
+ Convertidor DXFPlugin Bornier
-
+ Connector de bornsCollection
- Col·lecció
+ Col·leccióTraduction en espagnol
- Traducció al castellà
+ Traducció al castellàTraduction en russe
- Traducció al rus
+ Traducció al rusTraduction en portugais
- Traducció al portuguès
+ Traducció al portuguèsTraduction en tchèque
- Traducció al txec
+ Traducció al txecTraduction en polonais
- Traducció al polonès
+ Traducció al polonèsTraduction en allemand
- Traducció a l'alemany
+ Traducció a l'alemanyTraduction en roumain
- Traducció al romanès
+ Traducció al romanèsTraduction en italien
- Traducció a l'italià
+ Traducció a l'italiàTraduction en arabe
- Traducció a l'àrab
+ Traducció a l'àrabTraduction en croate
- Traucció al croat
+ Traucció al croatTraduction en catalan
- Traducció al català
+ Traducció al catalàTraduction en grec
- Traducció al grec
+ Traducció al grecTraduction en néerlandais
- Traducció a l'holandès
+ Traducció a l'holandèsTraduction en flamand
- Traducció al flamenc
+ Traducció al flamencTraduction en danois
- Traducció al danès
+ Traducció al danèsTraduction en brézilien
- Traducció al brasiler
+ Traducció al brasilerTraduction en Turc
-
+ Traducció al turcTraduction en hongrois
-
+ Traducció a l'hongarèsTraduction en serbe
-
+ Traducció al serbiTraduction en ukrainien
-
+ Traducció a l'ucraïnèsTraduction en norvégien
-
+ Traducció al noruecTraduction en japonais
-
+ Traducció al japonèsTraduction en mongol
-
+ Traducció al mongolTraduction en slovène
-
+ Traducció a l'eslovèPaquets Fedora et Red Hat
- Paquets Fedora i Red Hat
+ Paquets per Fedora i Red HatPaquets Mageia
- Paquets Mageia
+ Paquets per MageiaPaquets Debian
- Paquets Debian
+ Paquets per DebianPaquets Gentoo
- Paquets Gentoo
+ Paquets per GentooPaquets OS/2
- Paquets OS/2
+ Paquets per OS/2Paquets FreeBSD
- Paquets FreeBSD
+ Paquets per FreeBSDPaquets MAC OS X
- Paquets MAC OS X
+ Paquets per MAC OS XPaquets Archlinux AUR
- Paquets Archlinux AUR
+ Paquets per Archlinux AURIcônes
- Icones
+ IconesDocumentation
- Documentació
+ DocumentacióCollection d'éléments
- Col·lecció de símbols
+ Col·lecció d'elementsPaquets Snap
-
+ Paquets SnapRedimensionneur d'élémentsElement scaler
-
+ Redimensionador d'elementsGénérateur d'élément lambdaLambda element generator
-
+ Generador d'elements lambdaConvertisseur d'élément DXFDxf2elmt
-
+ Convertidor d'elements a DXFOutil de traduction d'élémentsQet_translate
-
+ Útil de traducció d'elements
@@ -346,99 +351,99 @@
Ajouter un tableau
-
+ Afegeix una taulaAffichage
- Visualització
+ VisualitzacióAjuster la taille du tableau au folio
-
+ Ajusta la mida de la taula al fullAjouter de nouveau folio et tableau si nécessaire.
-
+ Afegeix un full nou i una taula si és necessari.Nom du tableau
-
+ Nom de la taulaTexte des en-têtes
-
+ Text de la capçaleraGauche
- Esquerra
+ EsquerraCentre
-
+ CentreDroite
- Dreta
+ DretaPolice :
- Tipus de lletra:
+ Tipus de lletra :Éditer
-
+ EditaMarges :
-
+ Marges :Alignement :
- Aliniació:
+ Alineació :Texte du tableau
-
+ Text de la taulaConfiguration
-
+ ConfiguracióContenu
-
+ ContingutSélectionner la police des en tête du tableau
-
+ Seleccioneu la font a la capçalera de la taulaSélectionner la police des cellules du tableau
-
+ Seleccioneu la font a les cel·les de la taula
@@ -446,12 +451,12 @@
Dialog
- Diàleg
+ DiàlegAjouter le plan de bornes suivant :
-
+ Afegiu el següent pla de borns :
@@ -459,7 +464,7 @@
Alignement du texte
-
+ Alineació de text
@@ -467,32 +472,32 @@
Centre :
- Centre:
+ Centre : Diamètres :
- Diàmetres:
+ Diàmetres : horizontal :
- horitzontal:
+ horitzontal :vertical :
- vertical:
+ vertical :Angle de départ :
- Angle d'inici:
+ Angle d'inici :Angle :
- Angle:
+ Angle :
@@ -500,7 +505,7 @@
Sélection numérotation auto
-
+ Selecció de numeració automàtica
@@ -510,17 +515,17 @@
Conducteur
- Conductor
+ ConductorConfigurer les règles d'auto numérotation
-
+ Configura les regles de numeració automàticaConfigurer
-
+ Configura
@@ -538,7 +543,7 @@
Project Status:
- Estat del Projecte:
+ Estat del projecte :
@@ -548,17 +553,17 @@
Apply to Selected Locations
- Aplicar a ubicacions seleccionades
+ Aplica a les ubicacions seleccionadesApply to Selected Folios
- Aplicar als fulls seleccionats
+ Aplica als fulls seleccionatsApply to Entire Project
- Aplicar a tot el projecte
+ Aplica a tot el projecte
@@ -573,7 +578,7 @@
Update Policy
- Política d'Actualització
+ Política d'actualització
@@ -585,7 +590,7 @@
Only New
- Solament Nou
+ Només nou
@@ -599,7 +604,7 @@
Disable
- Desactivar
+ Desactiva
@@ -610,7 +615,7 @@
Only Existent
- Solament Existent
+ Només existent
@@ -625,7 +630,7 @@
Under Development
- Sota Desenvolupament
+ En desenvolupament
@@ -641,7 +646,7 @@
Auto Numbering Managementtitle window
- Gestió de numeració automàtica
+ Gestió de la numeració automàtica
@@ -651,12 +656,12 @@
-Update Only Existent: only existent Elements will be updated. New Elements will be assigned their formula but will not update once created.
-Disable: both New and Existent Element labels will not be updated. This is valid for new folios as well.
Note: These options DO NOT allow or block Auto Numberings, only their Update Policy.
- En aquest menú pot configurar si voleu que la numeració automàtica s'actualitzi o no. Per a la numeració automàtica d'elements, té 4 opcions de política d'actualització:
--Tots Dos: s'actualitzaran les etiquetes d'elements nous i existents. Aquesta és l'opció per defecte.
--Nou: Només s'actualitzaran els elements nous creats. Les etiquetes d'elements existents es congelaran.
--Existent: Només s'actualitzaran els elements existents. Als nous elements se'ls assignarà la seva fórmula però no s'actualitzarà un cop creada.
--Deshabilitar: Les etiquetes d'elements nous i existents no s'actualitzaran. Això és vàlid per a fulls nous també.
-Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, només la seva Política d'actualització.
+ En aquest menú pot configurar si vol que la numeració automàtica s'actualitzi o no. Per a la numeració automàtica d'elements, té quatre opcions de política d'actualització:
+-Ambdues: s'actualitzaran les etiquetes dels elements nous i existents. Aquesta és l'opció per defecte.
+-Actualitza només els nous: només s'actualitzaran els elements nous creats. Les etiquetes dels elements existents es congelaran.
+-Actualitza només els existents: només s'actualitzaran els elements existents. Els elements nous tindran la seva fórmula assignada, però no s'actualitzaran un cop creats
+-Desactiva: no s'actualitzaran les etiquetes dels elements nous ni existents. Això també és vàlid per als nous folis.
+Nota: Aquestes opcions NO permeten ni bloquegen les numeracions automàtiques, només la seva política d'actualització.
@@ -664,65 +669,67 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Dialog
- Diàleg
+ DiàlegMise en page
- Paginació
+ Paginacióinclure les en-têtes
-
+ Incloure les capçaleresFormater en tant que liste de materiel
-
+ Formata com a llista de materialnomenclature_
- nomenclatura_
+ nomenclatura_Enregister sous...
- Anomenar i Desar...
+ Desa com a... Fichiers csv (*.csv)
- Arxius csv (*.csv)
+ Fitxers csv (*.csv)Erreur
- Error
+ ErrorImpossible de remplacer le fichier!
- Impossible reemplaçar el fitxer!
+ No es pot substituir el fitxer!
+
+Position
- Posició
+ PosicióPosition du folio
-
+ Posició del fullQuantité numéro d'articleSpecial field with name : designation quantity
-
+ Quantitat de número d'article
@@ -749,23 +756,23 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Colonnes :
- Columnes:
+ Columnes :Afficher les en-têtes
- Mostrar les capçaleres
+ Mostra les capçaleresLignes :
- Files:
+ Files :Dimensions du folio
- Mida del full
+ Dimensions del full
@@ -773,33 +780,33 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Texte composé
-
+ Text compostAjouter une variable :
-
+ Afegeix una variable :Entrée votre texte composé ici, en vous aidant des variables disponible
-
+ Introduïu aquí el text que voleu escriure, utilitzant les variables disponiblesConductor
-
+ Modifier les propriétés d'un conducteurundo caption
- Modificar les propietats d'un conductor
+ Modifica les propietats d'un conductor
-
+ Modifier les propriétés de plusieurs conducteursundo caption
- Modificar les propietats de diversos conductors
+ Modifica les propietats de diversos conductors
@@ -807,24 +814,24 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Éditer les propriétés d'un conducteur
- Editar les propietats d'un conductor
+ Edita les propietats d'un conductorAppliquer les propriétés à l'ensemble des conducteurs de ce potentiel
- Aplicar les propietats a tots els conductors d'aquest potencial
+ Aplica les propietats a tots els conductors d'aquest potencialModifier les propriétés d'un conducteurundo caption
- Modificar les propietats d'un conductor
+ Modifica les propietats d'un conductorModifier les propriétés de plusieurs conducteursundo caption
- Modificar les propietats de diversos conductors
+ Modifica les propietats de diversos conductors
@@ -832,22 +839,22 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Taille du texte :
- Mida del text:
+ Mida del text :Tension / Protocole :
- Tensió / Protocol:
+ Tensió / Protocol :Texte :
- Text:
+ Text :Fonction :
- Funció:
+ Funció :
@@ -878,12 +885,12 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
activer l'option un texte par potentiel
- Activar l'opció d'un text per potencial
+ Activa l'opció d'un text per potencialphase
- fase
+ Fase
@@ -895,7 +902,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Trait en pointillésconductor style: dashed line
- Línia de puntets
+ Línia de punts
@@ -906,12 +913,12 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
terre
- terra
+ Terraneutre
- neutre
+ Neutre
@@ -922,72 +929,72 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
&Multifilaire
-
+ &MultifilarCouleur du texte:
-
+ Color del text :Autonumérotation
-
+ Numeració automàticaSection du conducteur
-
+ Secció del conductorAfficher un texte de potentiel par folio.
- Mostrar un text de potencial per full.
+ Mostra un text de potencial per full. Vertical à gauche
-
+ Vertical a l'esquerraVertical à droite
-
+ Vertical a la dretaPosition et rotation du texte de conducteur :
-
+ Posició i rotació del text del conductor :Horizontal en haut
-
+ Horizontal a la part superiorHorizontal en bas
-
+ Horizontal a la part inferioréditer les numérotations
- Editar la numeració
+ Edita la numeracióFormule du texte :
-
+ Fórmula de text :cable
-
+ Cablebus
-
+ Bus
@@ -1008,7 +1015,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Protective Earth Neutral
- Terra per protecció personal
+ Terra de protecció neutre
@@ -1028,7 +1035,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Taille :
-
+ Mida :
@@ -1039,17 +1046,17 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Couleur secondaire :
-
+ Color secundari :Taille de trait :
-
+ Mida de tram:px
- px
+ px
@@ -1066,12 +1073,12 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Couleur :
- Color:
+ Color :Style :
- Estil:
+ Estil :
@@ -1079,12 +1086,12 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
GroupBox
-
+ Caixa de grupConfiguration
-
+ Configuració
@@ -1098,9 +1105,9 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Diagram
-
+ Modifier la profondeur
-
+ Canvia la profunditat
@@ -1108,7 +1115,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Form
- Formulari
+ Formulari
@@ -1119,12 +1126,12 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Nom
- Nom
+ NomValeur
- Valor
+ Valor
@@ -1132,27 +1139,27 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Form
- Formulari
+ FormulariPoignées :
-
+ Nanses :x 1
-
+ x 1x 2
-
+ x 2x 3
-
+ x 3
@@ -1160,7 +1167,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Ajouter %1
- Afegir %1
+ Afegeix %1
@@ -1185,13 +1192,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Maintenir ctrl pour un déplacement libre
- Mantenir ctrl per a un desplaçament lliure
-
-
-
-
-<Shift> to move
-
+ Mantingueu premuda la tecla Ctrl per a moviment lliure
@@ -1201,28 +1202,28 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Ceci est la zone dans laquelle vous concevez vos schémas en y ajoutant des éléments et en posant des conducteurs entre leurs bornes. Il est également possible d'ajouter des textes indépendants."What's this?" tip"Què és això?"
- En aquesta zona podeu elaborar els esquemes afegint-hi els símbols i posant-hi els conductors entre els borns. També es poden afegir àrees de text independents.
+ Aquesta és l'àrea on dissenyeu els esquemes afegint elements i col·locant conductors entre els seus borns. També és possible afegir text independent.Coller icicontext menu action
- Enganxar aquí
+ Enganxa aquíCollage multiple
-
+ Enganxament múltipleX: %1 Y: %2
-
+ X: %1 Y: %2Connecter les bornes sélectionnées
-
+ Connecteu els borns seleccionats
@@ -1233,13 +1234,13 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Choisir la nouvelle couleur de ce conducteur
- Triar un nou color per a aquest conductor
+ Tria un nou color per a aquest conductorModifier les propriétés d'un conducteurundo caption
- Modificar les propietats d'un conductor
+ Modifica les propietats d'un conductor
@@ -1247,7 +1248,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Merci de patienter
- Gràcies per l'espera
+ Si us plau, espereu
@@ -1265,12 +1266,12 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Texte
- Text
+ TextÉditer un texte d'élément
-
+ Edita un text d'element
@@ -1278,12 +1279,12 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Form
- Formulari
+ FormulariExporter l'actuelle configuration des textes
-
+ Exporta la configuració actual del text
@@ -1292,57 +1293,57 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
...
-
+ ...Importer une configuration de texte
-
+ Importa una configuració de textAjouter un texte
-
+ Afegeix textAjouter un groupe de textes
-
+ Afegeix un grup de textosSupprimer la sélection
-
+ Suprimeix la seleccióModifier des textes d'élément
-
+ Edita els textos dels elementsModifier un texte d'élément
-
+ Edita el text d'un elementModifier %1 textes d'élément
-
+ Edita els %1 textos d'elementNom du groupe
-
+ Nom de grupEntrer le nom du nouveau groupe
-
+ Introduïu el nom del nou grupTextes
-
+ Textos
@@ -1350,17 +1351,17 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Propriété
-
+ PropietatValeur
- Valor
+ ValorSource du texte
-
+ Font del text
@@ -1369,7 +1370,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Texte utilisateur
-
+ Text de l'usuari
@@ -1378,7 +1379,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Information de l'élément
-
+ Informació de l'element
@@ -1387,173 +1388,173 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Texte composé
-
+ Text compostTexte
- Text
+ TextInformation
-
+ InformacióMon texte composé
-
+ El meu text compostTaille
-
+ MidaPolice
-
+ FontCadre
-
+ MarcLargeur
-
+ AmpladaPosition X
-
+ Posició XPosition Y
-
+ Posició YRotation
-
+ RotacióConserver la rotation visuel
-
+ Manté la rotació visualAlignement
-
+ AlineacióÉditer
-
+ EditaÉditer un texte d'élément
-
+ Edita el text de l'elementModifier la taille d'un texte d'élément
-
+ Canvia la mida del text de l'elementModifier la police d'un texte d'élément
-
+ Canvia la font del text d'elementModifier la couleur d'un texte d'élément
-
+ Canvia el color del text d'elementModifier le cadre d'un texte d'élément
-
+ Canvia el marc del text d'elementModifier la largeur d'un texte d'élément
-
+ Canvia l'amplada del text d'elementDéplacer un texte d'élément
- Moure un element de text
+ Mou un text d'elementPivoter un texte d'élément
-
+ Gira un text d'elementModifier le maintient de la rotation d'un texte d'élément
-
+ Canvia la rotació del text d'elementModifier l'alignement d'un texte d'élément
-
+ Canvia l'alineació del text d'elementÉditer un groupe de textes
-
+ Edita un grup de textosGauche
- Esquerra
+ EsquerraDroite
- Dreta
+ DretaCentre
-
+ CentreAjustement vertical
-
+ Ajust verticalMaintenir en bas de page
-
+ Manté al final de la pàginaDéplacer un texte dans un autre groupe
-
+ Moure un text a un altre grupCouleur
- Color
+ Color
@@ -1561,130 +1562,130 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Form
- Formulari
+ FormulariCouleur
- Color
+ ColorLargeur
-
+ AmpladaTexte utilisateur
-
+ Text de l'usuariInformation de l'élément
-
+ Informació de l'elementTexte composé
-
+ Text compostConserver la rotation visuel
-
+ Manté la rotació visualY
-
+ YSource du texte
-
+ Font del textRotation
-
+ RotacióAlignement
-
+ AlineacióEncadrer le texte
-
+ Emmarca el textX
-
+ XPolice
-
+ FontDéplacer un champ texte
- Moure un camp de text
+ Mou un camp de textPivoter un champ texte
-
+ Gira un camp de textModifier le texte d'un champ texte
-
+ Canvia el text d'un camp de textModifier la police d'un champ texte
-
+ Canvia la font d'un camp de textModifier le cadre d'un champ texte
-
+ Canvia el marc d'un camp de textModifier la largeur d'un texte
-
+ Canvia l'amplada d'un textModifier l'information d'un texte
-
+ Canvia la informació d'un textModifier la source de texte, d'un texte
-
+ Canvia la font del text d'un textModifier l'alignement d'un champ texte
-
+ Canvia l'alineació d'un camp de textModifier la couleur d'un champ texte
- Modificar el color d'un camp de text
+ Canvia el color d'un camp de textModifier la conservation de l'angle
-
+ Canvia la conservació de l'angle
@@ -1692,32 +1693,32 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Texte utilisateur
-
+ Text de l'usuariInformation de l'élément
-
+ Informació de l'elementTexte composé
-
+ Text compostGauche
- Esquerra
+ EsquerraCentre
-
+ CentreDroite
- Dreta
+ Dreta
@@ -1726,44 +1727,44 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Ouvrir un élémentdialog title
- Obrir un símbol
+ Obre un elementChoisissez l'élément que vous souhaitez ouvrir.dialog content
- Triï el símbol que vol obrir.
+ Tria l'element que vols obrir.Enregistrer un élémentdialog title
- Desar un símbol
+ Desa un elementChoisissez l'élément dans lequel vous souhaitez enregistrer votre définition.dialog content
- Triï el símbol al qual es desarà la seva definició.
+ Tria l'element en el qual es desarà la teva definició.Ouvrir une catégoriedialog title
- Obrir una categoria
+ Obre una categoriaChoisissez une catégorie.dialog content
- Triï una categoria.
+ Tria una categoria.Enregistrer une catégoriedialog title
- Desar una categoria
+ Desa una categoria
@@ -1783,13 +1784,13 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Nom du nouvel élément
- Nom del símbol nou
+ Nom de l'element nouVous devez sélectionner un élément ou une catégorie avec un nom pour l'élément.message box content
- Ha de seleccionar un símbol o una categoria amb un nom per al símbol.
+ Has de seleccionar un element o una categoria amb un nom per a l'element.
@@ -1814,19 +1815,19 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
La sélection n'est pas un élément.message box content
- La selecció no és un símbol.
+ La selecció no és un element.Écraser l'élément ?message box title
- Vol sobrescriure el símbol?
+ Vols sobreescriure l'element?L'élément existe déjà. Voulez-vous l'écraser ?message box content
- Aquest símbol ja existeix. Vol sobrescriure'l?
+ Aquest element ja existeix. Vols sobreescriure'l?
@@ -1844,7 +1845,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Supprimer ce texte
-
+ Suprimeix aquest text
@@ -1871,12 +1872,12 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Type
- Tipus
+ TipusType de base :
- Tipus de base:
+ Tipus de base :
@@ -1886,7 +1887,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Nombre de contact représenté
- Nom del contacte representat
+ Nombre de contactes representats
@@ -1901,7 +1902,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Élément maître
- Símbol mestre
+ Element mestre
@@ -1911,27 +1912,27 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Élément bornier
-
+ Element del bornFonction
- Funció
+ FuncióInformations
- Dades
+ DadesNom
- Nom
+ NomValeurs
-
+ Valors
@@ -1962,12 +1963,12 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Bornier
- Terminal
+ Bloc de BornsVignette
-
+ Miniatura
@@ -1987,7 +1988,7 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Other
-
+ Altres
@@ -1997,17 +1998,17 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Temporisé travail
- Temporitzador de treball
+ Temporitzador a la connexióTemporisé repos
- Temporitzador de repòs
+ Temporitzador a la desconnexióTemporisé travail & repos
-
+ Temporitzador a la connexió i a la desconnexió
@@ -2028,37 +2029,37 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Générique
-
+ GenèricFusible
-
+ FusibleSéctionnable
-
+ SeleccionableDiode
-
+ DíodePhase
- Fase
+ FaseNeutre
- Neutre
+ NeutreTerre
- Terra
+ Terra
@@ -2072,74 +2073,81 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Élement
-
+ Element
+Nom : %1
-
+ Nom : %1
+Folio : %1
-
+ Full : %1
+Type : %1
- Tipus: %1
+ Tipus: %1
Sous-type : %1
-
+ Subtipus: %1
+Position : %1
-
+ Posició : %1
+Rotation : %1°
-
+ Rotació : %1°
+Dimensions : %1*%2
- Mida: %1*%2
+ Mida: %1*%2
Bornes : %1
-
+ Borns : %1
+Emplacement : %1
- Ubicació: %1
+ Ubicació: %1
Retrouver dans le panel
- Cercar al panell
+ Cerca al panelÉditer l'élément
- Modificar el símbol
+ Modifica l'element
@@ -2147,162 +2155,162 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Form
- Formulari
+ FormulariInformations disponibles
-
+ Informació disponibleInformations à exporter
-
+ Informació per exportarMonter la sélection
-
+ Mou la selecció cap amuntAjouter la sélection
-
+ Afegeix una seleccióSupprimer la sélection
-
+ Suprimeix la seleccióDescendre la sélection
-
+ Desplaça la selecció cap avallPas de filtre
-
+ Sense filtreN'est pas vide
-
+ No està buitEst vide
-
+ Està buitContient
-
+ ContéNe contient pas
-
+ No contéEst égal à
-
+ És igual aN'est pas égale à
-
+ No és igual aFiltre :
-
+ Filtre :Type d'éléments
-
+ Tipus d'elementsSimples
-
+ SimpleOrganes de protection
-
+ Unitat de proteccióTous
-
+ TotsBoutons et commutateurs
-
+ Botons i interruptorsBorniers
-
+ Bloc de bornsVignettes
-
+ MiniaturesContacteurs et relais
-
+ Contactors i relésConfiguration
-
+ ConfiguracióOuvrir la configuration sélectionné
-
+ Obra la configuració seleccionadaSauvegarder la configuration actuelle
-
+ Desa la configuració actualRequête SQL personnalisée
-
+ Consulta SQL personalitzadaRequête SQL :
-
+ Consulta SQL :Position
- Posició
+ PosicióTitre du folio
- Títol del full
+ Títol del fullPosition du folio
-
+ Posició de fullNuméro du folio
-
+ Número de full
@@ -2310,29 +2318,29 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Déplacer une primitive
- Moure una primitiva
+ Moure una primitiva
-
+ Éditer les informations sur l'auteurwindow title
- Canviar les dades de l'autor
+ Canvia les dades de l'autor
-
+ Vous pouvez utiliser ce champ libre pour mentionner les auteurs de l'élément, sa licence, ou tout autre renseignement que vous jugerez utile.
- Pot fer servir aquest camp lliure per indicar els autors del símbol, la llicència, o qualsevol informació que consideri útil.
+ Pots utilitzar aquest camp lliure per esmentar els autors de l'element, la seva llicència, o qualsevol altra informació que consideris útil.
-
+ Éditer les nomswindow title
- Modificar els noms
+ Modifica els noms
-
+ Vous pouvez spécifier le nom de l'élément dans plusieurs langues.
- Pot indicar el nom del símbol en diferentes llengües.
+ Pots especificar el nom de l'element en diferents llengües.
@@ -2341,13 +2349,13 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
L'item n'est pas une catégoriemessage box title
- El símbol no és una categoria
+ L'element no és una categoriaL'item demandé n'est pas une categrie. Abandon.message box content
- El símbol sol·licitat no és una categoria. Abandonar.
+ L'element sol·licitat no és una categoria. No es pot continuar.
@@ -2365,13 +2373,13 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Éditer une catégoriewindow title
- Modificar categoria
+ Modifica una categoriaCréer une nouvelle catégoriewindow title
- Crear una categoria nova
+ Crea una categoria nova
@@ -2383,41 +2391,41 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Édition en lecture seulemessage box title
- Edició només en mode de lectura
+ Edició en mode només de lecturaVous n'avez pas les privilèges nécessaires pour modifier cette catégorie. Elle sera donc ouverte en lecture seule.message box content
- No té els priveligis necessaris per canviar la categoria. Per tant, s'obre només en mode de lectura.
+ No tens els privilegis necessaris per editar aquesta categoria, per la qual cosa s'obrirà en mode de només lectura.Nom interne :
- Nom intern:
+ Nom intern : Vous pouvez spécifier un nom par langue pour la catégorie.
- Pot indicar un nom de categoria per cada llengüa.
+ Pots especificar un nom per idioma per a la categoria.Nom interne manquantmessage box title
- Falta nom intern
+ Falta un nom internVous devez spécifier un nom interne.message box content
- Ha d'indicar un nom intern.
+ Has d'especificar un nom intern.Nom interne déjà utilisémessage box title
- Aquest nom intern ja és en ús
+ Aquest nom intern ja és utilitzat
@@ -2443,32 +2451,32 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Ouvrir le dossier correspondant
- Obrir la carpeta corresponent
+ Obre la carpeta corresponentÉditer l'élément
- Modificar el símbol
+ Modifica l'elementSupprimer l'élément
- Suprimir el símbol
+ Suprimeix l'elementSupprimer le dossier
- Suprimir la carpeta
+ Suprimeix la carpetaRecharger les collections
- Recarregar les col·leccions
+ Recarrega les col·leccionsÉditer le dossier
- Editar la carpeta
+ Edita la carpeta
@@ -2478,17 +2486,17 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Nouvel élément
- Nou símbol
+ Nou elementAfficher uniquement ce dossier
- Mostrar solament aquesta carpeta
+ Mostra solament aquesta carpetaAfficher tous les dossiers
- Mostrar totes les carpetes
+ Mostra totes les carpetes
@@ -2498,73 +2506,74 @@ Nota: Aquestes opcions NO permeten o bloquegen les Numeracions automàtiques, no
Rechercher
- Cercar
+ CercaSupprimer l'élément ?message box title
- Eliminar el símbol?
+ Suprimeix l'element?Êtes-vous sûr de vouloir supprimer cet élément ?
message box content
-
+ Esteu segur que voleu suprimir aquest element ?
+Suppression de l'élémentmessage box title
- Supressió del símbol
+ Suprimeix l'elementLa suppression de l'élément a échoué.message box content
- No s'ha pogut suprimir el símbol.
+ No s'ha pogut suprimir l'element.Supprimer le dossier?message box title
- Eliminar la carpeta?
+ Suprimeix la carpeta?Êtes-vous sûr de vouloir supprimer le dossier ?
Tout les éléments et les dossier contenus dans ce dossier seront supprimés.message box content
- Està segur que desitja eliminar la carpeta?
+ Estàs segur que vols suprimir la carpeta?
S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.Suppression du dossiermessage box title
- Eliminar la carpeta
+ Suprimeix la carpetaLa suppression du dossier a échoué.message box content
- L'esborrat de la carpeta va fallar.
+ No s'ha pogut suprimir la carpeta.Le dossier
-
+ La carpetacontient
-
+ contééléments
-
+ elements
@@ -2574,28 +2583,28 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
%n élément(s), répartie(s)
-
-
-
+
+ %n element, distribuït
+ %n elements, distribuïtsdans %n dossier(s).
-
-
-
+
+ en %n carpeta.
+ en %n carpetes.Chemin de la collection : %1
- Ruta de la col·lecció: 1%
+ Ruta de la col·lecció: %1Chemin dans le système de fichiers : %1
- Ruta del sistema d'arxius: 1%
+ Ruta del sistema de fitxers: %1
@@ -2620,51 +2629,51 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Glissez-déposez ce modèle de cartouche sur un folio pour l'y appliquer.Status tip displayed when selecting a title block template
- Arrossegar i col·locar el rètol sobre el full per aplicar-ho.
+ Arrossega i deixa anar aquest model de caixetí sobre el full per aplicar-lo.Double-cliquez pour réduire ou développer ce projetStatus tip
- Faci doble clic per reduir o expandir aquest projecte
+ Fes doble clic per reduir o expandir aquest projecteDouble-cliquez pour réduire ou développer la collection de cartouches QElectroTechStatus tip
- Faci doble clic per reduir o expandir aquesta col·lecció de caixetins QElectroTech
+ Fes doble clic per reduir o expandir aquesta col·lecció de caixetins QElectroTechCeci est la collection de cartouches fournie avec QElectroTech. Installée en tant que composant système, vous ne pouvez normalement pas la personnaliser."What's this" tip"Què és això?"
- Aquesta és la col·lecció de caixetins bàsica inclosa a QElectroTech. S'instal·la com a part del sistema i normalment no pot ésser personalitzada.
+ Aquesta és la col·lecció de caixetins inclosa a QElectroTech. S'instal·la com a component del sistema i normalment no es pot personalitzar.Double-cliquez pour réduire ou développer la collection company de cartouchesStatus tip
-
+ Fes doble clic per reduir o ampliar la col·lecció de caixetins de l'empresaCeci est la collection company de cartouches -- utilisez-la pour créer, stocker et éditer vos propres cartouches."What's this" tip
-
+ Aquesta és la col·lecció de caixetins de l'empresa: feu-la servir per crear, emmagatzemar i editar els vostres propis caixetins.Double-cliquez pour réduire ou développer votre collection personnelle de cartouchesStatus tip
- Faci doble clic per reduir o expandir la seva col·lecció personal de caixetins
+ Feu doble clic per reduir o expandir la vostra col·lecció personal de caixetinsCeci est votre collection personnelle de cartouches -- utilisez-la pour créer, stocker et éditer vos propres cartouches."What's this" tip"Què és això?"
- Aquesta és la seva col·lecció personal de caixetins -- empri-la per crear, emmagatzemar i modificar els seus propis caixetins.
+ Aquesta és la vostra col·lecció personal de caixetins. Utilitza-la per crear, emmagatzemar i modificar els vostres propis caixetins.
@@ -2672,22 +2681,22 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Ouvrir le dossier correspondant
- Obrir la carpeta corresponent
+ Obre la carpeta corresponentCopier le chemin
- Copiar la ruta
+ Copia la rutaBasculer vers ce projet
- Traslladar cap a aquest projecte
+ Trasllada cap a aquest projecteFermer ce projet
- Tancar el projecte
+ Tanca aquest projecte
@@ -2702,47 +2711,47 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Ajouter un folio
- Afegir un full
+ Afegeix un fullSupprimer ce folio
- Suprimir un full
+ Suprimeix aquest fullRemonter ce folio
- Avançar la posició del full
+ Avança la posició del fullAbaisser ce folio
- Retrocedir la posició del full
+ Retrocedeix la posició del fullRemonter ce folio x10
- Avançar el full 10 posicions
+ Avança el full 10 posicionsRemonter ce folio x100
- Avançar el full 100 posicions
+ Avança el full 100 posicionsRemonter ce folio au debut
- Avançar la posició del full a l'inici del projecte
+ Avança la posició del full a l'inici del projecteAbaisser ce folio x10
- Retrocedir 10 posicions el full
+ Retrocedeix 10 posicions el fullAbaisser ce folio x100
- Retrocedir 100 posicions el full
+ Retrocedeix 100 posicions el full
@@ -2757,12 +2766,12 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Éditer ce modèle
- Modificar aquest model
+ Modifica aquest modelSupprimer ce modèle
- Eliminar aquest model
+ Suprimeix aquest model
@@ -2770,37 +2779,37 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Form
- Formulari
+ FormulariCentre :
-
+ Centre :Y
-
+ YX
-
+ XVertical :
-
+ Vertical :Horizontal :
-
+ Horitzontal :Diamètres :
-
+ Diàmetres :
@@ -2809,7 +2818,7 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Exportconfiguration page title
- Exportació
+ Exporta
@@ -2817,7 +2826,7 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Exporter
- Exportar
+ Exporta
@@ -2833,12 +2842,12 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Exporter les folios du projetwindow title
- Exportar els fulls del projecte
+ Exporta els fulls del projecteChoisissez les folios que vous désirez exporter ainsi que leurs dimensions :
- Triar els fulls que vol exportar i les seves dimensions:
+ Tria els fulls que vol exportar i les seves dimensions:
@@ -2865,19 +2874,19 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Vous devez entrer un nom de fichier non vide et unique pour chaque folio à exporter.message box content
- Ha d'entrar un nom d'arxiu únic per a cada full per exportar.
+ Has d'introduir un nom de fitxer únic i no buit per a cada full per exportar.Dossier non spécifiémessage box title
- No ha indicat una carpeta
+ No has indicat una carpetaVous devez spécifier le chemin du dossier dans lequel seront enregistrés les fichiers images.message box content
- Ha d'indicar el camí de la carpeta on es desaran les imatges.
+ Has d'indicar el camí de la carpeta on es desaran les imatges.
@@ -2889,12 +2898,12 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Il semblerait que vous n'ayez pas les permissions nécessaires pour écrire dans le fichier %1.message box content
- No sembla disposar dels permissos necessaris per escriure al fitxer %1.
+ No sembla disposar dels permisos necessaris per escriure al fitxer %1.Aperçu
- Vista
+ Vista prèvia
@@ -2909,22 +2918,22 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Exporter dans le dossierdialog title
- Exportar a la carpeta
+ Exporta a la carpetaDossier cible :
- Carpeta destinació:
+ Carpeta de destinació:Parcourir
- Navegar
+ NavegaFormat :
- Format:
+ Format :
@@ -2955,47 +2964,47 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Options de rendugroupbox title
- Opcions d'imatge
+ Opcions de renderitzacióExporter entièrement le folio
- Exportar el full complet
+ Exporta el full completExporter seulement les éléments
- Exportar solament els elements
+ Exporta només els elementsDessiner la grille
- Dibuxar la graella
+ Dibuixa la graellaDessiner le cadre
- Dibuixar el quadre
+ Dibuixa el quadreDessiner le cartouche
- Dibuixar el caixetí
+ Dibuixa el caixetíDessiner les bornes
- Dibuixar els borns
+ Dibuixa els bornsConserver les couleurs des conducteurs
- Recordar els colors dels conductors
+ Manté els colors dels conductorsSVG: fond transparent
-
+ SVG: fons transparent
@@ -3008,22 +3017,22 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
C&réer de nouveaux folios
-
+ C&rea nous fullsNumérotation automatique des folios sélectionnés
-
+ Numeració automàtica dels fulls seleccionats Options de numérotation
- Opcions de numeració
+ Opcions de numeracióNouveaux folios
-
+ Nous folis
@@ -3049,7 +3058,7 @@ S'eliminaran tots els elements i carpetes contingudes en aquesta carpeta.
Folio Autonumberingtitle window
- Numeració del Full automàtica
+ Numeració del full automàtica
@@ -3066,7 +3075,21 @@ Si le chiffre défini dans le champ Valeur possède moins de digits que le type
Le champ "Incrémentation" n'est pas utilisé.
help dialog about the folio autonumerotation
-
+ Aquí és on podeu definir com es numeraran les pàgines noves.
+
+- Un sistema de numeració consta d'almenys una variable.
+
+- Podeu afegir o suprimir una variable de numeració mitjançant els botons - i +.
+
+- Una variable de numeració inclou: un tipus, un valor i un increment.
+
+- Els tipus "Dígit 1", "Dígit 01" i "Dígit 001" representen un tipus numèric definit al camp "Valor", que s'incrementa amb cada nova pàgina pel valor del camp "Increment".
+
+- "Dígit 01" i "Dígit 001" es representen al diagrama amb almenys dos i tres dígits, respectivament.
+Si el número definit al camp Valor té menys dígits que el tipus escollit, anirà precedit d'un o dos 0 per coincidir amb el seu tipus.
+
+- El tipus "Text" representa text fix. El camp "Increment" no s'utilitza.
+
@@ -3074,17 +3097,17 @@ Le champ "Incrémentation" n'est pas utilisé.
Assistant de formule
-
+ Assistent de fórmulaTextLabel
- Etiqueta de text
+ Etiqueta de textFormule
-
+ Fórmula
@@ -3097,17 +3120,17 @@ Le champ "Incrémentation" n'est pas utilisé.
Dénomination automatique :
-
+ Denominació automàtica:Formule
-
+ FórmulaInsert Formula Here e.g.: %prefix%l%c
- Inserir Fórmula Aquí, per exemple: %prefix%l%c
+ Insereix la fórmula aquí, per exemple: %prefix%l%c
@@ -3121,15 +3144,15 @@ Le champ "Incrémentation" n'est pas utilisé.
You can also assign any other titleblock variable
that you create. Text and number inputs are
also available.
- Pot utilitzar les següents variables en la seva fórmula:
- -%prefix: Prefix de l'element predeterminat
- -%l: Línia Element
- -%c: Columna Element
- -%F: Nom Full
- -%f o %id: ID Full
+ Pots utilitzar les següents variables en la teva fórmula:
+ -%prefix: Prefix de l'element per defecte
+ -%l: Línia de l'element
+ -%c: Columna de l'element
+ -%F: Nom del Full
+ -%f o %id: ID del Full
-%total: Total de fulls
-També pot crear qualsevol altra variable
-Les entrades de text i nombres
+També pots assignar qualsevol altra variable de bloc de títol que creis.
+Les entrades de text i nombres també
estan disponibles.
@@ -3138,83 +3161,83 @@ Les entrades de text i nombres
Form
- Formulari
+ FormulariDéplacer dans :
-
+ Mou a :Type :
- Tipus:
+ Tipus:Fonction :
- Funció:
+ Funció:LED :
-
+ LED :Appliquer le déplacement
-
+ Aplica el desplaçamentGénérique
-
+ GenèricFusible
-
+ FusibleSectionnable
-
+ SeccionableDiode
-
+ DíodeTerre
- Terra
+ TerraPhase
- Fase
+ FaseNeutre
- Neutre
+ NeutreSans
-
+ SenseAvec
-
+ AmbModifier des propriétés de borniers
-
+ Modifica les propietats del bloc de borns
@@ -3222,27 +3245,27 @@ Les entrades de text i nombres
Label
- Etiqueta
+ EtiquetaRéférence croisé
-
+ Referència creuadaType
- Tipus
+ TipusFonction
- Funció
+ Funcióled
-
+ led
@@ -3255,7 +3278,7 @@ Les entrades de text i nombres
Utiliser les couleurs du système
- Emprar els colors del sistema
+ Utilitza els colors del sistema
@@ -3265,79 +3288,79 @@ Les entrades de text i nombres
Utiliser les gestes du pavé tactile
- Utilitzar els gestos del touchpad
+ Utilitza els gestos del ratolí tàctilMettre en valeur dans le panel les éléments fraîchement intégrés
- Ressaltar al panell els elements importats recentment
+ Ressalta els elements recentment integrats al panellExporter les bornes dans la nomenclature
- Exportar els terminals en la nomenclatura
+ Exporta els borns a la nomenclaturaForm
- Formulari
+ FormulariUtiliser des fen&êtres (appliqué au prochain lancement de QElectroTech)
-
+ Utilitza fine&stres (s'aplicarà al proper llançament de QElectroTech)Utiliser des onglets (appliqué au prochain lance&ment de QElectroTech)
-
+ Utilitza pestanyes (s'aplicarà al proper llança&ment de QElectroTech)Méthode de mise à l'echelle des écrans à haute densité de pixels (hdpi) (appliqué au prochain lancement de QElectroTech) :
-
+ Mètode d'escalat de pantalla d'alta densitat de píxels (HDPI) (s'aplicarà al proper llançament de QElectroTech):Sauvegarde automatique des projets (appliqué au prochain lancement de QElectroTech)
-
+ Desament automàtic del projecte (s'aplicarà al proper llançament de QElectroTech)Numéroter les colonnes de cartouche à partir de 0 (1 sinon)Choix de l'increment de depart 1 ou 0
-
+ Numera les columnes dels caixetins començant per 0 (1 altrament)Désactivé
-
+ Inhabilitat minminute
-
+ minUtiliser les numéros de folio à la place de leur position dans le projet
-
+ Utilitza els números de full en lloc de la seva posició en el projecteCollections
- Col·leccions
+ Col·leccionsAccès aux collections
-
+ Accés a les col·leccionsRépertoire de la collection commune
-
+ Directori de la col·lecció compartida
@@ -3346,7 +3369,7 @@ Les entrades de text i nombres
Par defaut
-
+ Per defecte
@@ -3355,405 +3378,374 @@ Les entrades de text i nombres
Parcourir...
-
+ Navega...Répertoire de la collection company
-
+ Directori de la col·lecció d'empresaRépertoire des cartouches company
-
+ Directori dels caixetins d'empresaRépertoire de la collection utilisateur
-
+ Directori de la col·lecció d'usuariRépertoire des cartouches utilisateur
-
+ Directori dels caixetins d'usuari(Recharger les collections d'éléments pour appliquer les changements)
-
+ (Torna a carregar les col·leccions d'elements per aplicar els canvis)Gestion des éléments
- Gestió dels símbols
+ Gestió dels elementsChaque élément embarque des informations sur ses auteurs, sa licence, ou tout autre renseignement que vous jugerez utile dans un champ libre.
Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments que vous créerez :
-
+ Cada element conté informació sobre els seus autors, la llicència i qualsevol altra informació que considereu útil en un camp lliure.
+Podeu especificar el valor per defecte d'aquest camp per als elements que creeu aquí:Langues
-
+ LlengüesAppliqué au prochain lancement de QElectroTech
-
+ S'aplicarà al proper llançament de QElectroTechTextes
-
+ TextosVous pouvez définir ici l'apparence par defaut des differents textes de QElectroTech
-
+ Aquí podeu definir l'aspecte per defecte dels diferents textos de QElectroTechTextes d'éléments
-
+ Textos d'elementsPolice :
- Tipus de lletra:
+ Tipus de lletra :°
-
+ °Longueur :
-
+ Longitud :Rotation :
-
+ Rotació :Textes indépendants
-
+ Textos independentsAutres textes
-
+ Altres textosGrille + Clavier
-
+ Graella i teclatGrille : 1 - 30
-
+ Graella de l'editor d'esquemesDiagramEditor yGrid
-
+ Distància entre punts en vertical : 1-30La Grille doite etre active pour pouvoir voir les modifications.
-
+ La quadrícula ha d'estar activa per veure els canvis.DiagramEditor xGrid
-
+ Distància entre punts en horitzontal : 1-30Déplacement au clavier : 1 - 30
-
+ Desplaçament per la graella de l'editor d'esquemes utilitzant el teclatDiagramEditor (touche : gauche / droite) xGrid
-
+ Distància desplaçada amb les tecles esquerra i dreta en horitzontal : 1-30DiagramEditor (touche : haut / bas) yGrid
-
+ Distància desplaçada amb les tecles amunt i avall en vertical : 1-30Déplacement au clavier avec la touche ALT : 1 - 9
-
+ Desplaçament per la graella de l'editor d'esquemes utilitzant el teclat amb la tecla ALTDiagramEditor (touche : gauche / droite ) xGrid
-
+ Distància desplaçada amb les tecles esquerra i dreta en horitzontal : 1-9DiagramEditor (touche : haut / bas) yGrid
-
+ Distància desplaçada amb les tecles amunt i avall en vertical : 1-9
-
- Affichage Grille
-
-
-
-
-
- max:
-
-
-
-
- Taille des points de la grille de Diagram-Editor : 1 - 5
-
-
-
-
-
- min:
-
-
-
-
- Taille des points de la grille de l'éditeur d'éléments : 1 - 5
-
-
-
-
+ Editor
-
+ Editor
-
+ Max. parts in Element Editor List
-
+ Màxim de peces a la llista de l'editor d'elementsNe pas conserver les labels des éléments lors des copier coller
- No conservar les etiquetes dels elements després de copiar i enganxar
+ No conservis les etiquetes dels elements després de copia i enganxaAutoriser le dézoom au delà du folio
- Permetre l'ajust de la mida del full
+ Permet allunyar més enllà de la mida del fullArrondi supérieur pour 0.5 et plus
-
+ Arrodoneix cap amunt per 0,5 o mésToujours arrondi supérieur
-
+ Sempre arrodonit cap amuntToujours arrondi inférieur
-
+ Sempre arrodonit cap avallArrondi supérieur pour 0.75 et plus
-
+ Arrodoneix cap amunt per 0,75 o mésPas d'arrondi
-
+ Sense arrodoniment
-
+ Généralconfiguration page titleGeneral
-
+ SystèmeSistema
-
+ ArabeÀrab
-
+ BrézilienBrasiler
-
+ CatalanCatalà
-
+ TchèqueTxec
-
+ AllemandAlemany
-
+ DanoisDanès
-
+ GrecGrec
-
+ AnglaisAnglès
-
+ EspagnolCastellà
-
+ FrançaisFrancès
-
+ CroateCroat
-
+ ItalienItalià
-
+ Japonais
-
+ Japonès
-
+ PolonaisPolonès
-
+ PortugaisPortuguès
-
+ RoumainsRomanès
-
+ RusseRus
-
+ SlovèneEslovè
-
+ Pays-BasPaïsos Baixos
-
+ Norvege
-
+ Noruec
-
+ Belgique-FlemishBèlgica-Flamenc
-
+ Turc
-
+ Turc
-
+ Hongrois
-
+ Hongarès
-
+ Mongol
-
+ Mongol
-
+ Ukrainien
-
+ Ucraïnès
-
+ Chinois
-
+ Xinès
-
- Suédois
-
-
-
-
+ Chemin de la collection commune
-
+ Ruta de la col·lecció compartida
-
+ Chemin de la collection company
-
+ Ruta de la col·lecció d'empresa
-
+ Chemin de la collection utilisateur
-
+ Ruta de la col·lecció d'usuari
-
+ Chemin des cartouches company
-
+ Ruta dels caixetins d'empresa
-
+ Chemin des cartouches utilisateur
-
+ Ruta dels caixetins d'usuaris
-
+ To high values might lead to crashes of the application.
-
+ Valors massa alts poden provocar bloquejos de l'aplicació.
@@ -3768,7 +3760,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
Ceci est un projet QElectroTech, c'est-à-dire un fichier d'extension .qet regroupant plusieurs folios. Il embarque également les éléments et modèles de cartouches utilisés dans ces folios."What's this" tip
- Això és un projecte QElectroTech, és a dir, un arxiu amb extensió .qet integrat per diversos fulls. També incorpora els elements i models utilitzats en aquests fulls.
+ Això és un projecte QElectroTech, és a dir, un fitxer amb extensió .qet integrat per diversos fulls. També incorpora els elements i models de caixetins utilitzats en aquests fulls.
@@ -3813,185 +3805,186 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
Form
- Formulari
+ FormulariAffichage
- Visualització
+ VisualitzacióNom du tableau
-
+ Nom de la taulaGéometrie et lignes
-
+ Geometria i líniesToutes
-
+ TotesTableau suivant
-
+ Taula següentAucun
- Cap
+ CapAjuster le tableau au folio
-
+ Ajusta la taula al fullY :
-
+ Y :X :
-
+ X :Tableau précédent
-
+ Taula anteriorAppliquer la géometrie à tous les tableaux liée à celui-ci
-
+ Aplica la geometria a totes les taules enllaçades a aquestaTableau précédent :
-
+ Taula anterior :Lignes à afficher :
-
+ Línies a mostrar :TextLabel
- Etiqueta de text
+ Etiqueta de textEn tête
-
+ Al capdavantMarge
-
+ MargeAligement :
-
+ Alineació :Gauche
- Esquerra
+ EsquerraCentré
- Centrat
+ CentratDroite
- Dreta
+ DretaPolice
-
+ FontTableau
-
+ TaulaAlignement :
- Aliniació:
+ Alineació :Contenu
-
+ ContingutDéplacer un tableau
-
+ Mou una taulaModifier le nombre de ligne affiché par un tableau
-
+ Canvia el nombre de files que mostra una taulaModifier les marges d'une en tête de tableau
-
+ Canvia els marges de la capçalera d'una taulaModifier les marges d'un tableau
-
+ Canvia els marges d'una taulaModifier l'alignement d'une en tête de tableau
-
+ Canvia l'alineació de la capçalera d'una taulaModifier l'alignement des textes d'un tableau
-
+ Canvia l'alineació dels textos de les taulesModifier la police d'une en tête de tableau
-
+ Canvia la font de la capçalera d'una taulaChanger la police d'un tableau
-
+ Canvia la font d'una taula<center>ATTENTION :</center>
il manque %1 lignes afin d'afficher l'intégralité des informations
-
+ <center>AVÍS:</center>
+Falten %1 línies per mostrar tota la informacióAppliquer la géometrie d'un tableau aux tableau liée à celui-ci
-
+ Aplica la geometria d'una taula a les taules que hi estan vinculades
@@ -4004,7 +3997,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
Verrouiller la position
- Bloquejar la posició
+ Bloqueja la posició
@@ -4019,7 +4012,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
Modifier la taille d'une image
- Modificar la mida d'una imatge
+ Modifica la mida d'una imatge
@@ -4027,32 +4020,32 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
Intégration d'un élément
- Integració d'un símbol
+ Integració d'un elementL'élément a déjà été intégré dans le projet. Toutefois, la version que vous tentez de poser semble différente. Que souhaitez-vous faire ?
- El símbol ja havia estat integrat al projecte. No obstant, la versió que vol inserir ara sembla diferent. Què vol fer?
+ L'element ja ha estat integrat al projecte. No obstant, la versió que vols inserir ara sembla diferent. Què vols fer?Utiliser l'élément déjà integré
- Utilitzar el símbol ja integrat
+ Utilitza l'element ja integratIntégrer l'élément déposé
- Importar el nou símbol
+ Importa el nou element deixat anarÉcraser l'élément déjà intégé
- Sobreescriure el símbol
+ Sobreescriure l'element ja integratFaire cohabiter les deux éléments
- Fer coexistir tots dos símbols
+ Fer coexistir tots dos elements
@@ -4060,17 +4053,17 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
Dialog
- Diàleg
+ DiàlegTextLabel
- Etiqueta de text
+ Etiqueta de textÉcraser les textes existants
-
+ Sobreescriu els textos existents
@@ -4078,59 +4071,60 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
Form
- Formulari
+ FormulariX :
-
+ X :Éditeur avancé
-
+ Editor avançatTaille :
-
+ Mida :Angle :
- Angle:
+ Angle :px
- px
+ px°
-
+ °Y :
-
+ Y :Le contenu, la taille et la police du texte ne peuvent être modifié car formaté en html.
Veuillez utiliser l'éditeur avancé pour cela.
-
+ El contingut del text, la mida i la font no es poden editar, ja que estan formatats en HTML.
+Si us plau, feu servir l'editor avançat per a això.Cliquez ici pour annuler le formatage html
-
+ Feu clic aquí per cancel·lar el format HTMLTexte
- Text
+ Text
@@ -4138,53 +4132,53 @@ Veuillez utiliser l'éditeur avancé pour cela.
Police
-
+ FontDéplacer un champ texte
- Moure un camp de text
+ Moure un camp de textPivoter un champ texte
-
+ Gira un camp de textModifier un champ texte
- Modificar un camp de text
+ Canvia un camp de textModifier la taille d'un champ texte
- Modificar la mida d'un camp de text
+ Canvia la mida d'un camp de textModifier la police d'un champ texte
-
+ Canvia la font d'un camp de textPivoter plusieurs champs texte
-
+ Gira diversos camps de textModifier la taille de plusieurs champs texte
-
+ Canvia la mida de diversos camps de textModifier la police de plusieurs champs texte
-
+ Canvia la.font de diversos camps de textModifier les propriétés d'un texte
-
+ Canvia les propietats del text
@@ -4193,7 +4187,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Impossible d'accéder à la catégorie parenteerror message
- No es pot accedir a la categoria pare
+ No es pot accedir a la categoria principal
@@ -4216,25 +4210,25 @@ Veuillez utiliser l'éditeur avancé pour cela.
Le modèle a déjà été intégré dans le projet. Toutefois, la version que vous tentez d'appliquer semble différente. Que souhaitez-vous faire ?dialog content - %1 is a title block template name
- El model ja havia estat integrat al projecte. No obstant, la versió que vol inserir ara sembla diferent. Què vol fer?
+ El model ja ha estat integrat al projecte. No obstant, la versió que vols inserir ara sembla diferent. Què vols fer?Utiliser le modèle déjà intégrédialog content
- Emprar el model que ja era importat
+ Utilitza el model ja integratIntégrer le modèle déposédialog content
- Integrar el nou model
+ Importa el nou model deixat anarÉcraser le modèle déjà intégrédialog content
- Sobreescriure el model preexistent
+ Sobreescriure el model ja integrat
@@ -4284,48 +4278,48 @@ Veuillez utiliser l'éditeur avancé pour cela.
Modifier une ligne
- Modificar una línia
+ Modifica una líniaForm
- Formulari
+ FormulariX1 :
-
+ X1 :Y1 :
-
+ Y1 :X2 :
-
+ X2 :Fin 1 :
-
+ Final 1 :Y2 :
-
+ Y2 :Fin 2 :
-
+ Final 2 :Longueur :
-
+ Longitud :
@@ -4338,42 +4332,42 @@ Veuillez utiliser l'éditeur avancé pour cela.
Cet élément est déjà lié
- Aquest símbol ja està enllaçat
+ Aquest element ja està enllaçatRecherche
-
+ RecercaVoir cet élément
- Veure aquest símbol
+ Veure aquest elementVoir l'élément lié
- Veure el símbol enllaçat
+ Veure l'element enllaçatLier l'élément
-
+ Enllaça l'elementMontrer l'élément
-
+ Mostra l'elementMontrer l'élément esclave
-
+ Mostra l'element esclauEnregistrer la disposition
-
+ Desa el disseny
@@ -4389,19 +4383,19 @@ Veuillez utiliser l'éditeur avancé pour cela.
Label
- Etiqueta
+ EtiquetaCommentaire
- Comentari
+ ComentariLabel de folio
- Etiqueta del full
+ Etiqueta del full
@@ -4409,7 +4403,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Position
- Posició
+ Posició
@@ -4417,43 +4411,43 @@ Veuillez utiliser l'éditeur avancé pour cela.
Titre de folio
- Títol del full
+ Títol del fullN° de folio
- Núm. de full
+ Núm. de fullN° de fil
-
+ N° de filFonction
- Funció
+ FuncióTension / Protocole
-
+ Tensió / ProtocolCouleur du conducteur
- Color del conductor
+ Color del conductorSection du conducteur
-
+ Secció del conductor
@@ -4466,27 +4460,27 @@ Veuillez utiliser l'éditeur avancé pour cela.
Editer les marges
-
+ Edita els margesHaut :
-
+ Superior :Gauche :
-
+ Esquerra :Droit :
-
+ Dreta :Bas :
-
+ Inferior :
@@ -4499,80 +4493,80 @@ Veuillez utiliser l'éditeur avancé pour cela.
Éléments disponibles
- Símbols disponibles
+ Elements disponibles<html><head/><body><p>Délier l'élément sélectionné</p></body></html>
-
+ <html><head/><body><p>Desvincula l'element seleccionat</p></body></html><html><head/><body><p>Lier l'élément sélectionné</p></body></html>
-
+ <html><head/><body><p>Enllaça l'element seleccionat</p></body></html>Éléments liés
- Símbols enllaçats
+ Elements enllaçatsVignette
-
+ MiniaturaLabel de folio
- Etiqueta del full
+ Etiqueta del fullTitre de folio
- Títol del full
+ Títol del fullPosition
- Posició
+ PosicióN° de folio
- Núm. de full
+ Núm. de fullLier l'élément
-
+ Enllaça l'elementDélier l'élément
-
+ Desvincula l'elementMontrer l'élément
-
+ Mostra l'elementMontrer l'élément maître
-
+ Mostra l'element mestreEnregistrer la disposition
-
+ Desa el dissenyRéférence croisée (maître)
-
+ Referència creuada (Mestre)
@@ -4580,53 +4574,53 @@ Veuillez utiliser l'éditeur avancé pour cela.
Collage multiple
-
+ Enganxament múltipleDécalage
-
+ Decalatgepx
- px
+ pxx:
-
+ x: y:
-
+ y: Nombre de copie
-
+ Nombre de còpiesAuto-connexion
-
+ AutoconnexióAuto-numérotation des éléments
-
+ Numeració automàtica d'elementsAuto-numérotation des conducteurs
-
+ Autonumeració de conductorsMulti-collage
-
+ Enganxament múltiple
@@ -4634,12 +4628,12 @@ Veuillez utiliser l'éditeur avancé pour cela.
Dialog
- Diàleg
+ DiàlegVariables de cartouche
-
+ Variables de caixetí
@@ -4647,27 +4641,27 @@ Veuillez utiliser l'éditeur avancé pour cela.
Form
- Formulari
+ FormulariLangue
- Llengua
+ LlenguaTexte
- Text
+ TextAjouter une ligne
- Afegir una línia
+ Afegeix una líniaCopier dans le presse papier
-
+ Copia al porta-retalls
@@ -4711,7 +4705,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Créer un nouvel élément : Assistantwindow title
- Crear un símbol nou: Assistent
+ Crea un element nou: Assistent
@@ -4722,30 +4716,30 @@ Veuillez utiliser l'éditeur avancé pour cela.
Étape 1/3 : Catégorie parentewizard page title
- Pas 1/5: Categoria pare {1/4 ?} {1/3 ?}
+ Pas 1/3: Categoria principalSélectionnez une catégorie dans laquelle enregistrer le nouvel élément.wizard page subtitle
- Seleccioni la categoria dins la qual es desarà el símbol nou.
+ Seleccioni la categoria dins la qual es desarà l'element nou.Étape 2/3 : Nom du fichierwizard page title
- Pas 2/5: Nom del fitxer {2/4 ?} {2/3 ?}
+ Pas 2/3: Nom del fitxerIndiquez le nom du fichier dans lequel enregistrer le nouvel élément.wizard page subtitle
- Indiqui el nom del fitxer pel nou símbol.
+ Especifiqueu el nom del fitxer on voleu desar el nou element.nouvel_element
- nou_símbol
+ nou_element
@@ -4756,20 +4750,20 @@ Veuillez utiliser l'éditeur avancé pour cela.
Étape 3/3 : Noms de l'élémentwizard page title
- Pas 3/5: Noms del símbol {3/4 ?} {3/3 ?}
+ Pas 3/3: Noms de l'elementIndiquez le ou les noms de l'élément.wizard page subtitle
- Indiqueu el o els noms del símbol.
+ Indiqueu els noms de l'element.Nom du nouvel élémentdefault name when creating a new elementnom per defecte quan es crei un símbol nou
- Nom del símbol nou
+ Nom de l'element nou
@@ -4794,7 +4788,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Un élément portant le même nom existe déjà
- Un símbol amb el mateix nom ja existeix
+ Un element amb el mateix nom ja existeix
@@ -4811,7 +4805,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Chiffre 1
- Figura 1
+ Digit 1
@@ -4820,7 +4814,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Chiffre 01
- Figura 01
+ Digit 01
@@ -4829,7 +4823,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Chiffre 001
- Figura 001
+ Digit 001
@@ -4862,7 +4856,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Chiffre 1 - Folio
- Figura 1 - Full
+ Digit 1 - Full
@@ -4870,7 +4864,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Chiffre 01 - Folio
- Figura 01 - Full
+ Digit 01 - Full
@@ -4878,7 +4872,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Chiffre 001 - Folio
- Figura 001 - Full
+ Digit 001 - Full
@@ -4886,7 +4880,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Locmach
- Locmach
+ Localització
@@ -4894,39 +4888,39 @@ Veuillez utiliser l'éditeur avancé pour cela.
Installation
- Instal·lació
+ Instal·lacióElement Line
- Símbol Linía
+ Element LiníaElement Column
- Símbol Columna
+ Element ColumnaElement Prefix
- Símbol Prefix
+ Element PrefixPartArc
-
-
-
-
+
+
+
+ Modifier un arc
- Modificar un arc
+ Modifica un arc
@@ -4935,28 +4929,28 @@ Veuillez utiliser l'éditeur avancé pour cela.
Champ de texte dynamiqueelement part name
-
+ Camp de text dinàmic
-
+ Déplacer un champ texte
- Moure un camp de text
+ Moure un camp de textPartEllipse
-
+ Modifier un rectangle
- Modificar un rectangle
+ Modifica un rectanglePartLine
-
+ Modifier une ligne
- Modificar una línia
+ Modifica una línia
@@ -4964,40 +4958,40 @@ Veuillez utiliser l'éditeur avancé pour cela.
Ajouter un point
-
+ Afegeix un puntSupprimer ce point
-
+ Suprimeix aquest punt
-
+ Modifier un polygone
- Modificar un polígon
+ Modifica un polígon
-
+ Ajouter un point à un polygone
-
+ Afegeix un punt a un polígon
-
+ Supprimer un point d'un polygone
-
+ Suprimeix un punt d'un polígonPartText
-
+ Déplacer un texte
-
+ Mou un text
-
+ Modifier un champ texte
- Modificar un camp de text
+ Modifica un camp de text
@@ -5005,17 +4999,17 @@ Veuillez utiliser l'éditeur avancé pour cela.
Form
- Formulari
+ FormulariX
-
+ XY
-
+ Y
@@ -5025,17 +5019,17 @@ Veuillez utiliser l'éditeur avancé pour cela.
Ajouter un point
-
+ Afegeix un puntSupprimer ce point
-
+ Suprimeix aquest puntPoints du polygone :
- Punts del polígon:
+ Punts del polígon :
@@ -5052,18 +5046,18 @@ Veuillez utiliser l'éditeur avancé pour cela.
Ajouter un point à un polygone
-
+ Afegeix un punt a un polígonSupprimer un point d'un polygone
-
+ Suprimeix un punt d'un polígonModifier un polygone
- Modificar un polígon
+ Modifica un polígon
@@ -5071,7 +5065,7 @@ Veuillez utiliser l'éditeur avancé pour cela.
Sélectionner le potentiel éléctrique
- Seleccionar el potencial elèctric
+ Selecciona el potencial elèctric
@@ -5084,7 +5078,8 @@ Per favor, seleccioni les propietats que s'aplicaran al nou potencial.
Veuillez choisir un potentiel électrique de la liste
à utiliser pour le nouveau potentiel
-
+ Si us plau, trieu un potencial elèctric de la llista
+ per utilitzar-lo per al nou potencial
@@ -5092,7 +5087,8 @@ Per favor, seleccioni les propietats que s'aplicaran al nou potencial.
Numéro : %1
-
+
+Número: %1
@@ -5100,7 +5096,8 @@ Numéro : %1
Fonction : %1
-
+
+Funció: %1
@@ -5108,7 +5105,8 @@ Fonction : %1
Tension/protocole : %1
-
+
+Voltatge/protocol: %1
@@ -5116,7 +5114,8 @@ Tension/protocole : %1
Couleur du conducteur : %1
-
+
+Color del controlador: %1
@@ -5124,32 +5123,33 @@ Couleur du conducteur : %1
Section du conducteur : %1
-
+
+Secció del conductor: %1%n conducteurs composent le potentiel suivant :
-
-
-
+
+ %n conductor forma el següent potencial:
+ %n conductors formen el següent potencial:Ajouter au câble: %1
-
+ Afegeix al cable: %1Ajouter au bus: %1
-
+ Afegeix al bus: %1Modifier les propriétés de plusieurs conducteursundo caption
- Modificar les propietats de diversos conductors
+ Modifica les propietats de diversos conductors
@@ -5157,7 +5157,10 @@ Section du conducteur : %1
Veuillez saisir une formule compatible pour ce potentiel.
Les variables suivantes sont incompatibles :
%sequf_ %seqtf_ %seqhf_ %id %F %M %LM
-
+ La fórmula per al nou potencial conté variables que són incompatibles amb els informes de full.
+Introduïu una fórmula compatible per a aquest potencial.
+Les variables següents són incompatibles:
+%sequf_ %seqtf_ %seqhf_ %id %F %M %LM
@@ -5174,7 +5177,7 @@ Les variables suivantes sont incompatibles :
Numérotation auto
-
+ Numeració automàtica
@@ -5184,22 +5187,22 @@ Les variables suivantes sont incompatibles :
Conducteurs
-
+ ConductorsEléments
-
+ ElementsFolios
-
+ FullsNumérotation auto des folios
-
+ Numeració automàtica de fulls
@@ -5231,12 +5234,12 @@ Les variables suivantes sont incompatibles :
Position
- Posició
+ PosicióPosition du folio
-
+ Posició de full
@@ -5244,17 +5247,17 @@ Les variables suivantes sont incompatibles :
Form
- Formulari
+ FormulariRequête
-
+ Sol·licitudRecharger
- Recarregar
+ Recarregar
@@ -5281,7 +5284,7 @@ Les variables suivantes sont incompatibles :
Vous pouvez définir ci-dessous des propriétés personnalisées qui seront disponibles pour tous les folios de ce projet (typiquement pour les cartouches).informative label
- Vostè pot definir les propietats personalitzades que vol que estiguin disponibles per a tots els fulls del projecte.
+ Pots definir a continuació les propietats personalitzades que vols que estiguin disponibles per a tots els fulls d'aquest projecte. (normalment per als blocs de títol).
@@ -5289,204 +5292,204 @@ Les variables suivantes sont incompatibles :
MainWindow
-
+ Finestra principalFolios à imprimer :
- Fulls a imprimir:
+ Fulls a imprimir :Tout cocher
- Marcar-ho tot
+ Marcar-ho totTout décocher
- Desmarcar-ho tot
+ Desmarcar-ho totToutes les dates
-
+ Totes les datesÀ partir de la date du :
-
+ A partir de la data :À la date du :
-
+ A la data :Option de rendu
-
+ Opcions de renderitzacióDessiner le cadre
- Dibuixar el quadre
+ Dibuixa el quadreDessiner le cartouche
- Dibuixar el caixetí
+ Dibuixa el caixetíConserver les couleurs des conducteurs
- Recordar els colors dels conductors
+ Mostra els colors dels conductorsDessiner les bornes
- Dibuixar els borns
+ Dibuixa els bornsOption d'impression
-
+ Opció d'impressióAdapter le folio à la page
- Adaptar el full a la pàgina
+ Adapta el full a la pàginaUtiliser toute la feuille
- Emprar tot el full
+ Empra tot el fullSi cette option est cochée, le folio sera agrandi ou rétréci de façon à remplir toute la surface imprimable d'une et une seule page."
-
+ Si aquesta opció està marcada, el full s'ampliarà o es reduirà per omplir tota l'àrea imprimible d'una i només una pàgina."Si cette option est cochée, les marges de la feuille seront ignorées et toute sa surface sera utilisée pour l'impression. Cela peut ne pas être supporté par votre imprimante.
-
+ Si aquesta opció està marcada, els marges del full s'ignoraran i s'utilitzarà tota l'àrea del full per a la impressió. Pot ser que la impressora no ho admeti.toolBar
-
+ Barra d'einesAjuster la largeur
- Ajustar la llargada
+ Ajusta a l'ampladaAjuster la page
- Ajustat la pàgina
+ Ajusta a la pàginaZoom arrière
-
+ AllunyaZoom avant
-
+ ApropaPaysage
- Apaïsat
+ ApaïsatPortrait
- Vertical
+ RetratPremière page
- Primera plana
+ Primera pàginaPage précédente
- Plana anterior
+ Pàgina anteriorPage suivante
- Plana següent
+ Pàgina següentDernière page
- Darrera plana
+ Darrera pàginaAfficher une seule page
-
+ Mostra només una pàginaAfficher deux pages
- Mostrar dues planes
+ Mostra dues pàginesAfficher un aperçu de toutes les pages
- Mostrar una vista prèvia de cada plana
+ Mostra una vista prèvia de totes les pàginesmise en page
-
+ maquetacióOptions d'impressionwindow title
- Opcions d'impressió
+ Opcions d'impressióprojetstring used to generate a filename
- projecte
+ projecteImprimer
- Imprimir
+ ImprimeixExporter en pdf
-
+ Exporta com a pdfMise en page (non disponible sous Windows pour l'export PDF)
-
+ Configuració de pàgina (no disponible a Windows per a l'exportació a PDF)Folio sans titre
- Full sense títol
+ Full sense títolExporter sous :
-
+ Exporta com a: Fichier (*.pdf)
-
+ Fitxer (*.pdf)
@@ -5501,7 +5504,7 @@ Vol desar els canvis?
sansnom
-
+ sense nom
@@ -5513,13 +5516,13 @@ Vol desar els canvis?
Supprimer le folio ?message box title
- Eliminar el full?
+ Suprimeix el full?Êtes-vous sûr de vouloir supprimer ce folio du projet ? Ce changement est irréversible.message box content
- Vol eliminar el full del projecte? El canvi és irreversible.
+ Vols eliminar el full del projecte? El canvi és irreversible.
@@ -5536,38 +5539,38 @@ Vol desar els canvis?
Supprimer les modèles de cartouche inutilisés dans le projet
- Eliminar els models de caixetins que no es facin servir al projecte
+ Elimina els models de caixetins que no es facin servir al projecteSupprimer les éléments inutilisés dans le projet
- Eliminar els símbols que no es facin servir al projecte
+ Suprimeix els elements que no es facin servir al projecteSupprimer les catégories vides
- Eliminar les categories buides
+ Suprimeix les categories buidesNettoyer le projetwindow title
- Netejar el projecte
+ Neteja el projecteAjouter un folio
- Afegir un full
+ Afegeix un fullRevenir au debut du projet
-
+ Torna a l'inici del projecteAller à la fin du projet
-
+ Vés al final del projecte
@@ -5579,7 +5582,7 @@ Vol desar els canvis?
Enregistrer sousdialog title
- Anomena i desa
+ Desa com a
@@ -5590,7 +5593,7 @@ Vol desar els canvis?
<p align="center"><b>Ouverture du projet en cours...</b><br/>Création des onglets de folio :</p>
-
+ <p align="center"><b>Obrint el projecte actual...</b><br/>Creant pestanyes de fulls:</p>
@@ -5604,223 +5607,223 @@ Vol desar els canvis?
Propriétés de la sélection
-
+ Propietats de la seleccióQETApp
-
+ Chargement... Initialisation du cache des collections d'élémentssplash screen caption
- Carregant... Posada en marxa del catxé de la col·lecció de símbols
+ Carregant... Posada en marxa del memòria cau de la col·lecció d'elements
-
+ Chargement... Éditeur de schémasplash screen captionCarregant... Editor d'esquemes
-
+ Chargement... Ouverture des fichierssplash screen captionCarregant... Obrint els fitxers
-
+ LTRTranslate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR
- LTR
+ LTR
-
+ Cartouches QETtitle of the title block templates collection provided by QElectroTech
- Caixetins QET
+ Caixetins QET
-
+ Cartouches companytitle of the company's title block templates collection
-
+ Caixetins d'empresa
-
+ Cartouches utilisateurtitle of the user's title block templates collection
- Caixetins personals
+ Caixetins personals
-
+ QSingle-letter example text - translate length, not meaningQ
-
+ QETSmall example text - translate length, not meaningQET
-
+ SchemaNormal example text - translate length, not meaningEsquema
-
+ ElectriqueNormal example text - translate length, not meaningElèctric
-
+ QElectroTechLong example text - translate length, not meaningQElectroTech
-
+ Configurer QElectroTechwindow title
- Configurar QElectroTech
+ Configura QElectroTech
-
+ Chargement...splash screen captionCarregant...
-
+ Chargement... icône du systraysplash screen captionCarregant... icona de la safata del sistema
-
+ QElectroTechsystray menu titleQElectroTech
-
+ &Quitter&Sortir
-
+ &Masquer&Amagar
-
+ &Restaurer&Restaurar
-
+ &Masquer tous les éditeurs de schéma
- Amagar tots els editors d'&esquemes
+ Amaga tots els editors d'&esquemes
-
+ &Restaurer tous les éditeurs de schéma
- Restaurar tots els editors d'&esquemes
+ Restaura tots els editors d'&esquemes
-
+ &Masquer tous les éditeurs d'élément
- &Amagar tots els editors de símbols
+ &Amaga tots els editors d'elements
-
+ &Restaurer tous les éditeurs d'élément
- &Restaurar tots els editors de símbols
+ &Restaura tots els editors d'elements
-
+ &Masquer tous les éditeurs de cartouchesystray submenu entry
- Amagar tots els editors de &caixetins
+ Amaga tots els editors de &caixetins
-
+ &Restaurer tous les éditeurs de cartouchesystray submenu entry
- Restaurar tots els editors de &caixetins
+ Restaura tots els editors de &caixetins
-
+ &Nouvel éditeur de schéma&Nou editor d'esquemes
-
+ &Nouvel éditeur d'élément
- &Nou editor de símbols
+ &Nou editor d'elements
-
+ Ferme l'application QElectroTech
- Tancar el programa QElectroTech
+ Tanca el programa QElectroTech
-
+ Réduire QElectroTech dans le systray
- Minimitzar QEletectroTech a la safata del sistema
+ Minimitza QEletectroTech a la safata del sistema
-
+ Restaurer QElectroTech
- Restaurar QElectroTech
+ Restaura QElectroTech
-
+ QElectroTechsystray icon tooltipQElectroTech
-
+ Éditeurs de schémas
- Editor d'esquemes
+ Editors d'esquemes
-
+ Éditeurs d'élément
- Editors de símbols
+ Editors d'elements
-
+ Éditeurs de cartouchesystray menu entryEditors de caixetins
-
+ <b>Le fichier de restauration suivant a été trouvé,<br>Voulez-vous l'ouvrir ?</b><br>
-
+ <b>S'ha trobat el següent fitxer de restauració.<br>Voleu obrir-lo?</b><br>
-
+ <b>Les fichiers de restauration suivant on été trouvé,<br>Voulez-vous les ouvrir ?</b><br>
-
+ <b>S'han trobat els fitxers de restauració següents.<br>Voleu obrir-los?</b><br>
-
+ Fichier de restauration
-
+ Fitxer de recuperació
-
+ Usage :
- Ús:
+ Ús :
-
+ [options] [fichier]...
@@ -5829,7 +5832,7 @@ Vol desar els canvis?
-
+ QElectroTech, une application de réalisation de schémas électriques.
Options disponibles :
@@ -5839,42 +5842,46 @@ Options disponibles :
QElectroTech, un programa per fer esquemes elèctrics.
-Opcions:
- --help Mostrar ajuda sobre opcions
- -v, --version Mostrar la versió
- --license Mostrar la llicència
+Opcions disponibles:
+ --help Mostra ajuda sobre opcions
+ -v, --version Mostra la versió
+ --license Mostra la llicència
-
+ --common-elements-dir=DIR Definir le dossier de la collection d'elements
- --common-elements-dir=DIR Definir la carpeta de la col·lecció de símbols
+ --common-elements-dir=DIR Definir la carpeta de la col·lecció d'elements
+
-
+ --common-tbt-dir=DIR Definir le dossier de la collection de modeles de cartouches
- --common-tbt-dir=DIR Definir la carpeta de la col·lecció de caixetins
+ --common-tbt-dir=DIR Definir la carpeta de la col·lecció de caixetins
+
-
+ --config-dir=DIR Definir le dossier de configuration
--config-dir=DIR Definir la carpeta de configuració
-
+ --data-dir=DIR Definir le dossier de data
-
+ --data-dir=DIR Defineix la carpeta de dades
+
-
+ --lang-dir=DIR Definir le dossier contenant les fichiers de langue
- --lang-dir=DIR Definir la carpeta amb els fitxers de llengua
+ --lang-dir=DIR Definir la carpeta amb els fitxers de llengua
+
@@ -5895,7 +5902,7 @@ Opcions:
Annulationsdock title
- Anulacions
+ Desfés
@@ -5916,27 +5923,27 @@ Opcions:
&Ouvrir
- &Obrir
+ &Obre&Fermer
- &Tancar
+ &Tanca&Enregistrer
- &Desar
+ &DesaEnregistrer sous
- Anomenar i desar
+ Desa com aE&xporter
- E&xportar
+ E&xporta
@@ -5947,48 +5954,48 @@ Opcions:
Imprimer
- Imprimir
+ ImprimeixExporter en pdf
-
+ Exporta com a pdfExporte un ou plusieurs folios du projet courantstatus bar tip
-
+ Exporta un o més fulls del projecte actual&Quitter
- &Sortir
+ &SurtAnnuler
- Anular
+ DesfésRefaire
- Tornar a fer
+ RefésCo&uper
- Re&tallar
+ Re&tallaCop&ier
- Cop&iar
+ Cop&iaC&oller
- En&ganxar
+ En&ganxa
@@ -6020,230 +6027,230 @@ Opcions:
Ajouter un folio
- Afegir un full
+ Afegeix un fullSupprimer le folio
- Eliminar un full
+ Suprimeix un fullExporter au format CSV
-
+ Exporta en format CSVAjouter une nomenclature
-
+ Afegeix una nomenclaturaGestionnaire de borniers (DEV)
-
+ Gestor de blocs de borns (DEV)Lancer le plugin de création de borniers
-
+ Inicieu el connector de creació de blocs de bornsExporter la liste des noms de conducteurs
-
+ Exporta la llista de noms de conductorsExporter la base de donnée interne du projet
-
+ Exporta la base de dades interna del projecteCrée un nouveau projetstatus bar tip
- Crear un nou projecte
+ Crea un nou projecteOuvre un projet existantstatus bar tip
- Obrir un projecte existent
+ Obre un projecte existentFerme le projet courantstatus bar tip
- Tancar el projecte
+ Tanca el projecte actualEnregistre le projet courant et tous ses foliosstatus bar tip
- Desar el projecte
+ Desa el projecte actual i tots els seus fullsEnregistre le projet courant avec un autre nom de fichierstatus bar tip
- Desar el projecte amb un altre nom d'arxiu
+ Desa el projecte actual amb un altre nom de fitxerAjouter une ligneAdd row
- Afegir una línia
+ Afegeix una líniaEnlever une ligneRemove row
- Suprimir una línia
+ Suprimeix una líniaAjoute une colonne au foliostatus bar tip
- Afegir una columna
+ Afegeix una columna al fullEnlève une colonne au foliostatus bar tip
- Suprimir una columna
+ Suprimeix una columna al fullAgrandit le folio en hauteurstatus bar tip
- Augmentar l'altura
+ Augmenta l'altura del fullRétrécit le folio en hauteurstatus bar tip
- Disminuir l'altura
+ Disminueix l'altura del fullGrouper les textes sélectionnés
-
+ Agrupa els textos seleccionatsEnlève les éléments sélectionnés du foliostatus bar tip
- Suprimir els elements seleccionats
+ Suprimeix els elements seleccionats del fullTout sélectionner
- Seleccionar-ho tot
+ Selecciona-ho totDésélectionner tout
- Alliberar totes les seleccions
+ Desselecciona-ho totInverser la sélection
- Invertir la selecció
+ Inverteix la seleccióAjouter un plan de bornes
-
+ Afegeix un pla de bornsAjoute un champ de texte sur le folio actuel
-
+ Afegeix un camp de text al full actualAjoute une image sur le folio actuel
-
+ Afegeix una imatge al full actualAjoute une ligne sur le folio actuel
-
+ Afegeix una fila al full actualAjoute un rectangle sur le folio actuel
-
+ Afegeix un rectangle al full actualAjoute une ellipse sur le folio actuel
-
+ Afegeix una el·lipse al full actualAjoute une polyligne sur le folio actuel
-
+ Afegeix un polígon al full actualAjoute un plan de bornier sur le folio actuel
-
+ Afegeix un pla de borns al full actualChercher/remplacer
-
+ Cerca i reemplaçaProfondeurtoolbar title
- Profunditat
+ ProfunditatSupprimer
- Suprimir
+ SuprimeixPivoter
- Girar
+ GiraOrienter les textes
- Orientar els textos
+ Orienta els textosRetrouver dans le panel
- Cercar al panell
+ Cerca al panellRéinitialiser les conducteurs
- Reiniciar els conductors
+ Reinicia els conductorsAjouter un champ de texte
- Afegir un camp de text
+ Afegeix un camp de textAjouter une colonne
- Afegir una columna
+ Afegeix una columnaAjouter une image
- Afegir una imatge
+ Afegeix una imatgeEnlever une colonne
- Suprimir una columna
+ Suprimeix una columna
@@ -6253,27 +6260,27 @@ Opcions:
Nettoyer le projet
- Netejar el projecte
+ Neteja el projecteAjouter un sommaire
- Afegir un resum
+ Afegeix un resumZoom avant
- Apropar
+ ApropaZoom arrière
- Allunyar
+ AllunyaZoom sur le contenu
- Ampliar el contingut
+ Amplia el contingut
@@ -6288,12 +6295,12 @@ Opcions:
en utilisant des onglets
- emprant pestanyes
+ En pestanyesen utilisant des fenêtres
- emprant finestres
+ En finestres
@@ -6329,13 +6336,13 @@ Opcions:
Sélectionne tous les éléments du foliostatus bar tip
- Seleccionar tots els elements del full
+ Selecciona tots els elements del fullDésélectionne tous les éléments du foliostatus bar tip
- Deseleccionar tots els elements del full
+ Deselecciona tots els elements del full
@@ -6352,46 +6359,46 @@ Opcions:
Adapte le zoom de façon à afficher tout le contenu du folio indépendamment du cadre
- Ajustar el zoom per visualitzar tots els continguts del full
+ Ajusta el zoom per mostrar tot el contingut del full independentment del marcAdapte le zoom exactement sur le cadre du foliostatus bar tip
- Ajustar el zoom al full
+ Ajusta el zoom exactament al marc del fullAjouter un rectangle
- Afegir un rectangle
+ Afegeix un rectangleAjouter une ellipse
- Afegir una el·lipse
+ Afegeix una el·lipseAjouter une polyligne
- Afegir un polígon
+ Afegeix un polígonRetrouve l'élément sélectionné dans le panelstatus bar tip
- Trobar l'element seleccionat en el panell
+ Troba l'element seleccionat en el panellExporte le folio courant dans un autre formatstatus bar tip
- Exportar el full en un altre format
+ Exporta el full actual a un altre formatImprime un ou plusieurs folios du projet courantstatus bar tip
- Imprimir un o més fulls
+ Imprimeix un o més fulls del projecte actual
@@ -6403,19 +6410,19 @@ Opcions:
Édite les propriétés du folio (dimensions, informations du cartouche, propriétés des conducteurs...)status bar tip
- Editar les propietats del full
+ Edita les propietats del full (dimensions, informació del caixetí, propietats dels conductors, etc.)Permet de visualiser le folio sans pouvoir le modifierstatus bar tip
- Permetre veure el full sense modificar
+ Permet veure el full sense poder modificar-loProjet %1 enregistré dans le repertoire: %2.
- Projecte % 1 desar al directori: % 2.
+ Projecte %1 desat al directori: %2.
@@ -6432,24 +6439,24 @@ Opcions:
Il semblerait que le fichier %1 que vous essayez d'ouvrir n'existe pas ou plus.
- Sembla que el fitxer %1 que vostè està intentant obrir no existeix.
+ Sembla que el fitxer %1 que estàs intentant obrir no existeix.Ouverture du projet en lecture seulemessage box title
- Obertura en mode només lectura
+ Obertura del projecte en mode de només lecturaUne erreur est survenue lors de l'ouverture du fichier %1.message box content
-
+ S'ha produït un error en obrir el fitxer %1.Active le projet « %1 »
- Activar el projecte « %1 »
+ Activa el projecte « %1 »
@@ -6461,66 +6468,66 @@ Opcions:
Ferme l'application QElectroTechstatus bar tip
- Tancar el programa QElectroTech
+ Tanca el programa QElectroTechAnnule l'action précédentestatus bar tip
- Anula l'acció prèvia
+ Desfer l'acció anteriorRestaure l'action annuléestatus bar tip
- Restaurar l'acció prèvia
+ Restaura l'acció desfetaTransfère les éléments sélectionnés dans le presse-papierstatus bar tip
- Transfereix els símbols seleccionats al portapapers
+ Transfereix els elements seleccionats al porta-retallsCopie les éléments sélectionnés dans le presse-papierstatus bar tip
- Copia els símbols seleccionats al portapapers
+ Copia els elements seleccionats al porta-retallsDésélectionne les éléments sélectionnés et sélectionne les éléments non sélectionnésstatus bar tip
- Allibera els símbols seleccionats i selecciona els símbols que no n'estiguin
+ Desselecciona els elements seleccionats i selecciona els elements no seleccionatsRecalcule les chemins des conducteurs sans tenir compte des modificationsstatus bar tip
- Recalcula la disposició dels conductors sense tenir en compte els canvis
+ Recalcula les rutes dels conductors sense tenir en compte els canvisPivote les éléments et textes sélectionnésstatus bar tip
- Pivota els símbols i els textos seleccionats
+ Gira els elements i textos seleccionatsÉditer l'item sélectionné
- Editar el símbol seleccionat
+ Edita l'element seleccionatPivote les textes sélectionnés à un angle précisstatus bar tip
- Pivota els textos seleccionats a un angle concret
+ Gira els textos seleccionats a un angle específicCréation automatique de conducteur(s)Tool tip of auto conductor
- Creació automàtica d'un conductor(s)
+ Creació automàtica de conductors
@@ -6537,7 +6544,7 @@ Opcions:
Utiliser la création automatique de conducteur(s) quand cela est possibleStatus tip of auto conductor
- Utilitzar creació automàtica d'un conductor (s)
+ Utilitza la creació automàtica de conductor (s) sempre que sigui possible
@@ -6549,13 +6556,13 @@ Opcions:
Ajouter une ligneDraw line
- Afegir una línia
+ Afegeix una líniaPrésente les différents projets ouverts dans des sous-fenêtresstatus bar tip
- Mostra els projectes oberts en sots-finestres
+ Mostra els projectes oberts en subfinestres
@@ -6567,7 +6574,7 @@ Opcions:
Permet de sélectionner les élémentsstatus bar tip
- Permet seleccionar símbols
+ Permet seleccionar els elements
@@ -6601,7 +6608,7 @@ Opcions:
&Édition
- &Edició
+ &Edita
@@ -6611,7 +6618,7 @@ Opcions:
Afficha&ge
- &Visualització
+ &Visualitza
@@ -6621,7 +6628,7 @@ Opcions:
&Récemment ouverts
- &recentment oberts
+ &Obre'n un de recent
@@ -6641,7 +6648,7 @@ Opcions:
Affiche ou non le panel d'appareils
- Mostra o amaga el panell de símbols
+ Mostra o amaga el panell d'elements
@@ -6661,7 +6668,7 @@ Opcions:
Affichage
- Visualització
+ Visualitza
@@ -6671,22 +6678,22 @@ Opcions:
Ajouter
- Afegir
+ AfegeixOuvrir un fichier
- Obrir un fitxer
+ Obre un fitxerIl semblerait que le fichier que vous essayez d'ouvrir ne soit pas accessible en lecture. Il est donc impossible de l'ouvrir. Veuillez vérifier les permissions du fichier.
- Sembla que el fitxer que vol obrir no és accessible en lectura. Per tant no pot ésser obert. Si us plau, comprovi els permissos sobre el fitxer.
+ Sembla que el fitxer que intentes obrir no és llegible. Per tant, no es pot obrir. Si us plau, comprova els permisos del fitxer.Il semblerait que le projet que vous essayez d'ouvrir ne soit pas accessible en écriture. Il sera donc ouvert en lecture seule.
- Sembla que el fitxer que vol obrir no és accessible en mode d'escriptura. Per tant serà obert en mode de només lectura.
+ Sembla que el projecte que intentes obrir no és accessible en mode d'escriptura. Per tant serà obert en mode de només lectura.
@@ -6699,404 +6706,400 @@ Opcions:
Il semblerait que le fichier %1 ne soit pas un fichier projet QElectroTech. Il ne peut donc être ouvert.message box content
- Sembla que el fitxer %1 no conté un projecte QElectroTech. Per tant no pot ésser obert.
+ Sembla que el fitxer %1 no és un fitxer de projecte QElectroTech. Per tant no es pot obrir.Double-click pour terminer la forme, Click droit pour annuler le dernier point
-
+ Feu doble clic per completar la forma, feu clic amb el botó dret per desfer l'últim puntGroupe
-
+ GrupÉditer l'élementedit element
- Editar l'element
+ Edita l'elementÉditer le champ de texteedit text field
- Editar el camp de text
+ Edita el camp de textÉditer l'imageedit image
- Editar la imatge
+ Edita la imatgeÉditer le conducteuredit conductor
- Editar el conductor
+ Edita el conductorÉditer l'objet sélectionnéedit selected item
- Editar l'objecte seleccionat
+ Edita l'objecte seleccionatQETElementEditor
-
+ &Nouveau&Nou
-
+ &Ouvrir
- &Obrir
+ &Obre
-
+ &Ouvrir depuis un fichier
- &Obrir des d'un fitxer
+ &Obre des d'un fitxer
-
+ &Enregistrer
- D&esar
+ D&esa
-
+ Enregistrer sous
- Anomenar i desar
+ Desa com a
-
+ Enregistrer dans un fichier
- Desar a un fitxer
+ Desa a un fitxer
-
+ Recharger
- Recarregar
+ Recarrega
-
+ Tout sélectionner
- Seleccionar-ho tot
+ Selecciona-ho totQElectroTech - Éditeur d'élément
- QElectroTech - Editor de símbol
+ QElectroTech - Editor d'elements
-
+ &Aide
- &Ajuda
+ &Ajuda
-
+ Annulations
- Anulacions
+ Desfés
-
+ Parties
- Parts
+ Parts
-
+ Informations
- Dades
+ Dades
-
+ Outils
- Eines
+ Eines
-
+ Affichage
- Visualització
+ Visualització
-
+ Élément
- Símbol
+ Element
-
+ Annulation
-
+ Cancel·lació
-
+ &Fermer cet éditeur
-
+ &Tanca aquest editor
-
+ Fermer cet éditeur
-
+ Tanca aquest editor
-
+ Désélectionner tout
- Desfer totes les seleccions
+ Desseleccioneu-ho tot
-
+ Co&uper
- Re&tallar
+ Re&talla
-
+ Cop&ier
- Cop&iar
+ Cop&ia
-
+ C&oller
- En&ganxar
+ En&ganxa
-
+ C&oller dans la zone
-
+ En&ganxa dins la zona
-
+ Un fichier
-
+ Un fitxer
-
+ Un élément
-
+ Un element
-
+ À &propos de QElectroTech
- Q&uant a QElectroTech
+ Q&uant a QElectroTech
-
+ Affiche des informations sur QElectroTech
- Mostra informació sobre el QElectroTech
+ Mostra informació sobre QElectroTech
-
+ Manuel en ligne
- Instruccions Online
+ Manual en línia
-
+ Lance le navigateur par défaut vers le manuel en ligne de QElectroTech
- Inicia el manual en línia de QElectroTech
+ Inicia el navegador predeterminat amb el manual en línia de QElectroTech
-
+ Chaine Youtube
- Canal de Youtube
+ Canal de Youtube
-
+ Lance le navigateur par défaut vers la chaine Youtube de QElectroTech
- Inicia per defecte al canal de Youtube de QElectroTech
+ Inicia el navegador predeterminat amb el canal de Youtube de QElectroTech
-
+ Soutenir le projet par un don
- Donar suport al projecte amb una donació
+ Dona suport al projecte amb una donació
-
+ Soutenir le projet QElectroTech par un don
- Donar suport al projecte QElectroTech amb una donació
+ Dona suport al projecte QElectroTech amb una donació
-
+ À propos de &Qt
- Sobre &Qt
+ Quant a &Qt
-
+ Affiche des informations sur la bibliothèque Qt
- Mostra informació sobre les biblioteques Qt
+ Mostra informació sobre les biblioteques Qt
-
+ Rotation
-
+ Rotació
-
- Fine-Rotation
-
-
-
-
+ Mirror
-
+ Mirall
-
+ Flip
-
+ Flip
-
+ Importer un dxf
-
+ Importa un dxf
-
+ importer un élément à redimensionner
-
+ importa un element per redimensionar-lo
-
+ Inverser la sélection
- Invertir la selecció
+ Inverteix la selecció
-
+ &Supprimer
- E&liminar
+ &Suprimeix
-
+ Zoom avant
- Zoom - apropar
+ Zoom - apropa
-
+ Zoom arrière
- Zoom - allunyar
+ Zoom - allunya
-
+ Zoom adaptéZoom adaptat
-
+ Pas de zoomSense zoom
-
+ Éditer les informations sur l'auteur
- Canviar les dades de l'autor
+ Edita les dades de l'autor
+
+
+
+ Ajouter une ligne
+ Afegeix una línia
+
+
+
+ Ajouter un rectangle
+ Afegeix un rectangle
+
+
+
+ Ajouter une ellipse
+ Afegeix una el·lipse
+
+
+
+ Ajouter un polygone
+ Afegeix un polígon
- Ajouter une ligne
- Afegir una línia
+ Ajouter du texte
+ Afegeix text
- Ajouter un rectangle
- Afegir un rectangle
+ Ajouter un arc de cercle
+ Afegeix un arc
- Ajouter une ellipse
- Afegir una el·lipse
-
-
-
- Ajouter un polygone
- Afegir un polígon
-
-
-
- Ajouter du texte
- Afegir text
-
-
-
- Ajouter un arc de cercle
- Afegir un arc
-
-
- Ajouter une borne
- Afegir un born
+ Afegeix un bornAnnuler
- Anular
+ Cancel·laAffichermenu entry
- Mostrar
+ MostraTrop de primitives, liste non générée: %1
-
+ Massa primitives, no s'ha generat la llista: %1 %n avertissement(s)warnings
-
-
-
+
+ %n avís
+ %n avísosRefaire
- Refer
+ Refès
-
+ Ajouter un champ texte dynamique
-
+ Afegeix un camp de text dinàmic
+
+
+
+ Double-click pour terminer la forme, Click droit pour annuler le dernier point
+ Feu doble clic per completar la forma, feu clic amb el botó dret per desfer l'últim punt
+
+
+
+ Ajouter un texte d'élément non éditable dans les schémas
+ Afegeix text d'elements no editables als esquemes
+
+
+
+ Ajouter un texte d'élément pouvant être édité dans les schémas
+ Afegeix text d'elements editables als esquemes
+
+
+
+ Avertissement
+ Avís
+
+
+
+ L'import d'un dxf volumineux peut prendre du temps
+veuillez patienter durant l'import...
+ Importar un fitxer DXF gran pot trigar una estona.
+Si us plau, tingueu paciència mentre es completa el procés d'importació...
+
+
+
+ Importer un élément à redimensionner
+ Importa un element per canviar-ne la mida
+
+
+
+ Éléments QElectroTech (*.elmt)
+ Elements QElectroTech (*.elmt)
- Double-click pour terminer la forme, Click droit pour annuler le dernier point
-
-
-
-
- Ajouter un texte d'élément non éditable dans les schémas
-
-
-
-
- Ajouter un texte d'élément pouvant être édité dans les schémas
-
-
-
-
- Avertissement
- Avís
-
-
-
- L'import d'un dxf volumineux peut prendre du temps
-veuillez patienter durant l'import...
-
-
-
-
- Importer un élément à redimensionner
-
-
-
-
- Éléments QElectroTech (*.elmt)
- Símbols QElectroTech (*.elmt)
-
-
- Partiestoolbar titleParts
@@ -7108,14 +7111,14 @@ veuillez patienter durant l'import...
Profunditat
-
+ Éditer le nom et les traductions de l'élément
- Editar el nom i les traduccions del símbol
+ Edita el nom i les traduccions de l'element
-
+ Éditer les propriétés de l'élément
- Editar les propietats dels símbols
+ Edita les propietats dels elements
@@ -7125,17 +7128,17 @@ veuillez patienter durant l'import...
&Édition
- &Edició
+ &Edita
-
+ Afficha&ge
- &Visualització
+ &VisualitzaColler depuis...
- Enganxar des de...
+ Enganxa des de...
@@ -7150,15 +7153,15 @@ veuillez patienter durant l'import...
[només lectura]
-
+ Aucune modificationCap canvi
-
+ Éditeur d'élémentsstatus bar message
- Editor de símbols
+ Editor d'elements
@@ -7166,7 +7169,7 @@ veuillez patienter durant l'import...
%n partie(s) sélectionnée(s).%n part seleccionada.
- %n part(s) seleccionada(es).
+ %n parts seleccionades.
@@ -7184,18 +7187,18 @@ veuillez patienter durant l'import...
<br>En l'absence de borne, l'élément ne pourra être relié à d'autres éléments par l'intermédiaire de conducteurs.warning description
- <br>En absència de born, el símbol no pot relacionar-se amb altres components a través de conductors.
+ <br>En absència de born, l'element no es pot connectar amb altres elements mitjançant conductors.<br><b>Erreur</b> :<br>Les reports de folio doivent posséder une seul borne.<br><b>Solution</b> :<br>Verifier que l'élément ne possède qu'une seul borne
- <br><b>Error</b> :<br>Les connexions del full han de tenir un sol born.<br><b>Solució</b> :<br>Comproveu que el símbol té un sol born
+ <br><b>Error</b> :<br>Les connexions del full han de tenir un sol born.<br><b>Solució</b> :<br>Comproveu que l'element té un sol bornLa vérification de cet élément a générémessage box content
- La verificació del símbol ha generat
+ La verificació de l'element ha generat
@@ -7209,7 +7212,7 @@ veuillez patienter durant l'import...
et
- i
+ i
@@ -7235,21 +7238,21 @@ veuillez patienter durant l'import...
-
+ Impossible d'ouvrir le fichier %1.message box contentNo es pot obrir el fitxer %1.
-
+ Ce fichier n'est pas un document XML validemessage box contentEl fitxer no conté un document XML vàlid
-
+ Erreurtoolbar titleError
@@ -7259,14 +7262,14 @@ veuillez patienter durant l'import...
Édition en lecture seulemessage box title
- Edició amb permís de nomès lectura
+ Edició en mode de només lecturaVous n'avez pas les privilèges nécessaires pour modifier cet élement. Il sera donc ouvert en lecture seule.message box content
- No disposa dels privilegis necessaris per modificar aquest símbol. Per tant, serà obert en mode de només lectura.
+ No disposa dels privilegis necessaris per modificar aquest element. Per tant, serà obert en mode de només lectura.
@@ -7285,7 +7288,7 @@ veuillez patienter durant l'import...
Impossible d'enregistrer l'élémentmessage box content
- Impossible desar el símbol
+ Impossible desar l'element
@@ -7296,94 +7299,94 @@ veuillez patienter durant l'import...
Il semblerait que le fichier %1 que vous essayez d'ouvrir n'existe pas ou plus.
- Sembla que el fitxer %1 que vostè està intentant obrir no existeix.
+ Sembla que el fitxer %1 que estàs intentant obrir no existeix.
-
+ Recharger l'élémentdialog title
- Recarregar el símbol
+ Recarrega l'element
-
+ Vous avez efffectué des modifications sur cet élément. Si vous le rechargez, ces modifications seront perdues. Voulez-vous vraiment recharger l'élément ?dialog content
- El símbol ha estat modificat. Si fos recarregat es perdrien els canvis. Segur que vol regarregar el símbol?
+ l'element ha estat modificat. Si fos recarregat es perdrien els canvis. Segur que vol recarregar l'element?
-
-
-
+
+
+ Echec de l'enregistrementHa fallat el desament
-
-
-
+
+
+ L'enregistrement à échoué,
les conditions requises ne sont pas validesHa fallat el desament,
Les condicions requerides no són vàlides
-
+ Enregistrer sousdialog title
- Anomenar i desar
+ Desa com a
-
+ Éléments QElectroTech (*.elmt)filetypes allowed when saving an element file
- Símbols QElectroTech (*.elmt)
+ Elements QElectroTech (*.elmt)Enregistrer l'élément en cours ?dialog title
- Desar el símbol actual?
+ Desa l'element actual?Voulez-vous enregistrer l'élément %1 ?dialog content - %1 is an element name
- Vol desar el símbol %1?
+ Vols desar l'element %1?Ouvrir un fichierdialog title
- Obrir un fitxer
+ Obre un fitxerÉléments QElectroTech (*.elmt);;Fichiers XML (*.xml);;Tous les fichiers (*)filetypes allowed when opening an element file
- Símbols QElectroTech (*.elmt);;Fitxers XML (*.xml);;Tots els fitxers (*)
+ Elements QElectroTech (*.elmt);;Fitxers XML (*.xml);;Tots els fitxers (*)
-
-
+
+ Élément inexistant.message box title
- No existeix el símbol.
+ No existeix l'element.
-
+ L'élément n'existe pas.message box content
- El símbol no existeix.
+ L'element no existeix.
-
+ Le chemin virtuel choisi ne correspond pas à un élément.message box content
- El camí virtual escollit no correspon a cap símbol.
+ El camí virtual escollit no correspon a cap element.
@@ -7391,7 +7394,7 @@ Les condicions requerides no són vàlides
&Configurer QElectroTech
- &Configurar QElectroTech
+ &Configura QElectroTech
@@ -7413,7 +7416,7 @@ Les condicions requerides no són vàlides
Manuel en ligne
- Instruccions Online
+ Manual en línia
@@ -7424,42 +7427,42 @@ Les condicions requerides no són vàlides
Télécharger une nouvelle version (dev)
- Descarregar una nova versió (dev)
+ Descarrega una nova versió (dev)Lance le navigateur par défaut vers le manuel en ligne de QElectroTechstatus bar tip
- Inicia el manual en línia de QElectroTech
+ Inicia el navegador predeterminat amb el manual en línia de QElectroTechLance le navigateur par défaut vers la chaine Youtube de QElectroTechstatus bar tip
- Inicia per defecte al canal de Youtube de QElectroTech
+ Inicia el navegador predeterminat amb el canal de Youtube de QElectroTechLance le navigateur par défaut vers le dépot Nightly en ligne de QElectroTechstatus bar tip
- Inicia el repositori Nightly de QElectroTech
+ Inicia el navegador predeterminat amb el repositori Nightly en línia de QElectroTechSoutenir le projet par un don
- Donar suport al projecte amb una donació
+ Dona suport al projecte amb una donacióSoutenir le projet QElectroTech par un donstatus bar tip
- Donar suport al projecte QElectroTech amb una donació
+ Dona suport al projecte QElectroTech amb una donacióÀ propos de &Qt
- Sobre &Qt
+ Quant a &Qt
@@ -7482,7 +7485,7 @@ Les condicions requerides no són vàlides
Sortir du &mode plein écran
- Sortir de &pantalla completa
+ Surt de &pantalla completa
@@ -7493,7 +7496,7 @@ Les condicions requerides no són vàlides
Passer en &mode plein écran
- Passar a mode de &finestra completa
+ Mode de &pantalla completa
@@ -7505,7 +7508,7 @@ Les condicions requerides no són vàlides
Affichermenu entry
- Mostrar
+ Mostra
@@ -7514,7 +7517,7 @@ Les condicions requerides no són vàlides
Projet « %1 : %2»displayed title for a ProjectView - %1 is the project title, -%2 is the project path
-
+ Projecte « %1 : %2»
@@ -7557,42 +7560,48 @@ Les condicions requerides no són vàlides
Ce document semble avoir été enregistré avec une version %1
qui est ultérieure à votre version !
Vous utilisez actuellement QElectroTech en version %2
-
+ Sembla que aquest document s'ha desat amb una versió %1
+ que és posterior a la vostra!
+Actualment esteu utilitzant la versió %2 de QElectroTech.
Il est alors possible que l'ouverture de tout ou partie de ce document échoue.
Que désirez vous faire ?
-
+ .
+Aleshores és possible que l'obertura de tot o part d'aquest document falli.
+Què voleu fer?Avertissement message box title
-
+ Avís Le projet que vous tentez d'ouvrir est partiellement compatible avec votre version %1 de QElectroTech.
-
+ El projecte que esteu intentant obrir és parcialment compatible amb la vostra versió %1 de QElectroTech.
+Afin de le rendre totalement compatible veuillez ouvrir ce même projet avec la version 0.8, ou 0.80 de QElectroTech et sauvegarder le projet et l'ouvrir à nouveau avec cette version.
Que désirez vous faire ?
-
+ Perquè sigui totalment compatible, obriu aquest mateix projecte amb la versió 0.8 o 0.80 de QElectroTech, deseu el projecte i torneu-lo a obrir amb aquesta versió.
+Què voleu fer?<p align="center"><b>Ouverture du projet en cours...</b><br/>Création des folios</p>
-
+ <p align="center"><b>Obrint el projecte actual...</b><br/>Creant els folis</p><p align="center"><b>Ouverture du projet en cours...</b><br/>Mise en place des références croisées</p>
-
+ <p align="center"><b>Obrint el projecte actual...</b><br/>Configurant referències creuades</p>
@@ -7607,7 +7616,7 @@ Que désirez vous faire ?
Voulez-vous enregistrer le modèle %1 ?dialog content - %1 is a title block template name
- Vol desar el model %1?
+ Vols desar el model %1?
@@ -7619,13 +7628,13 @@ Que désirez vous faire ?
Dupliquer un modèle de cartoucheinput dialog title
- Duplicar un model de caixetí
+ Duplica un model de caixetíPour dupliquer ce modèle, entrez le nom voulu pour sa copieinput dialog text
- Entri el nom que tindrà la còpia del model
+ Per duplicar aquesta plantilla, introduïu el nom que vulgueu per a la seva còpia
@@ -7637,55 +7646,55 @@ Que désirez vous faire ?
&Ouvrirmenu entry
- &Obrir
+ &ObreOuvrir depuis un fichiermenu entry
- Obrir des d'un fitxer
+ Obre des d'un fitxer&Enregistrermenu entry
- &Desar
+ &DesaEnregistrer sousmenu entry
- Anomenar i desar
+ Desa com aEnregistrer vers un fichiermenu entry
- Desar en un fitxer
+ Desa en un fitxer&Quittermenu entry
- &Sortir
+ &SurtGérer les logosmenu entry
- Gestionar logos
+ Gestiona logosZoom avantmenu entry
- Zoom - apropar
+ Zoom - apropaZoom arrièremenu entry
- Zoom - allunyar
+ Zoom - allunya
@@ -7703,7 +7712,7 @@ Que désirez vous faire ?
Enregistrer sousdialog title
- Anomenar i desar
+ Desa com a
@@ -7715,49 +7724,49 @@ Que désirez vous faire ?
&Fusionner les cellulesmenu entry
- &Fusionar cel·les
+ &Fusiona les cel·lesCo&upermenu entry
- Re&tallar
+ Re&tallaCop&iermenu entry
- Cop&iar
+ Cop&iaC&ollermenu entry
- En&ganxar
+ En&ganxaÉditer les informations complémentairesmenu entry
- Editar la informació complementària
+ Edita la informació complementàriaAjouter une &lignemenu entry
- Afegir una &línia
+ Afegeix una &líniaAjouter une &colonnemenu entry
- Afegir una &columna
+ Afegeix una &columna&Séparer les cellulesmenu entry
- &Separar cel·les
+ &Separa les cel·les
@@ -7769,13 +7778,13 @@ Que désirez vous faire ?
&Éditionmenu title
- &Edició
+ &EditaAfficha&gemenu title
- &Visualització
+ &Visualitza
@@ -7787,13 +7796,13 @@ Que désirez vous faire ?
Éditiontoolbar title
- Edició
+ EditaAffichagetoolbar title
- Visualització
+ Visualitza
@@ -7805,7 +7814,7 @@ Que désirez vous faire ?
Annulationsdock title
- Anulacions
+ Cancel·lacions
@@ -7823,7 +7832,7 @@ Que désirez vous faire ?
[Lecture seule]window title tag
- [Només lectura]
+ [Només lectura]
@@ -7847,13 +7856,13 @@ Que désirez vous faire ?
Ouvrir un modèleFile > open dialog window title
- Obrir un model
+ Obre un modelOuvrir un fichierdialog title
- Obrir un fitxer
+ Obre un fitxer
@@ -7865,13 +7874,13 @@ Que désirez vous faire ?
Enregistrer le modèle sousdialog window title
- Desar el model com a
+ Desa el model com aÉditer les informations complémentaireswindow title
- Editar la informació complementària
+ Edita la informació complementària
@@ -7892,16 +7901,17 @@ Que désirez vous faire ?
Els caràcters autoritzats són:
- números [0-9]
- lletres minúscules [a-z]
- - guió mig [-], guió baix [_] i punt [.]
+ - guió mig [-], guió baix [_] i punt [.]
+
QObject
-
+ Avertissement : l'élément a été enregistré avec une version ultérieure de QElectroTech.
- Avís: el símbol ha estat desat amb una versió posterior del QElectroTech.
+ Avís: l'element ha estat desat amb una versió posterior del QElectroTech.
@@ -7916,74 +7926,74 @@ Que désirez vous faire ?
un element graphique
-
+ un element gràficsupprimer %1undo caption - %1 is a sentence listing the removed content
- suprimir %1
+ suprimeix %1coller %1undo caption - %1 is a sentence listing the content to paste
- enganxar %1
+ enganxa %1couper %1undo caption - %1 is a sentence listing the content to cut
- retallar %1
+ retalla %1déplacer %1undo caption - %1 is a sentence listing the moved content
- moure %1
+ mou %1modifier le texteundo caption
- modifcar el text
+ modifica el textmodifier un conducteurundo caption
- modificar un conductor
+ modifica un conductorRéinitialiser %1undo caption - %1 is a sentence listing the reset content
- Reiniciar %1
+ Reinicia %1modifier le cartoucheundo caption
- modificar el caixetí
+ modifica el caixetímodifier les dimensions du folioundo caption
- modificar la mida del full
+ modifica la mida del fullsuppressionundo caption
- eliminació
+ eliminacouper des partiesundo caption
- tallar parts
+ talla les parts
@@ -7995,37 +8005,37 @@ Que désirez vous faire ?
modification nomsundo caption
- modificació noms
+ modifica nomsamener au premier planundo caption
- dur al davant
+ porta al davantrapprocherundo caption
- apropar
+ apropaéloignerundo caption
- allunyar
+ allunyaenvoyer au fondundo caption
- enviar al fons
+ envia al fonsmodification informations complementairesundo caption
- modificació informació complementària
+ modifica informació complementària
@@ -8037,31 +8047,30 @@ Que désirez vous faire ?
redimensionnement de %1 primitivesundo caption -- %1 always > 1
- Canviar la mida de les primitives %1
+ Canvia la mida de les primitives %1Modifier les propriétées de l'élément
-
+ Edita les propietats de l'element
- Pivoter la selectionundo caption
-
+ Gira la selecció
-
+ Miroir de sélectionundo caption
-
+ Mirall de selecció
-
+ Retourner la sélectionundo caption
-
+ Torna la selecció
@@ -8118,12 +8127,12 @@ Que désirez vous faire ?
Conserver les proportions
- Mantenir les proporcions
+ Manté les proporcionsRéinitialiser les dimensions
- Tornar a mides anteriors
+ Torna a mides anteriors
@@ -8133,37 +8142,37 @@ Que désirez vous faire ?
Exporter vers le presse-papier
- Exportar al portapapers
+ Exporta al portapapers
-
+ %n élément(s)part of a sentence listing the content of a diagram
- %n símbol
- %n símbol(s)
+ %n element
+ %n elements
-
+ %n conducteur(s)part of a sentence listing the content of a diagram%n conductor
- %n conductor(s)
+ %n conductors
-
+ %n champ(s) de textepart of a sentence listing the content of a diagram%n camp de text
- %n camp(s) de text
+ %n camps de text
-
+ %n image(s)part of a sentence listing the content of a diagram
@@ -8172,7 +8181,7 @@ Que désirez vous faire ?
-
+ %n forme(s)part of a sentence listing the content of a diagram
@@ -8181,98 +8190,98 @@ Que désirez vous faire ?
-
+ %n texte(s) d'élémentpart of a sentence listing the content of a diagram
-
-
-
+
+ %n text d'element
+ %n texts d'elements
-
+ %n tableau(s)part of a sentence listing the content of diagram
-
-
-
+
+ %n tauler
+ %n taulers
-
+ %n plan de bornespart of a sentence listing the content of a diagram
-
-
-
+
+ %n pla de borns
+ %n plans de borns
-
+ Le fichier texte contenant la licence GNU/GPL est introuvable - bon bah de toute façon, vous la connaissez par coeur non ?No es troba el fitxer de text que conté la llicència GNU/GPL. Total... la coneixeu de memòria, oi?
-
+ Le fichier texte contenant la licence GNU/GPL existe mais n'a pas pu être ouvert - bon bah de toute façon, vous la connaissez par coeur non ?El fitxer de text que conté la llicència GNU/GPL ha estat trobat però no ha estat possible obrir-lo. Total... la coneixeu de memòria, oi?
-
-
+
+ Impossible d'ouvrir le fichier %1 en écriture, erreur %2 rencontrée.error message when attempting to write an XML fileImpossible obrir el fitxer %1 en mode d'escriptura, error %2.
-
+ Une erreur est survenue lors de l'écriture du fichier %1, erreur %2 rencontrée.error message when attempting to write an XML file
-
+ S'ha produït un error en escriure el fitxer %1 i s'ha trobat l'error %2.
-
+ Amener au premier plan
- Dur al davant
+ Porta al primer pla
-
+ Rapprocher
- Apropar
+ Apropa
-
+ Éloigner
- Allunyar
+ Allunya
-
+ Envoyer au fond
- Enviar al fons
+ Envia al fons
-
+ Ramène la ou les sélections au premier plan
-
+ Torna a posar les seleccions al primer pla
-
+ Rapproche la ou les sélections
-
+ Apropa les seleccions
-
+ Éloigne la ou les sélections
-
+ Elimina les seleccions
-
+ Envoie en arrière plan la ou les sélections
-
+ Envia les seleccions al fons
-
+ BornetooltipBorn
@@ -8354,8 +8363,8 @@ Que désirez vous faire ?
Couper %n cellule(s)undo caption
- Tallar %n cel·la
- Tallar %n cel·la(es)
+ Talla %n cel·la
+ Talla %n cel·les
@@ -8363,8 +8372,8 @@ Que désirez vous faire ?
Coller %n cellule(s)undo caption
- Enganxar %n cel·la
- Enganxar %n cel·la(es)
+ Enganxa %n cel·la
+ Enganxa %n cel·les
@@ -8445,12 +8454,12 @@ Que désirez vous faire ?
Selectionner une image...
- Seleccionar una imatge ...
+ Selecciona una imatge ...Image Files (*.png *.jpg *.jpeg *.bmp *.svg)
- Els arxius d'imatge (*.png *.jpg *.jpeg *.bmp *.svg)
+ Els fitxers d'imatge (*.png *.jpg *.jpeg *.bmp *.svg)
@@ -8466,7 +8475,7 @@ Que désirez vous faire ?
Ajouter
- Afegir
+ Afegeix
@@ -8508,12 +8517,12 @@ Que désirez vous faire ?
Modifier les informations de l'élément : %1
- Modificar les propietats del símbol: %1
+ Modifica les propietats de l'element: %1Modifier les informations de plusieurs éléments
-
+ Modifica les propietats de diversos elements
@@ -8525,13 +8534,13 @@ Que désirez vous faire ?
Modifier les propriétés d'un conducteurundo caption
- Modificar les propietats d'un conductor
+ Modifica les propietats d'un conductorModifier les propriétés de plusieurs conducteursundo caption
- Modificar les propietats de diversos conductors
+ Modifica les propietats de diversos conductors
@@ -8546,40 +8555,42 @@ Que désirez vous faire ?
Déplacer
-
+ Moure et
- i
+ i un groupe de texte
-
+ un grup de textnumero_de_fileries_
-
+ número_de_files_Enregister sous...
- Anomenar i Desar...
+ Desa com a... Fichiers csv (*.csv)
- Arxius csv (*.csv)
+ Fitxers csv (*.csv)Impossible de remplacer le fichier!
- Impossible reemplaçar el fitxer!
+ Impossible reemplaçar el fitxer!
+
+
@@ -8589,7 +8600,7 @@ Que désirez vous faire ?
Collection Company
-
+ Col·lecció d'empresa
@@ -8616,562 +8627,562 @@ Que désirez vous faire ?
Ajouter %n conducteur(s)add a numbers of conductor one or more
- Afegir %n conductor
- Afegir %n conductors
+ Afegeix %n conductor
+ Afegeix %n conductorsPivoter %1 textes
-
+ Gira %1 textosPivoter
- Girar
+ Gira %1 groupes de textes
-
+ %1 grups de textOrienter les textes sélectionnéswindow title
- Orientar els textos seleccionats
+ Orienta els textos seleccionatsFichier
-
+ FitxerInstallation (=)
-
+ Instal·lació (=)Localisation (+)
-
+ Localització (+)Indice de révision
-
+ Índex de revisióPosition
- Posició
+ PosicióVersion de QElectroTech
-
+ Versió de QElectroTechNuméro de folio
-
+ Número de fullPosition du folio
-
+ Posició du fullNombre de folio
-
+ Nombre de fullNuméro du folio précédent
-
+ Número de full anteriorNuméro du folio suivant
-
+ Número de full següentTitre du projet
-
+ Títol del projecteChemin du fichier du projet
-
+ Ruta del fitxer del projecteNom du fichier
-
+ Nom del fitxerDate d'enregistrement du fichier format local
-
+ Data de desament del fitxer en format localDate d'enregistrement du fichier format dd-MM-yyyy
-
+ Data d'enregistrament del fitxer en format dd-MM-aaaaDate d'enregistrement du fichier format yyyy-MM-dd
-
+ Data d'enregistrament del fitxer en format aaaa-MM-ddHeure d'enregistrement du fichier
-
+ Temps de gravació del fitxerNom du fichier enregistré
-
+ Nom del fitxer desatChemin du fichier enregistré
-
+ Ruta del fitxer desatFormule du label
-
+ Fórmula de l'etiquetaLabel
- Etiqueta
+ EtiquetaCommentaire
- Comentari
+ ComentariFonction
- Funció
+ FuncióBloc auxiliaire 1
- Bloc auxiliar 1
+ Bloc auxiliar 1Description textuelle auxiliaire 1
-
+ Descripció textual auxiliar 1Numéro d'article auxiliaire 1
-
+ Número d'article auxiliar 1Fabricant auxiliaire 1
-
+ Fabricant auxiliar 1Numéro de commande auxiliaire 1
-
+ Número de comanda auxiliar 1Numéro interne auxiliaire 1
-
+ Número intern auxiliar 1Fournisseur auxiliaire 1
-
+ Proveïdor auxiliar 1Quantité auxiliaire 1
-
+ Quantitat auxiliar 1Unité auxiliaire 1
-
+ Unitat auxiliar 1Bloc auxiliaire 2
- Bloc auxiliar 2
+ Bloc auxiliar 2Description textuelle auxiliaire 2
-
+ Descripció textual auxiliar 2Numéro d'article auxiliaire 2
-
+ Número d'article auxiliar 2Fabricant auxiliaire 2
-
+ Fabricant auxiliar 2Numéro de commande auxiliaire 2
-
+ Número de comanda auxiliar 2Numéro interne auxiliaire 2
-
+ Número intern auxiliar 2Fournisseur auxiliaire 2
-
+ Proveïdor auxiliar 2Quantité auxiliaire 2
-
+ Quantitat auxiliar 2Unité auxiliaire 2
-
+ Unitat auxiliar 2Bloc auxiliaire 3
-
+ Bloc auxiliar 3Description textuelle auxiliaire 3
-
+ Descripció textual auxiliar 3Numéro d'article auxiliaire 3
-
+ Número d'article auxiliar 3Fabricant auxiliaire 3
-
+ Fabricant auxiliar 3Numéro de commande auxiliaire 3
-
+ Número de comanda auxiliar 3Numéro interne auxiliaire 3
-
+ Número intern auxiliar 3Fournisseur auxiliaire 3
-
+ Proveïdor auxiliar 3Quantité auxiliaire 3
-
+ Quantitat auxiliar 3Unité auxiliaire 3
-
+ Unitat auxiliar 3Bloc auxiliaire 4
-
+ Bloc auxiliar 4Description textuelle auxiliaire 4
-
+ Descripció textual auxiliar 4Numéro d'article auxiliaire 4
-
+ Número d'article auxiliar 4Fabricant auxiliaire 4
-
+ Fabricant auxiliar 4Numéro de commande auxiliaire 4
-
+ Número de comande auxiliar 4Numéro interne auxiliaire 4
-
+ Número intern auxiliar 4Fournisseur auxiliaire 4
-
+ Proveïdor auxiliar 4Quantité auxiliaire 4
-
+ Quantitat auxiliar 4Unité auxiliaire 4
-
+ Unitat auxiliar 4Description textuelle
-
+ Descripció textualNuméro d'article
-
+ Número d'articleFabricant
- Fabricant
+ FabricantNuméro de commande
-
+ Número de comandaNuméro interne
-
+ Número internFournisseur
-
+ ProveïdorQuantité
-
+ QuantitatUnité
-
+ UnitatTension / Protocole
-
+ Tensió / ProtocolCouleur du fil
-
+ Color del filSection du fil
-
+ Secció de filFormule du texte
-
+ Fórmula de textAjouter une nomenclature
-
+ Afegeix una nomenclaturaAjouter un sommaire
- Afegir un resum
+ Afegeix un resumCompilation :
- Compilació:
+ Compilació : Compilation :
-
+ Compilació: Ajouter une borne
- Afegir un born
+ Afegeix un bornAjouter la borne %1
-
+ Afegeix el born %1à un groupe de bornes
-
+ a un grup de bornsau groupe de bornes %1
-
+ al grup de borns %1Ajouter %1 bornes
-
+ Afegeix %1 bornsEnlever %1 bornes
-
+ Elimina %1 bornsEnlever une borne
-
+ Elimina un bornd'un groupe de bornes
-
+ d'un grup de bornsdu groupe de bornes %1
-
+ del grup de borns %1Déplacer une borne
- Moure un born
+ Moure un bornDéplacer la borne %1
-
+ Mou el born %1 d'un groupe de bornes
-
+ d'un grup de borns du groupe de bornes %1
-
+ del grup de borns %1vers un groupe de bornes
-
+ a un grup de bornsvers le groupe de bornes %1
-
+ al grup de borns %1Déplacer des bornes
-
+ Moure els bornsGénériquegeneric terminal element type
-
+ GenèricFusiblefuse terminal element type
-
+ FusibleSectionablesectional terminal element type
-
+ SeccionableDiodediode terminal element type
-
+ DíodeTerreground terminal element type
- Terra
+ TerraGénériquegeneric terminal element function
-
+ GenèricPhasephase terminal element function
- Fase
+ FaseNeutreneutral terminal element function
- Neutre
+ Neutre%p% effectué (%v sur %m)
-
+ %p% fet (%v de %m)
-
-
+
+
@@ -9179,287 +9190,292 @@ Que désirez vous faire ?
this is an error in the code
-
+ Això és un error al codiChamp texte dynamique
-
+ Camp de text dinàmic
-
+ Importer un fichier dxf
-
+ Importa un fitxer dxfOuvrir un element
-
+ Obre un elementColler
-
+ Enganxachargement %p% (%v sur %m)
-
+ carregant %p% (%v de %m)Configuration de textes
-
+ Configuració de textosUne configuration de textes nommée << %1 >> existe déjà.
Voulez-vous la remplacer ?
-
+ Ja existeix una configuració de text anomenada <<%1>>.
+Voleu substituir-la?Nom de la configuration
-
+ Nom de la configuracióEntrer le nom de la configuration à créer
-
+ Introduïu el nom de la configuració que voleu crearAucune configuration de textes existante.
-
+ No hi ha cap configuració de text existent.Sélectionner une configuration de textes
-
+ Seleccioneu una configuració de textSélectionner la configuration de textes à ajouter à l'élément
-
+ Seleccioneu la configuració de text que voleu afegir a l'elementImporter la configuration de texte : %1
-
+ Importa la configuració de text : %1To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br>
-
+ Per instal·lar el connector qet_tb_generator<br>Visiteu:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requereix python 3.5 o superior.<br><B><U> Primera instal·lació a Windows</B></U><br>1. Instal·leu, si cal, python 3.5 o superior<br> Visiteu:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Actualització a Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>L'usuari podria iniciar aquest script en un terminal en aquest directori<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br>To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br>
-
+ Per instal·lar el connector qet_tb_generator<br>Visiteu:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Primera instal·lació a macOSX</B></U><br>1. Instal·leu, si cal, només el paquet python 3.11, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Executeu l'script Profile.command<br>perquè el programa utilitza el PATH codificat per localitzar el connector qet-tb-generator <br> Visiteu:<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>com fer-ho</a><br>2. instal·lació de qet_tb_generator amb pip3<br><B><U> Actualització a macOSX</B></U><br> instal·lació de pip3 --upgrade qet_tb_generator<br>To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br>
-
+ Per instal·lar el connector qet_tb_generator<br>Visiteu:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requereix python 3.5 o superior.<br><br><B><U> Primera instal·lació a Linux</B></U><br>1. comproveu que teniu pip3 instal·lat: pip3 --version<br>Si no, instal·leu-lo amb: sudo apt-get install python3-pip<br>2. Instal·leu el programa: sudo pip3 install qet_tb_generator<br>3. Executeu el programa: qet_tb_generator<br><br><B><U> Actualització a Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br>Error launching qet_tb_generator plugin
-
+ Error en iniciar el connector qet_tb_generatorChercher/remplacer les propriétés de folio
-
+ Cerca i reemplaça les propietats del fullChercher/remplacer les propriétés d'éléments.
-
+ Cerca i reemplaça les propietats dels elements.Chercher/remplacer des textes independants
-
+ Cerca i reemplaça textos independentsChercher/remplacer les propriétés de conducteurs.
-
+ Cerca i reemplaça les propietats dels conductors.Rechercher / remplacer avancé
-
+ Cerca i reemplaça avançatDisposition par défaut
-
+ Disseny per defecteAjouter un groupe de bornes
-
+ Afegeix un grup de bornsSupprimer un groupe de bornes
-
+ Suprimeix un grup de bornsPonter des bornes entre-elles
-
+ Connectant borns juntsSupprimer des ponts de bornes
-
+ Elimina els ponts de bornsModifier la couleur d'un pont de bornes
-
+ Canvia el color d'un pont de bornsModifier les proriétés d'un groupe de bornes
-
+ Modifica les propietats d'un grup de bornsTrier le bornier %1
-
+ Ordena el bloc de borns %1Ajouter un texte d'élément
-
+ Afegeix text de l'elementAjouter un groupe de textes d'élément
-
+ Afegeix un grup de texts d'elementsGrouper des textes d'élément
-
+ Agrupa els texts d'elementsSupprimer un groupe de textes d'élément
-
+ Suprimeix un grup de textos d'elementsInsérer un texte d'élément dans un groupe de textes
-
+ Insereix text d'element en un grup de textEnlever un texte d'élément d'un groupe de textes
-
+ Elimina el text d'un element d'un grup de textModifier l'alignement d'un groupe de textes
-
+ Canvia l'alineació d'un grup de textosModifier les propriétés d'un élement
-
+ Modifica les propietats d'un elementPivoter la selection
-
+ Gira la seleccióCréation de conducteurs
-
+ Creació de conductorsEntrer le facteur d'échelle
-
+ Introduïu el factor d'escalaFacteur X:
-
+ Factor X:Facteur Y:
-
+ Factor Y:sans
-
+ sensehorizontal
-
+ horitzontalvertical
-
+ verticalhorizontal + vertical
-
+ horitzontal + verticalRetourner l'élément :
-
+ Retorna l'element:direction
-
+ direccióQET_ElementScaler:
additional information about %1 import / scaling
-
+ QET_ElementScaler:
+ informació addicional sobre la importació / escalat de %1Le logiciel QET_ElementScaler est nécessaire pour mettre les éléments à l'échelle.
Veuillez télécharger celui-ci en suivant le lien ci dessous et le dézipper dans le dossier d'installation
-
+ Cal el programari QET_ElementScaler per escalar elements.
+Si us plau, descarregueu-lo des de l'enllaç següent i descomprimiu-lo a la carpeta d'instal·lacióDxf2elmt:
Error: Make sure the file %1 is a valid .dxf file
-
+ Dxf2elmt:
+Error: Assegureu-vos que el fitxer %1 sigui un fitxer .dxf vàlidSee details here:
-
+ Vegeu els detalls aquí:L'import dxf nécessite le logiciel dxf2elmt.
Veuillez télécharger celui-ci en suivant le lien ci dessous et le dézipper dans le dossier d'installation
-
+ La importació de DXF requereix el programari dxf2elmt.
+Si us plau, descarregueu-lo des de l'enllaç següent i descomprimiu-lo a la carpeta d'instal·lació
@@ -9474,7 +9490,7 @@ Veuillez télécharger celui-ci en suivant le lien ci dessous et le dézipper da
ExampleLonger example string
-
+ Exemple
@@ -9483,23 +9499,25 @@ Veuillez télécharger celui-ci en suivant le lien ci dessous et le dézipper da
Les information à afficher sont supérieurs à la quantité maximal pouvant être affiché par les tableaux.
Veuillez ajouter un nouveau tableau ou regler les tableaux existant afin d'afficher l'integralité des informations.
-
+ La informació que es mostrarà supera la quantitat màxima que poden mostrar les taules.
+Afegiu una taula nova o ajusteu les taules existents per mostrar la quantitat completa d'informació.Les information à afficher sont supérieurs à la quantité maximal pouvant être affiché par le tableau.
Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'afficher l'integralité des informations.
-
+ La informació que es mostrarà supera la quantitat màxima que es pot mostrar a la taula.
+Afegiu una taula nova o ajusteu la taula existent per mostrar la quantitat completa d'informació.Limitation de tableau
-
+ Limitació de la taulaModifier la géometrie d'un tableau
-
+ Modifica la geometria d'una taula
@@ -9517,27 +9535,27 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Ajouter un point
-
+ Afegeix un puntSupprimer ce point
-
+ Elimina aquest puntAjouter un point à un polygone
-
+ Afegeix un punt a un polígonSupprimer un point d'un polygone
-
+ Elimina un punt d'un polígonModifier %1
- Modificar %1
+ Modifica %1
@@ -9560,43 +9578,43 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Dimensions :
-
+ Dimensions :y
- y
+ yCoin supérieur gauche :
-
+ Cantó superior esquerre :Largeur :
- Amplada:
+ Amplada :Arrondi :
-
+ Arrodonit :x
- x
+ xHauteur :
- Alçada:
+ Alçada :Modifier un rectangle
- Modificar un rectangle
+ Modifica un rectangle
@@ -9609,7 +9627,7 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Nouveau nom :
- Nou nom:
+ Nom nou :
@@ -9619,12 +9637,12 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Renommer
- Canviar el nom
+ Canvia el nomAnnuler
- Anular
+ Cancel·la
@@ -9634,7 +9652,7 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
L'élément « %1 » existe déjà. Que souhaitez-vous faire ?
- El símbol « %1 » ja existeix, que vol fer?
+ L'element « %1 » ja existeix, què vols fer?
@@ -9642,43 +9660,43 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Type
- Tipus
+ TipusFonction :
- Funció:
+ Funció :Texte visible
- Text visible
+ Text visibleAngle :
- Angle:
+ Angle :Taille du texte :
- Mida del text:
+ Mida del text :Texte :
- Text:
+ Text :Couleur du conducteur
- Color del conductor
+ Color del conductor&Multifilaire
-
+ &Multifilar
@@ -9695,17 +9713,17 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Ne pas modifier
-
+ No modificarÀ gauche
-
+ EsquerraÀ droite
-
+ Dreta
@@ -9713,169 +9731,169 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Supprimer ce texte
-
+ Suprimeix aquest text°
-
+ °En haut
-
+ SuperiorEn bas
-
+ InferiorFormule du texte :
-
+ Fórmula de text :Texte sur conducteur vertical :
-
+ Text en conductor vertical:Texte sur conducteur horizontal :
-
+ Text en conductor horitzontal:Tension / protocol :
-
+ Tensió / protocol :Section du conducteur
-
+ Secció de ConductorUnifilaire
- Unifilar
+ UnifilarProtective Earth Neutral
- Terra per protecció personal
+ Terra per protecció neutrePEN
- PEN
+ PENPhase
- Fase
+ Fasephase
- fase
+ faseNombre de phase
- Nombre de fases
+ Nombre de fasesNeutre
- Neutre
+ Neutreneutre
- neutre
+ neutreTerre
- Terra
+ Terraterre
- terra
+ terraTextLabel
- Etiqueta de text
+ Etiqueta de textPushButton
-
+ PolsadorApparence
- Aparença
+ AparençaTaille :
-
+ Mida :Couleur :
- Color:
+ Color :Style :
- Estil:
+ Estil :Modifier
-
+ ModificaCouleur secondaire :
-
+ Color secundari :Taille de trait :
-
+ Mida de la línia:px
- px
+ pxTrait pleinconductor style: solid line
- Línia contínua
+ Línia contínuaTrait en pointillésconductor style: dashed line
- Línia de puntets
+ Línia de puntetsTraits et pointsconductor style: dashed and dotted line
- Línies i punts
+ Línies i punts
@@ -9883,7 +9901,7 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Ne pas modifier
-
+ No modificar
@@ -9891,32 +9909,32 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Form
- Formulari
+ FormulariPrincipales
- Principals
+ PrincipalsIndice Rev
- Index Rev
+ Índex RevLocalisation
- Localització
+ LocalitzacióFichier :
- Arxiu:
+ Fitxer :Disponible en tant que %title pour les modèles de cartouches
- Disponible com a %title per als caixetins
+ Disponible com a %title pels models de caixetins
@@ -9928,62 +9946,62 @@ Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'af
Ne pas modifier
-
+ No modificarDisponible en tant que %author pour les modèles de cartouches
- Disponible com a %author per als caixetins
+ Disponible com a %author per a models de caixetinsAuteur :
- Autor:
+ Autor :Date :
- Data:
+ Data :Installation :
- Instal·lació:
+ Instal·lació :Disponible en tant que %indexrev pour les modèles de cartouches
- Disponible com a %indexrev per als caixetins
+ Disponible com a %indexrev per a models de caixetinsDisponible en tant que %filename pour les modèles de cartouches
- Disponible com a %filename per als caixetins del projecte
+ Disponible com a %filename per a models de caixetinsFolio :
- Full:
+ Full :Pas de date
- No hi cap data
+ Sense dataDisponible en tant que %date pour les modèles de cartouches
- Disponible com %date per als models de caixetí
+ Disponible com a %date per a models de caixetíDate fixe :
- Data fixa:
+ Data fixada :Appliquer la date actuelle
- Aplicar la data actual
+ Aplica la data actual
@@ -9992,22 +10010,26 @@ Les variables suivantes sont utilisables :
- %id : numéro du folio courant dans le projet
- %total : nombre total de folios dans le projet
- %autonum : Folio Auto Numeration
-
+ Disponible com a %full per a models de caixetí
+Es poden utilitzar les variables següents:
+- %id: Número de full actual al projecte
+- %total: Nombre total de fulls al projecte
+- %autonum: Numeració automàtica del fullDisponible en tant que %locmach pour les modèles de cartouches
- Disponible com %locmach per als models de caixetí
+ Disponible com %locmach per a models de caixetí<html><head/><body><p>Disponible en tant que %plant pour les modèles de cartouches</p></body></html>
-
+ <html><head/><body><p>Disponible com a %plant per a models de caixetí</p></body></html>Titre :
- Títol:
+ Títol :
@@ -10018,19 +10040,19 @@ Les variables suivantes sont utilisables :
Supprimer ce texte
-
+ Suprimeix aquest textPersonnalisées
- Personalitzades
+ PersonalitzadesVous pouvez définir ici vos propres associations noms/valeurs pour que le cartouche en tienne compte. Exemple :
associer le nom "volta" et la valeur "1745" remplacera %{volta} par 1745 dans le cartouche.
- Aquí podeu definir les seves pròpies associacions de nom / valor perquè sigui pres en compte en el caixetí. Exemple:
-associar el nom de "volta" i el valor "1745" reemplaçarà %{volta} per 1745 dins del caixetí.
+ Aquí podeu definir les vostres pròpies associacions de nom/valor perquè el caixetí les pugui tenir en compte. Per exemple:
+associar el nom "volta" amb el valor "1745" substituirà %{volta} per 1745 al caixetí.
@@ -10055,7 +10077,14 @@ Créer votre propre texte en vous aidant des variables suivantes :
%LM : la localisation
%l : le numéro de ligne
%c : le numéro de colonne
-
+ Podeu definir una etiqueta personalitzada per als informes de full.
+Creeu el vostre propi text utilitzant les variables següents:
+%f: la posició del full al projecte
+%F: el número de full
+%M: la instal·lació
+%LM: la ubicació
+%l: el número de línia
+%c: el número de columna
@@ -10063,192 +10092,192 @@ Créer votre propre texte en vous aidant des variables suivantes :
Form
- Formulari
+ FormulariFolio
- Full
+ FullÉlément
- Símbol
+ ElementChercher :
-
+ Cerca :Mode
-
+ ModeTexte brut
-
+ Text plaMots entiers
-
+ Paraules senceresSensible à la casse
-
+ Sensible a majúscules i minúsculesAller à la correspondance suivante
-
+ Ves a la correspondència següentAller à la correspondance précédente
-
+ Ves a la correspondència anteriorActualiser
-
+ Actualitza<html><head/><body><p>Afficher les options avancées</p></body></html>
-
+ <html><head/><body><p>Mostra les opcions avançades</p></body></html><html><head/><body><p>Définir les propriétés à remplacer dans les éléments</p></body></html>
-
+ <html><head/><body><p>Defineix les propietats per reemplaçar en els elements</p></body></html><html><head/><body><p>Définir les propriétés à remplacer dans les conducteurs</p></body></html>
-
+ <html><head/><body><p>Defineix les propietats que es vol substituir en els conductors</p></body></html>Conducteur
- Conductor
+ Conductor<html><head/><body><p>Remplacer les correspondances cochées</p></body></html>
-
+ <html><head/><body><p>Substitueix les coincidències marcades</p></body></html>Tout remplacer
-
+ Substituïu-ho totavancé
-
+ AvançaRemplacer :
-
+ Substitueix :<html><head/><body><p>Définir les propriétés à remplacer dans les folios</p></body></html>
-
+ <html><head/><body><p>Defineix les propietats que es substituiran als fulls</p></body></html>Champ texte de folio
-
+ Camp de text de full<html><head/><body><p>Remplacer la correspondance sélectionnée</p></body></html>
-
+ <html><head/><body><p>Substitueix la coincidència seleccionada</p></body></html>Remplacer
- Substituïr
+ SubstitueixQuitter
-
+ SurtCorrespondance :
-
+ Correspondència :Folios
-
+ FullsChamps texte
-
+ Camps de textEléments
-
+ ElementsEléments simple
-
+ Elements simpleEléments maître
-
+ Elements mestreEléments esclave
-
+ Elements esclauEléments report de folio
-
+ Elements d'informe de fullEléments bornier
-
+ Elements de bornsConducteurs
-
+ ConductorsInconnue
-
+ DesconegutSélectionner les éléments de ce folio
-
+ Selecciona els elements d'aquest fullSélectionner les conducteurs de ce folio
-
+ Selecciona els conductors d'aquest fullSélectionner les textes de ce folio
-
+ Selecciona els textos d'aquest full
@@ -10276,7 +10305,7 @@ Créer votre propre texte en vous aidant des variables suivantes :
[édité]
-
+ [editat]
@@ -10289,12 +10318,12 @@ Créer votre propre texte en vous aidant des variables suivantes :
<html><head/><body><p>Supprimer une variable de numérotation</p></body></html>
- <html><head/><body><p>Eliminar una variable numèrica</p></body></html>
+ <html><head/><body><p>Suprimeix una variable de numeració</p></body></html><html><head/><body><p>Ajouter une variable de numérotation</p></body></html>
- <html><head/><body><p>Afegir una variable numèrica</p></body></html>
+ <html><head/><body><p>Afegeix una variable de numeració</p></body></html>
@@ -10304,17 +10333,17 @@ Créer votre propre texte en vous aidant des variables suivantes :
Numérotations disponibles :
- Numeració disponible:
+ Numeracions disponibles :Nom de la nouvelle numérotation
- Nom de la nova numeració
+ Nom de la nova numeracióSupprimer la numérotation
- Esborrar la numeració
+ Suprimeix la numeració
@@ -10345,7 +10374,7 @@ Créer votre propre texte en vous aidant des variables suivantes :
Folio Autonumérotationtitle window
- Numeració de Full automàtica
+ Numeració automàtica del full
@@ -10362,13 +10391,27 @@ Si le chiffre défini dans le champ Valeur possède moins de digits que le type
Le champ "Incrémentation" n'est pas utilisé.
help dialog about the folio autonumerotation
-
+ Aquí és on podeu definir com es numeraran els fulls nous.
+
+- Un sistema de numeració consta d'almenys una variable.
+
+- Podeu afegir o suprimir una variable de numeració mitjançant els botons - i +.
+
+- Una variable de numeració inclou: un tipus, un valor i un increment.
+
+- Els tipus "Dígit 1", "Dígit 01" i "Dígit 001" representen un tipus numèric definit al camp "Valor", que s'incrementa amb cada nou full pel valor del camp "Increment".
+
+- "Dígit 01" i "Dígit 001" es representen al diagrama amb almenys dos i tres dígits, respectivament.
+Si el número definit al camp Valor té menys dígits que el tipus escollit, anirà precedit d'un o dos 0 per coincidir amb el seu tipus.
+
+- El tipus "Text" representa text fix. El camp "Increment" no s'utilitza.
+Conducteur Autonumérotationtitle window
-
+ Numeració automàtica del conductor
@@ -10390,13 +10433,29 @@ Les autres champs ne sont pas utilisés.
-Le type "Folio" représente le nom du folio en cours.
Les autres champs ne sont pas utilisés.
help dialog about the conductor autonumerotation
-
+ Aquí és ou definir com es numeraran els nous conductors.
+
+- Un sistema de numeració consta d'almenys una variable.
+
+- Podeu afegir o suprimir una variable de numeració mitjançant els botons - i +.
+
+- Una variable de numeració inclou: un tipus, un valor i un increment.
+
+- Els tipus "Dígit 1", "Dígit 01" i "Dígit 001" representen un tipus numèric definit al camp "Valor", que s'incrementa amb cada nou conductor pel valor del camp "Increment".
+
+- "Dígit 01" i "Dígit 001" es representen al diagrama amb almenys dos i tres dígits, respectivament. Si el número definit al camp Valor té menys dígits que el tipus escollit, anirà precedit d'un o dos 0 per respectar el seu tipus.
+
+- El tipus "Text" representa text fix. El camp "Increment" no s'utilitza.
+
+- El tipus "Número de full" representa el número de full actual. Els altres camps no s'utilitzen.
+
+-El tipus "Full" representa el nom del full actual. Els altres camps no s'utilitzen.Element Autonumérotationtitle window
-
+ Numeració automàtica de l'element
@@ -10418,7 +10477,23 @@ Les autres champs ne sont pas utilisés.
-Le type "Folio" représente le nom du folio en cours.
Les autres champs ne sont pas utilisés.
help dialog about the element autonumerotation
-
+ Aquí és on podeu definir com es numeraran els nous elements.
+
+- Un sistema de numeració consta d'almenys una variable.
+
+- Podeu afegir o suprimir una variable de numeració mitjançant els botons - i +.
+
+- Una variable de numeració inclou: un tipus, un valor i un increment.
+
+- Els tipus "Dígit 1", "Dígit 01" i "Dígit 001" representen un tipus numèric definit al camp "Valor", que s'incrementa amb cada nou conductor pel valor del camp "Increment".
+
+- "Dígit 01" i "Dígit 001" es representen al diagrama amb almenys dos i tres dígits, respectivament. Si el número definit al camp Valor té menys dígits que el tipus escollit, anirà precedit d'un o dos 0 per respectar el seu tipus.
+
+- El tipus "Text" representa text fix. El camp "Increment" no s'utilitza.
+
+- El tipus "Número de full" representa el número de full actual. Els altres camps no s'utilitzen.
+
+-El tipus "Full" representa el nom del full actual. Els altres camps no s'utilitzen.
@@ -10492,7 +10567,7 @@ Les autres champs ne sont pas utilisés.
Tiret custom
-
+ Guió personalitzat
@@ -10552,12 +10627,12 @@ Les autres champs ne sont pas utilisés.
Diagonal arrière
- Diagonal invertida
+ Diagonal endarreraDiagonal avant
- Diagonal
+ Diagonal endavant
@@ -10567,7 +10642,7 @@ Les autres champs ne sont pas utilisés.
Verrouiller la position
- Bloquejar la posició
+ Bloqueja la posició
@@ -10577,33 +10652,33 @@ Les autres champs ne sont pas utilisés.
Éditer les propriétés d'une primitive
- Editar les propietats d'un element
+ Edita les propietats d'una primitiva Modifier le trait d'une forme
- Modificar el traç d'una forma
+ Modifica el traç d'una formaModifier le remplissage d'une forme
- Modificar el emplenament d'una forma
+ Modifica l'emplenament d'una formaFermer le polygone
- Tancar el polígon
+ Tanca el polígonModifier une forme simple
-
+ Editeu una forma senzillaModifier les propriétés d'une forme simple
-
+ Edita les propietats d'una forma simple
@@ -10690,841 +10765,841 @@ Les autres champs ne sont pas utilisés.
Pink : Pinkelement part color
-
+ Rosa : RosaPink : LightPinkelement part color
-
+ Rosa : RosaClarPink : HotPinkelement part color
-
+ Rosa : RosaCalentPink : DeepPinkelement part color
-
+ Rosa : RosaProfundPink : PaleVioletRedelement part color
-
+ Rosa : RosaVioletaPàlidPink : MediumVioletRedelement part color
-
+ Rosa : RosaVioletaMitjàRed : LightSalmonelement part color
-
+ Vermell : SalmóClarRed : Salmonelement part color
-
+ Vermell : SalmóRed : DarkSalmonelement part color
-
+ Vermell : SalmóFoscRed : LightCoralelement part color
-
+ Vermell : CoralClarRed : IndianRedelement part color
-
+ Vermell : VermellIndiRed : Crimsonelement part color
-
+ Vermell : CarmesíRed : Firebrickelement part color
-
+ Vermell : MaóRefractariRed : DarkRedelement part color
-
+ Vermell : VermellFoscRed : Redelement part color
-
+ Vermell : VermellOrange : OrangeRedelement part color
-
+ Taronja : TaronjaVermellOrange : Tomatoelement part color
-
+ Taronja : TomàquetOrange : Coralelement part color
-
+ Taronja : CorallOrange : DarkOrangeelement part color
-
+ Taronja : TaronjaFoscOrange : Orangeelement part color
-
+ Taronja : TaronjaYellow : Yellowelement part color
-
+ Groc : GrocYellow : LightYellowelement part color
-
+ Groc : GrocClarYellow : LemonChiffonelement part color
-
+ Groc : TelaLLimonaYellow : LightGoldenrodYellowelement part color
-
+ Groc : GrocClarDeVaraDOrYellow : PapayaWhipelement part color
-
+ Groc : FuetDePapaiaYellow : Moccasinelement part color
-
+ Groc : MocassíYellow : PeachPuffelement part color
-
+ Groc : BufadaDePréssecYellow : PaleGoldenrodelement part color
-
+ Groc :VaraDOrPàl·lidaYellow : Khakielement part color
-
+ Groc : CaquiYellow : DarkKhakielement part color
-
+ Groc : CaquiFoscYellow : Goldelement part color
-
+ Groc : OrBrown : Cornsilkelement part color
-
+ Marró : BarbaDeBlatDeMoroBrown : BlanchedAlmondelement part color
-
+ Marró : AmetllaBlanquejadaBrown : Bisqueelement part color
-
+ Marró : BisquetaBrown : NavajoWhiteelement part color
-
+ Marró : BlancNavajoBrown : Wheatelement part color
-
+ Marró : BlatBrown : Burlywoodelement part color
-
+ Marró : FustaCorpulentaBrown : Tanelement part color
-
+ Marró : BronzejatBrown : RosyBrownelement part color
-
+ Marró : MarróRosatBrown : SandyBrownelement part color
-
+ Marró : MarroOmbraPàl·litBrown : Goldenrodelement part color
-
+ Marró : VaraDOrBrown : DarkGoldenrodelement part color
-
+ Marró : VaraDOrFoscaBrown : Peruelement part color
-
+ Marró : PerúBrown : Chocolateelement part color
-
+ Marró : XocolataBrown : SaddleBrownelement part color
-
+ Marró : MarróSellaBrown : Siennaelement part color
-
+ Marró : SienaBrown : Brownelement part color
-
+ Marró : MarróBrown : Maroonelement part color
-
+ Marró : GranatGreen : DarkOliveGreenelement part color
-
+ Verd : VerdOlivaFoscGreen : Oliveelement part color
-
+ Verd : OlivaGreen : OliveDrabelement part color
-
+ Verd : OlivaApagatGreen : YellowGreenelement part color
-
+ Verd : VerdGrocGreen : LimeGreenelement part color
-
+ Verd : VerdLlimaGreen : Limeelement part color
-
+ Verd : LlimaGreen : LawnGreenelement part color
-
+ Verd : VerdGespaGreen : Chartreuseelement part color
-
+ Verd : ChartreuseGreen : GreenYellowelement part color
-
+ Verd : VerdGrocGreen : SpringGreenelement part color
-
+ Verd : VerdPrimaveraGreen : MediumSpringGreenelement part color
-
+ Verd : VerdPrimaveraMitjàGreen : LightGreenelement part color
-
+ Verd : Verd ClarGreen : PaleGreenelement part color
-
+ Verd : VerdPàl·lidGreen : DarkSeaGreenelement part color
-
+ Verd : VerdMarFoscGreen : MediumAquamarineelement part color
-
+ Verd : AiguaMarinaMitjàGreen : MediumSeaGreenelement part color
-
+ Verd : VerdMarMitjàGreen : SeaGreenelement part color
-
+ Verd : VerdMarGreen : ForestGreenelement part color
-
+ Verd : VerdBoscGreen : Greenelement part color
-
+ Verd : VerdGreen : DarkGreenelement part color
-
+ Verd : VerdFoscCyan : Aquaelement part color
-
+ Cian : AiguaCyan : Cyanelement part color
-
+ Cian : CianCyan : LightCyanelement part color
-
+ Cian : CianClarCyan : PaleTurquoiseelement part color
-
+ Cian : TurquesaPàl·lidCyan : Aquamarineelement part color
-
+ Cian : AiguaMarinaCyan : Turquoiseelement part color
-
+ Cian : TurquesaCyan : MediumTurquoiseelement part color
-
+ Cian : TurquesaMitjàCyan : DarkTurquoiseelement part color
-
+ Cian : TurquesaFoscaCyan : LightSeaGreenelement part color
-
+ Cian : VerdMarClarCyan : CadetBlueelement part color
-
+ Cian : BlauCadetCyan : DarkCyanelement part color
-
+ Cian : CianFoscCyan : Tealelement part color
-
+ Cian : VerdBlauBlue : LightSteelBlueelement part color
-
+ Blau : BlauAcerClarBlue : PowderBlueelement part color
-
+ Blau : BlauEnPolsBlue : LightBlueelement part color
-
+ Blau : BlauClarBlue : SkyBlueelement part color
-
+ Blau : BlauCelBlue : LightSkyBlueelement part color
-
+ Blau : BlauCelClarBlue : DeepSkyBlueelement part color
-
+ Blau : BlauCelFoscBlue : DodgerBlueelement part color
-
+ Blau : BlauDodgerBlue : CornflowerBlueelement part color
-
+ Blau : BlauBlauetBlue : SteelBlueelement part color
-
+ Blau : BlauAcerBlue : RoyalBlueelement part color
-
+ Blau : BlauReialBlue : Blueelement part color
-
+ Blau : BlauBlue : MediumBlueelement part color
-
+ Blau : BlauMitjàBlue : DarkBlueelement part color
-
+ Blau : BlauFoscBlue : Navyelement part color
-
+ Blau : BlaumaríBlue : MidnightBlueelement part color
-
+ Blau : BlauMitjaNitPurple : Lavenderelement part color
-
+ Lila : LavandaPurple : Thistleelement part color
-
+ Lila : CardoPurple : Plumelement part color
-
+ Lila : PrunaPurple : Violetelement part color
-
+ Lila : VioletaPurple : Orchidelement part color
-
+ Lila : OrquídiaPurple : Fuchsiaelement part color
-
+ Lila : FúcsiaPurple : Magentaelement part color
-
+ Lila : MagentaPurple : MediumOrchidelement part color
-
+ Lila : OrquídiaMitjàPurple : MediumPurpleelement part color
-
+ Lila : LilaMitjàPurple : BlueVioletelement part color
-
+ Lila : BlauVioletaPurple : DarkVioletelement part color
-
+ Lila : VioletaFoscPurple : DarkOrchidelement part color
-
+ Lila : OrquídiaFoscPurple : DarkMagentaelement part color
-
+ Lila : MagentaFoscPurple : Purpleelement part color
-
+ Lila : LilaPurple : Indigoelement part color
-
+ Lila : IndiPurple : DarkSlateBlueelement part color
-
+ Lila : BlauPissarraFoscPurple : SlateBlueelement part color
-
+ Lila : BlauPissarraPurple : MediumSlateBlueelement part color
-
+ Lila : BlauPissarraMitjàWhite : Whiteelement part color
-
+ Blanc : BlancWhite : Snowelement part color
-
+ Blanc : NeuWhite : Honeydewelement part color
-
+ Blanc : MelissadaWhite : MintCreamelement part color
-
+ Blanc : CremaDeMentaWhite : Azureelement part color
-
+ Blanc : SafirWhite : AliceBlueelement part color
-
+ Blanc : BlauAliciaWhite : GhostWhiteelement part color
-
+ Blanc : BlancFantasmaWhite : WhiteSmokeelement part color
-
+ Blanc : FumBlancWhite : Seashellelement part color
-
+ Blanc : PetxinaWhite : Beigeelement part color
-
+ Blanc : BeixWhite : OldLaceelement part color
-
+ Blanc : EncaixVellWhite : FloralWhiteelement part color
-
+ Blanc : BlancFloralWhite : Ivoryelement part color
-
+ Blanc : MarfilWhite : AntiqueWhiteelement part color
-
+ Blanc : BlancAnticWhite : Linenelement part color
-
+ Blanc : LliWhite : LavenderBlushelement part color
-
+ Blanc : RuborDeLavandaWhite : MistyRoseelement part color
-
+ Blanc : RosaEnboiradaGray : Gainsboroelement part color
-
+ Gris : GainsboroGray : LightGrayelement part color
-
+ Gris : GrisClarGray : Silverelement part color
-
+ Gris : PlataGray : DarkGrayelement part color
-
+ Gris : GrisFoscGray : Grayelement part color
-
+ Gris : GrisGray : DimGrayelement part color
-
+ Gris : DimGrayGray : LightSlateGrayelement part color
-
+ Gris : GrisPissarraClarGray : SlateGrayelement part color
-
+ Gris : GrisPissarraGray : DarkSlateGrayelement part color
-
+ Gris : GrisPissarraFoscGray : Blackelement part color
-
+ Gris : Negre
@@ -11668,841 +11743,841 @@ Les autres champs ne sont pas utilisés.
Pink : Pinkelement part filling
-
+ Rosa : RosaPink : LightPinkelement part filling
-
+ Rosa : RosaClarPink : HotPinkelement part filling
-
+ Rosa : RosaCalentPink : DeepPinkelement part filling
-
+ Rosa : RosaProfundPink : PaleVioletRedelement part filling
-
+ Rosa : RosaVioletaPàlidPink : MediumVioletRedelement part filling
-
+ Rosa : RosaVioletaMitjàRed : LightSalmonelement part filling
-
+ Vermell : SalmóClarRed : Salmonelement part filling
-
+ Vermell : SalmóRed : DarkSalmonelement part filling
-
+ Vermell : SalmóFoscRed : LightCoralelement part filling
-
+ Vermell : CoralClarRed : IndianRedelement part filling
-
+ Vermell : VermellIndiRed : Crimsonelement part filling
-
+ Vermell : CarmesíRed : Firebrickelement part filling
-
+ Vermell : MaóRefractariRed : DarkRedelement part filling
-
+ Vermell : VermellFoscRed : Redelement part filling
-
+ Vermell : VermellOrange : OrangeRedelement part filling
-
+ Taronja : TaronjaVermellOrange : Tomatoelement part filling
-
+ Taronja : TomàquetOrange : Coralelement part filling
-
+ Taronja : CorallOrange : DarkOrangeelement part filling
-
+ Taronja : TaronjaFoscOrange : Orangeelement part filling
-
+ Taronja : TaronjaYellow : Yellowelement part filling
-
+ Groc : GrocYellow : LightYellowelement part filling
-
+ Groc : GrocClarYellow : LemonChiffonelement part filling
-
+ Groc : TelaLLimonaYellow : LightGoldenrodYellowelement part filling
-
+ Groc : GrocClarDeVaraDOrYellow : PapayaWhipelement part filling
-
+ Groc : FuetDePapaiaYellow : Moccasinelement part filling
-
+ Groc : MocassíYellow : PeachPuffelement part filling
-
+ Groc : BufadaDePréssecYellow : PaleGoldenrodelement part filling
-
+ Groc :VaraDOrPàl·lidaYellow : Khakielement part filling
-
+ Groc : CaquiYellow : DarkKhakielement part filling
-
+ Groc : CaquiFoscYellow : Goldelement part filling
-
+ Groc : OrBrown : Cornsilkelement part filling
-
+ Marró : BarbaDeBlatDeMoroBrown : BlanchedAlmondelement part filling
-
+ Marró : AmetllaBlanquejadaBrown : Bisqueelement part filling
-
+ Marró : BisquetaBrown : NavajoWhiteelement part filling
-
+ Marró : BlancNavajoBrown : Wheatelement part filling
-
+ Marró : BlatBrown : Burlywoodelement part filling
-
+ Marró : FustaCorpulentaBrown : Tanelement part filling
-
+ Marró : BronzejatBrown : RosyBrownelement part filling
-
+ Marró : MarróRosatBrown : SandyBrownelement part filling
-
+ Marró : MarroOmbraPàl·litBrown : Goldenrodelement part filling
-
+ Marró : VaraDOrBrown : DarkGoldenrodelement part filling
-
+ Marró : VaraDOrFoscaBrown : Peruelement part filling
-
+ Marró : PerúBrown : Chocolateelement part filling
-
+ Marró : XocolataBrown : SaddleBrownelement part filling
-
+ Marró : MarróSellaBrown : Siennaelement part filling
-
+ Marró : SienaBrown : Brownelement part filling
-
+ Marró : MarróBrown : Maroonelement part filling
-
+ Marró : GranatGreen : DarkOliveGreenelement part filling
-
+ Verd : VerdOlivaFoscGreen : Oliveelement part filling
-
+ Verd : OlivaGreen : OliveDrabelement part filling
-
+ Verd : OlivaApagatGreen : YellowGreenelement part filling
-
+ Verd : VerdGrocGreen : LimeGreenelement part filling
-
+ Verd : VerdLlimaGreen : Limeelement part filling
-
+ Verd : LlimaGreen : LawnGreenelement part filling
-
+ Verd : VerdGespaGreen : Chartreuseelement part filling
-
+ Verd : ChartreuseGreen : GreenYellowelement part filling
-
+ Verd : VerdGrocGreen : SpringGreenelement part filling
-
+ Verd : VerdPrimaveraGreen : MediumSpringGreenelement part filling
-
+ Verd : VerdPrimaveraMitjàGreen : LightGreenelement part filling
-
+ Verd : Verd ClarGreen : PaleGreenelement part filling
-
+ Verd : VerdPàl·lidGreen : DarkSeaGreenelement part filling
-
+ Verd : VerdMarFoscGreen : MediumAquamarineelement part filling
-
+ Verd : AiguaMarinaMitjàGreen : MediumSeaGreenelement part filling
-
+ Verd : VerdMarMitjàGreen : SeaGreenelement part filling
-
+ Verd : VerdMarGreen : ForestGreenelement part filling
-
+ Verd : VerdBoscGreen : Greenelement part filling
-
+ Verd : VerdGreen : DarkGreenelement part filling
-
+ Verd : VerdFoscCyan : Aquaelement part filling
-
+ Cian : AiguaCyan : Cyanelement part filling
-
+ Cian : CianCyan : LightCyanelement part filling
-
+ Cian : CianClarCyan : PaleTurquoiseelement part filling
-
+ Cian : TurquesaPàl·lidCyan : Aquamarineelement part filling
-
+ Cian : AiguaMarinaCyan : Turquoiseelement part filling
-
+ Cian : TurquesaCyan : MediumTurquoiseelement part filling
-
+ Cian : TurquesaMitjàCyan : DarkTurquoiseelement part filling
-
+ Cian : TurquesaFoscaCyan : LightSeaGreenelement part filling
-
+ Cian : VerdMarClarCyan : CadetBlueelement part filling
-
+ Cian : BlauCadetCyan : DarkCyanelement part filling
-
+ Cian : CianFoscCyan : Tealelement part filling
-
+ Cian : VerdBlauBlue : LightSteelBlueelement part filling
-
+ Blau : BlauAcerClarBlue : PowderBlueelement part filling
-
+ Blau : BlauEnPolsBlue : LightBlueelement part filling
-
+ Blau : BlauClarBlue : SkyBlueelement part filling
-
+ Blau : BlauCelBlue : LightSkyBlueelement part filling
-
+ Blau : BlauCelClarBlue : DeepSkyBlueelement part filling
-
+ Blau : BlauCelFoscBlue : DodgerBlueelement part filling
-
+ Blau : BlauDodgerBlue : CornflowerBlueelement part filling
-
+ Blau : BlauBlauetBlue : SteelBlueelement part filling
-
+ Blau : BlauAcerBlue : RoyalBlueelement part filling
-
+ Blau : BlauReialBlue : Blueelement part filling
-
+ Blau : BlauBlue : MediumBlueelement part filling
-
+ Blau : BlauMitjàBlue : DarkBlueelement part filling
-
+ Blau : BlauFoscBlue : Navyelement part filling
-
+ Blau : BlaumaríBlue : MidnightBlueelement part filling
-
+ Blau : BlauMitjaNitPurple : Lavenderelement part filling
-
+ Lila : LavandaPurple : Thistleelement part filling
-
+ Lila : CardoPurple : Plumelement part filling
-
+ Lila : PrunaPurple : Violetelement part filling
-
+ Lila : VioletaPurple : Orchidelement part filling
-
+ Lila : OrquídiaPurple : Fuchsiaelement part filling
-
+ Lila : FúcsiaPurple : Magentaelement part filling
-
+ Lila : MagentaPurple : MediumOrchidelement part filling
-
+ Lila : OrquídiaMitjàPurple : MediumPurpleelement part filling
-
+ Lila : LilaMitjàPurple : BlueVioletelement part filling
-
+ Lila : BlauVioletaPurple : DarkVioletelement part filling
-
+ Lila : VioletaFoscPurple : DarkOrchidelement part filling
-
+ Lila : OrquídiaFoscPurple : DarkMagentaelement part filling
-
+ Lila : MagentaFoscPurple : Purpleelement part filling
-
+ Lila : LilaPurple : Indigoelement part filling
-
+ Lila : IndiPurple : DarkSlateBlueelement part filling
-
+ Lila : BlauPissarraFoscPurple : SlateBlueelement part filling
-
+ Lila : BlauPissarraPurple : MediumSlateBlueelement part filling
-
+ Lila : BlauPissarraMitjàWhite : Whiteelement part filling
-
+ Blanc : BlancWhite : Snowelement part filling
-
+ Blanc : NeuWhite : Honeydewelement part filling
-
+ Blanc : MelissadaWhite : MintCreamelement part filling
-
+ Blanc : CremaDeMentaWhite : Azureelement part filling
-
+ Blanc : SafirWhite : AliceBlueelement part filling
-
+ Blanc : BlauAliciaWhite : GhostWhiteelement part filling
-
+ Blanc : BlancFantasmaWhite : WhiteSmokeelement part filling
-
+ Blanc : FumBlancWhite : Seashellelement part filling
-
+ Blanc : PetxinaWhite : Beigeelement part filling
-
+ Blanc : BeixWhite : OldLaceelement part filling
-
+ Blanc : EncaixVellWhite : FloralWhiteelement part filling
-
+ Blanc : BlancFloralWhite : Ivoryelement part filling
-
+ Blanc : MarfilWhite : AntiqueWhiteelement part filling
-
+ Blanc : BlancAnticWhite : Linenelement part filling
-
+ Blanc : LliWhite : LavenderBlushelement part filling
-
+ Blanc : RuborDeLavandaWhite : MistyRoseelement part filling
-
+ Blanc : RosaEnboiradaGray : Gainsboroelement part filling
-
+ Gris : GainsboroGray : LightGrayelement part filling
-
+ Gris : GrisClarGray : Silverelement part filling
-
+ Gris : PlataGray : DarkGrayelement part filling
-
+ Gris : GrisFoscGray : Grayelement part filling
-
+ Gris : GrisGray : DimGrayelement part filling
-
+ Gris : DimGrayGray : LightSlateGrayelement part filling
-
+ Gris : GrisPissarraClarGray : SlateGrayelement part filling
-
+ Gris : GrisPissarraGray : DarkSlateGrayelement part filling
-
+ Gris : GrisPissarraFoscGray : Blackelement part filling
-
+ Gris : Negre
@@ -12520,13 +12595,13 @@ Les autres champs ne sont pas utilisés.
Hachures gaucheelement part filling
- Línies Diagonals
+ Eclosió esquerraHachures droiteelement part filling
- Línies Diagonals
+ Eclosió dreta
@@ -12536,7 +12611,7 @@ Les autres champs ne sont pas utilisés.
Remplissage :
- Emplenament:
+ Farciment :
@@ -12547,27 +12622,27 @@ Les autres champs ne sont pas utilisés.
Apparence :
- Aparença:
+ Aparença :Contour :
- Contorn:
+ Contorn :Style :
- Estil:
+ Estil :Épaisseur :
-
+ Gruix :Géométrie :
- Geometria:
+ Geometria :
@@ -12592,7 +12667,7 @@ Les autres champs ne sont pas utilisés.
style remplissage
- estil d'emplenament
+ estil de farciment
@@ -12600,32 +12675,32 @@ Les autres champs ne sont pas utilisés.
Form
- Formulari
+ FormulariInformations disponibles
-
+ Informació disponibleInformation à afficher
-
+ Informació per mostrarConfiguration
-
+ ConfiguracióRequête SQL :
-
+ Consulta SQL:Position
- Posició
+ Posició
@@ -12653,32 +12728,32 @@ Les autres champs ne sont pas utilisés.
Générique
-
+ GenèricBornier intérieur
-
+ Bloc de borns interiorBornier extérieur
-
+ Bloc de borns exteriorModifier l'orientation d'une borne
- Modificar l'orientació d'un born
+ Modifica l'orientació d'un bornModifier le nom du terminal
-
+ Modifica el nom del bornModifier le type d'une borne
-
+ Modifica el tipus d'un born
@@ -12688,32 +12763,32 @@ Les autres champs ne sont pas utilisés.
Form
- Formulari
+ Formulariy :
-
+ y :Orientation :
-
+ Orientació :x :
-
+ x :Nom :
- Nom:
+ Nom :Type :
- Tipus:
+ Tipus :
@@ -12721,32 +12796,32 @@ Les autres champs ne sont pas utilisés.
Création groupe de bornes
-
+ Creació del grup de bornsLocalisation :
-
+ Localització :Nom :
- Nom:
+ Nom :Installation :
- Instal·lació:
+ Instal·lació :Description :
-
+ Descripció :Commentaire :
-
+ Comentari :
@@ -12754,158 +12829,158 @@ Les autres champs ne sont pas utilisés.
Propriétés
- Propietats
+ PropietatsNom :
- Nom:
+ Nom:Commentaire :
-
+ Comentari :Installation :
- Instal·lació:
+ Instal·lació :Type :
- Tipus:
+ Tipus:Form
- Formulari
+ FormulariDisposition
-
+ DisposicióSans
-
+ SenseAvec
-
+ AmbEffectuer le déplacement
-
+ Efectua el desplaçamentÉtage :
-
+ Etapa :Couleur pont :
-
+ Color del pont:Générique
-
+ GenèricFusible
-
+ FusibleSectionnable
-
+ SeccionableDiode
-
+ DíodeTerre
- Terra
+ TerraLED :
-
+ LED :Déplacer dans :
-
+ Desplaçar-se dins :Phase
- Fase
+ FaseNeutre
- Neutre
+ NeutrePosition automatique
-
+ Posició automàticaGrouper les bornes
-
+ Agrupa els bornsDegrouper les bornes
-
+ Desagrupa els bornsPonter les bornes
-
+ Puntegeu dels bornsDéponter les bornes
-
+ Traieu el pont dels bornsLocalisation :
-
+ Localització :Description
-
+ DescripcióFonction :
- Funció:
+ Funció:Bornes indépendantes
-
+ Borns independentsModifier des propriétés de borniers
-
+ Modifica les propietats del bloc de borns
@@ -12913,42 +12988,42 @@ Les autres champs ne sont pas utilisés.
Gestionnaire de borniers
-
+ Gestor de blocs de bornstoolBar
-
+ barra d'einesAjouter un bornier
-
+ Afegeix el bloc de bornsAjouter un bornier au projet
-
+ Afegeix el bloc de borns al projecteSupprimer le bornier
-
+ Suprimeix el bloc de bornsSupprimer le bornier du projet
-
+ Suprimeix el bloc de borns del projecteRecharger
- Recarregar
+ RecarregaRecharger les borniers
-
+ Recarrega els borns
@@ -12956,7 +13031,7 @@ Les autres champs ne sont pas utilisés.
plan de bornes
-
+ pla de borns
@@ -12964,117 +13039,117 @@ Les autres champs ne sont pas utilisés.
Form
- Formulari
+ FormulariBorne niveau 0 :
-
+ Born de nivell 0 :En tête :
-
+ A la part superior :Point de pont
-
+ Punt de pontDécalage vertical
-
+ Desplaçament verticalAfficher l'aide
-
+ Mostra l'ajudaLargeur
-
+ AmpladaHauteur
-
+ AlçadaPrévisualisation :
-
+ Vista prèvia :Gauche
- Esquerra
+ EsquerraCentre
-
+ CentreDroite
- Dreta
+ DretaAlignement du texte d'en tête :
-
+ Alineació del text de la capçalera :Alignement du texte de borne :
-
+ Alineació del text del born :Horizontal
- Horitzontal
+ HoritzontalVertical
- Vertical
+ VerticalOrientation du texte de borne :
-
+ Orientació del text de born:Orientation du texte d'en tête :
-
+ Orientació del text de la capçalera :Borne niveau 2 :
-
+ Born de nivell 2 :Espace :
-
+ Espai :Borne niveau 3 :
-
+ Born de nivell 3 :Borne niveau 1 :
-
+ Born de nivell 1 :
@@ -13082,52 +13157,52 @@ Les autres champs ne sont pas utilisés.
Position
- Posició
+ PosicióÉtage
-
+ NivellLabel
- Etiqueta
+ EtiquetaNuméro de conducteur
-
+ Número de conductorRéférence croisé
-
+ Referència creuadaCâble
-
+ CableCouleur / numéro de fil câble
-
+ Color / número de fil del cableType
- Tipus
+ TipusFonction
- Funció
+ Funcióled
-
+ led
@@ -13135,7 +13210,7 @@ Les autres champs ne sont pas utilisés.
Plan de bornes
-
+ Pla de borns
@@ -13143,17 +13218,17 @@ Les autres champs ne sont pas utilisés.
Projet sans titre
- Projecte sense títol
+ Projecte sense títolBornes indépendante
-
+ Borns independentsExplorateur de bornier
-
+ Explorador de borns
@@ -13161,69 +13236,69 @@ Les autres champs ne sont pas utilisés.
Modifier le contenu d'un champ texte
- Modificar el contingut d'un camp de text
+ Canvia el contingut d'un camp de textDéplacer un champ texte
- Moure un camp de text
+ Mou un camp de textPivoter un champ texte
-
+ Gira un camp de textModifier la police d'un texte
-
+ Canvia la font d'un textModifier la couleur d'un texte
-
+ Canvia el color d'un textForm
- Formulari
+ FormulariY :
-
+ Y :Police :
- Tipus de lletra:
+ Tipus de lletra :°
-
+ °Rotation :
-
+ Rotació :X :
-
+ X :Entrer votre texte ici
-
+ Introdueix el teu text aquíCouleur :
- Color:
+ Color :
@@ -13231,17 +13306,17 @@ Les autres champs ne sont pas utilisés.
Logiciel tiers requis
-
+ Cal programari de tercersTélechargement
-
+ DescarregarDossier installation
-
+ Carpeta d'instal·lació
@@ -13250,7 +13325,7 @@ Les autres champs ne sont pas utilisés.
Largeur :default dialog label
- Amplada:
+ Amplada :
@@ -13297,13 +13372,13 @@ Les autres champs ne sont pas utilisés.
Éditer ce modèlemenu entry
- Editar aquest model
+ Edita aquest modelDupliquer et éditer ce modèlemenu entry
-
+ Duplica i edita aquest model
@@ -13314,12 +13389,12 @@ Les autres champs ne sont pas utilisés.
Créer un Folio Numérotation Auto
- Crear un Full de numeració automàtica
+ Crea un full de numeració automàticaModèle :
- Model:
+ Model :
@@ -13329,22 +13404,22 @@ Les autres champs ne sont pas utilisés.
Folio :
- Full:
+ Full :Auteur :
- Autor:
+ Autor :Disponible en tant que %filename pour les modèles de cartouches
- Disponible com a %filename per als caixetins del projecte
+ Disponible com a %filename per a models de caixetinsPas de date
- No hi cap data
+ Sense data
@@ -13354,7 +13429,7 @@ Les autres champs ne sont pas utilisés.
Appliquer la date actuelle
- Aplicar la data actual
+ Aplica la data actual
@@ -13369,27 +13444,27 @@ Les autres champs ne sont pas utilisés.
Indice Rev:
-
+ Índex Rev :Disponible en tant que %locmach pour les modèles de cartouches
- Disponible com %locmach per als models de caixetí
+ Disponible com a %locmach per a models de caixetí<html><head/><body><p>Disponible en tant que %plant pour les modèles de cartouches</p></body></html>
-
+ <html><head/><body><p>Disponible com a %plant per a models de caixetí</p></body></html>Disponible en tant que %date pour les modèles de cartouches
- Disponible com %date per als models de caixetí
+ Disponible com a %date per a models de caixetíDate fixe :
- Data fixa:
+ Data fixada :
@@ -13398,57 +13473,61 @@ Les variables suivantes sont utilisables :
- %id : numéro du folio courant dans le projet
- %total : nombre total de folios dans le projet
- %autonum : Folio Auto Numeration
-
+ Disponible com a %full per a models de caixetí
+Es poden utilitzar les variables següents:
+- %id: Número de full actual al projecte
+- %total: Nombre total de fulls al projecte
+- %autonum: Numeració automàtica del fullTitre :
- Títol:
+ Títol :<html><head/><body><p>Affiche le cartouche en bas (horizontalement) ou à droite (verticalement) du folio.</p></body></html>
- <html><head/><body><p>Situa el caixetí horitzontal o vertical </p></body></html>
+ <html><head/><body><p>Situa el caixetí a la part inferior (horitzontalment) o a la dreta (verticalment) del full. </p></body></html>Fichier :
- Arxiu:
+ Fitxer :Date :
- Data:
+ Data :Disponible en tant que %author pour les modèles de cartouches
- Disponible com a %author per als caixetins
+ Disponible com a %author per als models de caixetinsDisponible en tant que %title pour les modèles de cartouches
- Disponible com a %title per als caixetins
+ Disponible com a %title per als models de caixetinsPage Num:
- Pàgina Núm:
+ Pàgina Núm :Installation :
- Instal·lació:
+ Instal·lació :Disponible en tant que %indexrev pour les modèles de cartouches
- Disponible com a %indexrev per als caixetins
+ Disponible com a %indexrev per als models de caixetinsLocalisation:
-
+ Localització :
@@ -13459,8 +13538,8 @@ Les variables suivantes sont utilisables :
Vous pouvez définir ici vos propres associations noms/valeurs pour que le cartouche en tienne compte. Exemple :
associer le nom "volta" et la valeur "1745" remplacera %{volta} par 1745 dans le cartouche.
- Aquí podeu definir les seves pròpies associacions de nom / valor perquè sigui pres en compte en el caixetí. Exemple:
-associar el nom de "volta" i el valor "1745" reemplaçarà %{volta} per 1745 dins del caixetí.
+ Aquí podeu definir les vostres pròpies associacions de nom/valor perquè el caixetí les pugui tenir en compte. Per exemple:
+associar el nom "volta" amb el valor "1745" substituirà %{volta} per 1745 al caixetí.
@@ -13482,7 +13561,7 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Type de cellule :
- Tipus de cel·la:
+ Tipus de cel·la :
@@ -13503,7 +13582,7 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Attention : les bordures des cellules vides n'apparaissent pas lors du rendu final sur le folio.
- Avís: les vores de les cel·les buides no es veuen durant el renderitzat final del full.
+ Avís : les vores de les cel·les buides no es veuen durant el renderitzat final del full.
@@ -13513,38 +13592,38 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Gérer les logos
- Gestionar logos
+ Gestiona els logosNom :
- Nom:
+ Nom :Afficher un label :
- Mostrar una etiqueta:
+ Mostra una etiqueta :Editer
- Editar
+ EditaTexte :
- Text:
+ Text :Alignement :
- Aliniació:
+ Alineació :horizontal :
- horitzontal:
+ horitzontal :
@@ -13564,12 +13643,12 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
vertical :
- vertical:
+ vertical :Haut
- Dalt
+ Superior
@@ -13579,17 +13658,17 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Bas
- Sota
+ InferiorPolice :
- Tipus de lletra:
+ Tipus de lletra :Ajuster la taille de police si besoin
- Ajustar la mida del text si fos necessari
+ Ajusta la mida del text si fos necessari
@@ -13604,12 +13683,12 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Par défaut, les variables suivantes sont disponibles :<ul><li>%{author} : auteur du folio</li><li>%{date} : date du folio</li><li>%{title} : titre du folio</li><li>%{filename} : nom de fichier du projet</li><li>%{plant} : nom de l'installation (=) dans laquelle se trouve le folio</li><li>%{locmach} : nom de la localisation (+) dans laquelle se trouve le folio</li><li>%{indexrev} : indice de révision du folio</li><li>%{version} : version du logiciel</li><li>%{folio} : numéro du folio</li><li>%{folio-id} : position du folio dans le projet</li><li>%{folio-total} : nombre total de folios dans le projet</li><li>%{previous-folio-num} : numéro du folio précédent</li><li>%{next-folio-num} : numéro du folio suivant</li><li>%{projecttitle} : titre du projet</li><li>%{projectpath} : chemin du projet</li><li>%{projectfilename} : nom du fichier</li><li>%{saveddate} : date d'enregistrement du fichier format local</li><li>%{saveddate-eu} : date d'enregistrement du fichier format dd-MM-yyyy</li><li>%{saveddate-us} : date d'enregistrement du fichier format yyyy-MM-dd</li><li>%{savedtime} : heure d'enregistrement du fichier</li><li>%{savedfilename} : nom du fichier enregistré</li><li>%{savedfilepath} : chemin du fichier enregistré</li></ul>
-
+ Per defecte, les variables següents estan disponibles: <ul><li>%{author}: Autor del full</li><li>%{date}: Data del full</li><li>%{title}: Títol del full</li><li>%{filename}: Nom del fitxer del projecte</li><li>%{plant}: Nom de la instal·lació (=) on es troba el full</li><li>%{locmach}: Nom de la ubicació (+) on es troba el full</li><li>%{indexrev}: Índex de revisió del full</li><li>%{version}: Versió del programari</li><li>%{folio}: Número de full</li><li>%{folio-id}: Posició del full al projecte</li><li>%{folio-total}: Nombre total de fulls al projecte</li><li>%{previous-folio-num}: Número de full anterior</li><li>%{next-folio-num}: Número del següent full</li><li>%{projecttitle}: projecte title</li><li>%{projectpath}: ruta del projecte</li><li>%{projectfilename}: nom del fitxer</li><li>%{saveddate}: Data de desament del fitxer en format local</li><li>%{saveddate-eu}: Data de desament del fitxer en format dd-MM-aaaa</li><li>%{saveddate-us}: Data de desament del fitxer en format aaaa-MM-dd</li><li>%{savedtime}: Hora de desament del fitxer</li><li>%{savedfilename}: Nom del fitxer desat</li><li>%{savedfilepath}: Ruta del fitxer desat</li></ul>Chaque cellule d'un cartouche affiche une valeur, optionnellement précédée d'un label. Tous deux peuvent être traduits en plusieurs langues.<br/>Comme ce que vous éditez actuellement est un <em>modèle</em> de cartouche, ne saisissez pas directement des données brutes : insérez plutôt des variables sous la forme %{nom-de-variable}, qui seront ensuite remplacées par les valeurs adéquates sur le folio.
- Cada cel·la d'un caixetí mostra un valor, precedit opcionalment per una etiqueta. Tots dos poden ésser traduits en múltiples llengües.<br/>Com que el que está editant ara mateix és un <em>model</em> de caixetí, no insereixi informació absoluta. És millor inserir variables en format %{nom-de-variable}. Les variables quedaran substituïdes automàticament al full per llurs valors.
+ Cada cel·la d'un caixetí mostra un valor, precedit opcionalment per una etiqueta. Ambdues poden ésser traduits a múltiples llengües.<br/>Com que el que estàs editant ara mateix és un <em>model</em> de caixetí, no insereixis informació absoluta. És millor inserir variables en format %{nom-de-variable}. Les variables quedaran substituïdes automàticament al full per llurs valors.
@@ -13621,7 +13700,7 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Édition d'une cellule : %1label of and undo command when editing a cell
- Edició d'una cel·la: %1
+ Edició d'una cel·la : %1
@@ -13630,14 +13709,15 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Supprimer le modèle de cartouche ?message box title
- Suprimir el caixetí?
+ Suprimeix el model de caixetí?Êtes-vous sûr de vouloir supprimer ce modèle de cartouche (%1) ?
message box content
- Esteu segur que voleu suprimir aquest caixetí (%1) ?
+ Esteu segur que voleu suprimir aquest model de caixetí (%1) ?
+
@@ -13668,7 +13748,7 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Nouveau modèle (entrez son nom)combox box entry
- Model nou (entri'n el nom)
+ Nou model (introduïu-ne el nom)
@@ -13686,17 +13766,17 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Ajouter un logo
- Afegir un logo
+ Afegeix un logoExporter ce logo
- Exportar aquest logo
+ Exporta aquest logoSupprimer ce logo
- Suprimir aquest logo
+ Suprimeix aquest logo
@@ -13706,13 +13786,13 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Nom :
- Nom:
+ Nom :Renommer
- Canviar el nom
+ Canvia el nom
@@ -13723,22 +13803,22 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Logo déjà existant
- Logo existent
+ Logo ja existentRemplacer
- Substituïr
+ SubstitueixIl existe déjà un logo portant le nom "%1" au sein de ce modèle de cartouche. Voulez-vous le remplacer ou préférez-vous spécifier un autre nom pour ce nouveau logo ?
- Ja existeix un logo anomenat "%1" dins d'aquest model de caixetí. Vol substituïr-lo pel nou o prefereix donar-li un altre nom?
+ Ja hi ha un logo amb el nom "%1" dins d'aquest model de caixetí. Vols substituir-lo o prefereixes especificar un altre nom per a aquest nou logotip?Type : %1
- Tipus: %1
+ Tipus : %1
@@ -13764,7 +13844,7 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Choisir un fichier pour exporter ce logo
- Triï un fitxer per exportar aquest logo
+ Tria un fitxer on exportar aquest logo
@@ -13779,22 +13859,22 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Renommer un logo
- Reanomenar un logo
+ Canvia el nom a un logoVous devez saisir un nouveau nom.
- Cal donar un nom nou.
+ Heu d'introduir un nom nou.Le nouveau nom ne peut pas être vide.
- El nom nou no pot ésser buit.
+ El nom nou no pot estar buit.Le nom saisi est déjà utilisé par un autre logo.
- El nom triat ja correspon a un altre logo.
+ El nom introduït ja l'utilitza un altre logo.
@@ -13803,7 +13883,7 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Changer la largeur de la colonnewindow title when changing a column with
- Canviar l'amplada de la columna
+ Canvia l'amplada de la columna
@@ -13815,67 +13895,67 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Changer la hauteur de la lignewindow title when changing a row height
- Canviar l'alçada de la línia
+ Canvia l'alçada de la líniaHauteur :text before the spinbox to change a row height
- Alçada:
+ Alçada :Ajouter une colonne (avant)context menu
- Afegir una columna (abans)
+ Afegeix una columna (abans)Ajouter une ligne (avant)context menu
- Afegir una línia (abans)
+ Afegeix una línia (abans)Ajouter une colonne (après)context menu
- Afegir una columna (després)
+ Afegeix una columna (després)Ajouter une ligne (après)context menu
- Afegir una línia (després)
+ Afegeix una línia (després)Modifier les dimensions de cette colonnecontext menu
- Variar les mides d'aquesta columna
+ Canvia les dimensions d'aquesta columnaModifier les dimensions de cette lignecontext menu
- Variar les mides d'aquesta línia
+ Canvia les dimensions d'aquesta líniaSupprimer cette colonnecontext menu
- Suprimir aquesta columna
+ Suprimeix aquesta columnaSupprimer cette lignecontext menu
- Suprimir aquesta línia
+ Suprimeix aquesta líniaModifier la largeur de cet aperçucontext menu
- Modificar l'amplada d'aquesta vista prèvia
+ Modifica l'amplada d'aquesta vista prèvia
@@ -13887,7 +13967,7 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
[%1px]content of the extra helper cell added when the total width of cells is greater than the preview width
- [%1px]
+ [%1px]
@@ -13903,12 +13983,12 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Changer la largeur de l'aperçu
- Canviar l'amplada de la vista prèvia
+ Canvia l'amplada de la vista prèviaLargeur de l'aperçu :
- Amplada de la vista prèvia:
+ Amplada de la vista prèvia :
@@ -13916,21 +13996,23 @@ associar el nom de "volta" i el valor "1745" reemplaçarà %
Longueur maximale : %2px
tooltip showing the minimum and/or maximum width of the edited template
- Longitud mínima: %1px
-Longitud màxima: %2px
+ Longitud mínima : %1px
+Longitud màxima : %2px
+Longueur minimale : %1px
tooltip showing the minimum width of the edited template
- Longitud mínima: %1px
+ Longitud mínima : %1
+Largeur totale pour cet aperçu : %1pxdisplayed at the top of the preview when editing a title block template
- Longitud total d'aquesta vista prèvia: %1px
+ Amplada total d'aquesta vista prèvia: %1px
@@ -13940,13 +14022,13 @@ Longitud màxima: %2px
Cartouches du projet sans titre (id %1)collection title when the parent project has an empty title -- %1 is the project internal idtítol de la col·lecció quan el projecte pare no tingui títol -- %1 és l'identificador intern de projecte
- Caixetins sense títol (id %1)
+ Caixetins de projecte sense títol (id %1)Cartouches du projet "%1"collection title when the project has a suitable title -- %1 is the project title
- Caixetins "%1"
+ Caixetins del projecte "%1"
@@ -13969,42 +14051,42 @@ Longitud màxima: %2px
Positionner :
- Posició:
+ Posició :XRef Vertical Offset:
- XRef Vertical Offset:
+ Desplaçament vertical de la referència creuada :10px corresponds to 1 tile displacement
- 10px correspon a 1 desplaçament
+ 10 px corresponen a 1 desplaçament de tessel·laSet Vertical Offset for the Cross References. 10px corresponds to 1 tile displacement.
- Ajust desviació vertical de les referències creuades. 10px correspon a 1 desplaçament.
+ Defineix el desplaçament vertical per a les referències creuades. 10 px corresponen a 1 desplaçament de tessel·la.Default - Fit to XRef height
- Per defecte - Ajustar a l'altura XRef
+ Per defecte - Ajusta a l'alçada de la referència creuadaXRef slave position
-
+ Posició de l'esclau de la referència creuadaAffiche&r en contacts
- Veure contactes
+ &Mostra en contactesAfficher en croix
- Veure en creu
+ Mostra en creu
@@ -14040,23 +14122,23 @@ Longitud màxima: %2px
%c : le numéro de colonne
%M: Installation
%LM: Localisation
- Crear el seu propi text, ajudat de les següents variables:
-%f : el nombre del full
-%F: la etiqueta del full
-%l : el nombre de línia
-%c : el nombre de columna
-%M: Instal·lació
-%LM: Ubicació
+ Crea el teu propi text utilitzant les variables següents :
+%f : Número del full
+%F : Etiqueta del full
+%l : Número de línia
+%c : Número de columna
+%M : Instal·lació
+%LM : Ubicació Option d'affichage en croix
- Opció de presentació en creu
+ Opció de visualització en creuAfficher les contacts de puissance dans la croix
- Mostrar els contactes de potència en la creu
+ Mostra els contactes de potència a la creu
@@ -14066,12 +14148,12 @@ Longitud màxima: %2px
Préfixe des contacts temporisés :
- Prefix de contactes temporitzats:
+ Prefix dels contactes temporitzats :Préfixe des contacts inverseurs :
- Prefix de contactes inversors:
+ Prefix dels contactes inversors :
@@ -14091,37 +14173,37 @@ Longitud màxima: %2px
En bas de page
- A baix de la pàgina
+ A la part inferior de la pàginaSous le label de l'élément
- Sota l'etiqueta de símbol
+ Sota l'etiqueta de l'elementTop
-
+ SuperiorBottom
-
+ InferiorLeft
-
+ EsquerraRight
-
+ DretaText alignment
-
+ Alineació del text
@@ -14144,7 +14226,7 @@ Longitud màxima: %2px
Projet :
- Projecte:
+ Projecte :
@@ -14164,7 +14246,7 @@ Longitud màxima: %2px
Désélectionner tout
- Deseleccionar tot
+ Desselecciona-ho tot
@@ -14175,14 +14257,14 @@ Longitud màxima: %2px
projectDataBase
-
+ Exporter la base de données interne du projet
-
+ Exporta la base de dades interna del projecte
-
+ sans_nom
-
+ sense_nom
@@ -14198,7 +14280,7 @@ Longitud màxima: %2px
Insert HTML entity
- Inserir entitat HTML
+ Insereix entitat HTML
@@ -14221,7 +14303,7 @@ Longitud màxima: %2px
&OK
- &OK
+ &D'acord
@@ -14249,7 +14331,7 @@ Longitud màxima: %2px
Left Align
- Alineació Esquerra
+ Alinea a l'Esquerra
@@ -14259,7 +14341,7 @@ Longitud màxima: %2px
Right Align
- Alineació Dreta
+ Alinea a la Dreta
@@ -14279,17 +14361,17 @@ Longitud màxima: %2px
Insérer un lien
- Inserir un vincle
+ Insereix un enllaçInsert &Image
- Inserir &Imatge
+ Insereix una &ImatgeSimplify Rich Text
- Simplificar text enriquit
+ Simplifica el text enriquit
@@ -14297,52 +14379,52 @@ Longitud màxima: %2px
Rechercher/Remplacer avancé
-
+ Cerca o substitució endavantpar :
-
+ per :Remplacer :
-
+ Substitueix :Qui :
-
+ De què :Texte ou expression régulière
-
+ Text o expressió regularFolio
- Full
+ FullÉlément
- Símbol
+ ElementConducteur
- Conductor
+ ConductorTexte indépendant
-
+ Text independentQuoi :
-
+ Què :
diff --git a/lang/qet_de.qm b/lang/qet_de.qm
index 897480c54..3f28f2dad 100644
Binary files a/lang/qet_de.qm and b/lang/qet_de.qm differ
diff --git a/lang/qet_de.ts b/lang/qet_de.ts
index c472182da..1ced13582 100644
--- a/lang/qet_de.ts
+++ b/lang/qet_de.ts
@@ -716,7 +716,7 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.
Position
- Position
+ Seite
@@ -8839,7 +8839,7 @@ Möchten Sie sie ersetzen?
Position
- Position
+ Seite
diff --git a/lang/qet_it.qm b/lang/qet_it.qm
index e9afc0fd9..e04bc0fb9 100644
Binary files a/lang/qet_it.qm and b/lang/qet_it.qm differ
diff --git a/lang/qet_it.ts b/lang/qet_it.ts
index 23e84b8a7..307ac5962 100644
--- a/lang/qet_it.ts
+++ b/lang/qet_it.ts
@@ -1393,7 +1393,7 @@ Nota: queste opzioni non consentono attivare o disattivare la numerazione automa
Information de l'élément
- Informazioni dell'elemento
+ Informazione dell'elemento
diff --git a/man/files/ca/man1/qelectrotech.1.gz b/man/files/ca/man1/qelectrotech.1.gz
new file mode 100644
index 000000000..99ea68736
Binary files /dev/null and b/man/files/ca/man1/qelectrotech.1.gz differ
diff --git a/misc/org.qelectrotech.qelectrotech.desktop b/misc/org.qelectrotech.qelectrotech.desktop
index ac52a7ceb..c1536770b 100644
--- a/misc/org.qelectrotech.qelectrotech.desktop
+++ b/misc/org.qelectrotech.qelectrotech.desktop
@@ -12,7 +12,7 @@ Keywords=Graphics;Science;Electricity;Engineering;
Comment=Edit electrical diagrams.
Comment[ar]=تحرير مخططات كهربائية
Comment[be]=Bewerken elektrisch schema.
-Comment[ca]=Editar esquemes elèctrics.
+Comment[ca]=Edita esquemes elèctrics.
Comment[cs]=Editor výkresů elektrických obvodů
Comment[da]=Rediger elektriske diagrammer.
Comment[de]=Elektroschaltpläne erstellen und bearbeiten.
@@ -30,6 +30,7 @@ Comment[sk]=Úprava elektrických schém.
GenericName=Electrical diagram editor
GenericName[ar]=مُحرّر مخططات كهربائية
GenericName[be]=Elektrische schema editor
+GenericName[ca]=Editor d'esquemes elèctrics
GenericName[cs]=Editor výkresů elektrických obvodů
GenericName[da]=Elektrisk diagram redigering
GenericName[de]=Schaltplaneditor
diff --git a/misc/qelectrotech.appdata.xml b/misc/qelectrotech.appdata.xml
index 545bbc869..0dbf28b10 100644
--- a/misc/qelectrotech.appdata.xml
+++ b/misc/qelectrotech.appdata.xml
@@ -7,20 +7,21 @@
QElectroTechElectrical diagram editorمُحرّر مخططات كهربائية
+ Elektrische schema editor
+ Editor d'esquemes elèctricsEditor výkresů elektrických obvodů
+ Elektrisk diagram redigeringZeichenprogramm für SchaltpläneΕπεξεργαστής ηλεκτρικών διαγραμμάτωνEditor de esquemas eléctricosÉditeur de schémas électriquesEditor elektro shemeProgramma per disegnare schemi elettrici
+ 電気回路図エディタ
+ Elektrische schema bewerkerEdytor schematów elektrycznychEditor de esquemas eléctricosРедактор электрических схем
- Elektrische schema bewerker
- Elektrische schema editor
- Elektrisk diagram redigering
- 電気回路図エディタ
@@ -30,10 +31,22 @@
QElectroTech is a Qt5 application to design electric diagrams.
It uses XML files for elements and diagrams, and includes both a diagram editor, an element editor, and a titleblock editor.
+
+ QElectroTech is een Qt5 applicatie om elektrische schema's te ontwerpen.
+ Het maakt gebruik van XML-bestanden voor elementen en diagrammen, en omvat zowel een diagram bewerker, een element bewerker, en ook een tielbloksjabloon bewerker.
+
+
+ QElectroTech és una aplicació Qt5 per crear esquemes elèctrics.
+ QET utilitza el format XML per als seus elements i esquemes i inclou un editor d'esquemes, un editor d'elements i un editor de caixetins.
+
QElectroTech je aplikací Qt5 určenou pro návrh nákresů elektrických obvodů.
Pro prvky a nákresy používá soubory XML, a zahrnuje v sobě jak editor nákresů, tak editor prvků.
+
+ QElectroTech er et Qt5 program til at redigere elektriske diagrammer.
+ Det bruger XML filer for symboler og diagrammer og inkluderer diagram, symbol og titelblok redigering.
+
QElectroTech ist eine Qt5-Anwendung zum Entwerfen von Schaltplänen.
Die Anwendung verwendet XML-Dateien zum Speichern von Projekten und Elementbibliotheken. Neben dem Schaltplaneditor enthält die Anwendung auch Elementeditoren und einen Blattvorlageneditor.
@@ -54,9 +67,13 @@
QElectroTech è una applicazione fatta in Qt5 per disegnare schemi elettrici.
QET usa il formato XML per i suoi elementi e schemi, includendo anche un editor per gli stessi.
-
- QElectroTech - приложение написанное на Qt5 и предназначено для разработки электрических схем.
- Приложение использует для хранения проектов и библиотек элементов файлы в XML формате. Приложение помимо редактора электричесих схем, содержит также редакторы элементов и редактор шаблонов листов.
+
+ QElectroTech is een Qt5 applicatie om elektrische schema's te ontwerpen.
+ Het maakt gebruik van XML-bestanden voor elementen en diagrammen, en omvat zowel een diagram bewerker, een element bewerker, en een bloksjabloon bewerker.
QElectroTech to aplikacja napisana w Qt5, przeznaczona do tworzenia schematów elektrycznych.
@@ -66,22 +83,10 @@
QElectroTech é uma aplicação baseada em Qt5 para desenhar esquemas eléctricos.
QET utiliza ficheiros XML para os elementos e para os esquemas e inclui um editor de esquemas e um editor de elementos.
-
- QElectroTech is een Qt5 applicatie om elektrische schema's te ontwerpen.
- Het maakt gebruik van XML-bestanden voor elementen en diagrammen, en omvat zowel een diagram bewerker, een element bewerker, en een bloksjabloon bewerker.
-
-
- QElectroTech is een Qt5 applicatie om elektrische schema's te ontwerpen.
- Het maakt gebruik van XML-bestanden voor elementen en diagrammen, en omvat zowel een diagram bewerker, een element bewerker, en ook een tielbloksjabloon bewerker.
-
-
- QElectroTech er et Qt5 program til at redigere elektriske diagrammer.
- Det bruger XML filer for symboler og diagrammer og inkluderer diagram, symbol og titelblok redigering.
-
+ QElectroTech - приложение написанное на Qt5 и предназначено для разработки электрических схем.
+ Приложение использует для хранения проектов и библиотек элементов файлы в XML формате. Приложение помимо редактора электричесих схем, содержит также редакторы элементов и редактор шаблонов листов.
+
http://qelectrotech.org
diff --git a/misc/qelectrotech.xml b/misc/qelectrotech.xml
index f5d00a668..276c6b9af 100644
--- a/misc/qelectrotech.xml
+++ b/misc/qelectrotech.xml
@@ -1,63 +1,63 @@
-
-
-
-
- QElectroTech project file
- QElectroTech Projektdatei
- Fichier projet QElectroTech
- QElectrotech ملف مشروع
- Fichero proyecto QElectroTech
- Fitxer projecte QElectroTech
- Файл проекта QElectroTech
- Ficheiro de projecto QElectroTech
- Soubor s projektem pro QElectroTech
- Plik projektu QElectrotech
- File del progetto QElectroTech
- Αρχείο έργου του QElectroTech
- QElectroTech project bestand
- QElectroTech project bestand
- QElectroTech projekt fil
- QElectroTech プロジェクト・ファイル
-
-
-
-
- QElectroTech element file
- QElectroTech Bauteildatei
- Fichier élément QElectroTech
- QElectrotech ملف مشروع
- Файл элемента QElectroTech
- Fichero elemento QElectroTech
- Fitxer símbol QElectroTech
- Ficheiro de projecto QElectroTech
- Soubor s prvkem pro QElectroTech
- Plik elementu QElectroTech
- File del progetto QElectroTech
- Αρχείο στοιχείου του QElectroTech
- QElectroTech element bestand
- QElectroTech element bestand
- QElectroTech symbol fil
- QElectroTech 要素ファイル
-
-
-
-
- QElectroTech title block template file
- QElectroTech Schriftfeld Vorlagedatei
- Modèle de cartouche QElectroTech
- QElectrotech نموذج إطار تعريف
- Файл шаблона основной надписи листа QElectroTech
- Szablon tabliczki rysunkowej QElectroTech
- Modelo de cartucho QElectroTech
- Model de bloc de títol QElectroTech
- Vzor záhlaví výkresu pro QElectroTech
- Modelo de moldura QElectroTech
- Modello di cartiglio per QElectroTech
- Πρότυπο πινακίδας του QElectroTech
- QElectroTech titel bloksjabloon
- QElectroTech titel bloksjabloon
- QElectroTech titelblok skabelon
- QElectroTech 表題欄テンプレート
-
-
-
+
+
+
+
+ QElectroTech project file
+ QElectrotech ملف مشروع
+ QElectroTech project bestand
+ Fitxer de projecte QElectroTech
+ Soubor s projektem pro QElectroTech
+ QElectroTech projekt fil
+ QElectroTech Projektdatei
+ Αρχείο έργου του QElectroTech
+ Fichero proyecto QElectroTech
+ Fichier projet QElectroTech
+ File del progetto QElectroTech
+ QElectroTech プロジェクト・ファイル
+ QElectroTech project bestand
+ Plik projektu QElectrotech
+ Ficheiro de projecto QElectroTech
+ Файл проекта QElectroTech
+
+
+
+
+ QElectroTech element file
+ QElectrotech ملف مشروع
+ QElectroTech element bestand
+ Fitxer d'element QElectroTech
+ Soubor s prvkem pro QElectroTech
+ QElectroTech symbol fil
+ QElectroTech Bauteildatei
+ Αρχείο στοιχείου του QElectroTech
+ Fichero elemento QElectroTech
+ Fichier élément QElectroTech
+ File del progetto QElectroTech
+ QElectroTech 要素ファイル
+ QElectroTech element bestand
+ Plik elementu QElectroTech
+ Ficheiro de projecto QElectroTech
+ Файл элемента QElectroTech
+
+
+
+
+ QElectroTech title block template file
+ QElectrotech نموذج إطار تعريف
+ QElectroTech titel bloksjabloon
+ Model de caixetí QElectroTech
+ Vzor záhlaví výkresu pro QElectroTech
+ QElectroTech titelblok skabelon
+ QElectroTech Schriftfeld Vorlagedatei
+ Πρότυπο πινακίδας του QElectroTech
+ Modelo de cartucho QElectroTech
+ Modèle de cartouche QElectroTech
+ Modello di cartiglio per QElectroTech
+ QElectroTech 表題欄テンプレート
+ QElectroTech titel bloksjabloon
+ Szablon tabliczki rysunkowej QElectroTech
+ Modelo de moldura QElectroTech
+ Файл шаблона основной надписи листа QElectroTech
+
+
+
diff --git a/qelectrotech.pro b/qelectrotech.pro
index d01819027..41ff33226 100644
--- a/qelectrotech.pro
+++ b/qelectrotech.pro
@@ -170,7 +170,8 @@ HEADERS += $$files(sources/*.h) \
$$files(sources/TerminalStrip/GraphicsItem/properties/*.h) \
$$files(sources/xml/*.h) \
$$files(sources/dxf/*.h) \
- $$files(sources/qet_elementscaler/*.h)
+ $$files(sources/qet_elementscaler/*.h) \
+ $$files(sources/svg/*.h)
SOURCES += $$files(sources/*.cpp) \
$$files(sources/editor/*.cpp) \
@@ -213,7 +214,8 @@ SOURCES += $$files(sources/*.cpp) \
$$files(sources/TerminalStrip/GraphicsItem/properties/*.cpp) \
$$files(sources/xml/*.cpp) \
$$files(sources/dxf/*.cpp) \
- $$files(sources/qet_elementscaler/*.cpp)
+ $$files(sources/qet_elementscaler/*.cpp) \
+ $$files(sources/svg/*.cpp)
# Needed for use promote QTreeWidget in terminalstripeditor.ui
INCLUDEPATH += sources/TerminalStrip/ui
diff --git a/sources/ElementsCollection/elementscollectionmodel.cpp b/sources/ElementsCollection/elementscollectionmodel.cpp
index 7e28f678e..b7305ffaa 100644
--- a/sources/ElementsCollection/elementscollectionmodel.cpp
+++ b/sources/ElementsCollection/elementscollectionmodel.cpp
@@ -172,10 +172,12 @@ bool ElementsCollectionModel::dropMimeData(const QMimeData *data,
const QModelIndex &parent)
{
Q_UNUSED(action)
- QStandardItem *qsi = itemFromIndex(
- parent.QModelIndex::model()->index(row, column));
- if (!qsi)
- qsi = itemFromIndex(parent);
+
+ const QAbstractItemModel* qaim = parent.QModelIndex::model();
+ if (! qaim) return false;
+
+ QStandardItem* qsi = itemFromIndex(qaim->index(row, column));
+ if (! qsi) qsi = itemFromIndex(parent);
if (qsi->type() == FileElementCollectionItem::Type)
{
diff --git a/sources/ElementsCollection/elementscollectionwidget.cpp b/sources/ElementsCollection/elementscollectionwidget.cpp
index d86a35266..584bfa6ae 100644
--- a/sources/ElementsCollection/elementscollectionwidget.cpp
+++ b/sources/ElementsCollection/elementscollectionwidget.cpp
@@ -591,37 +591,32 @@ void ElementsCollectionWidget::resetShowThisDir()
*/
void ElementsCollectionWidget::dirProperties()
{
- ElementCollectionItem *eci = elementCollectionItemForIndex(
- m_index_at_context_menu);
- //When the user right-clicks on the collection tree and
- //selects the collection property, the collection name,
- //file path and number of elements will be added
- //to the qInfo log file.
- qInfo() <
localName())
- <
elementsChild().size()
- <
(eci)->fileSystemPath());
- if (eci && eci->isDir()) {
- QString txt1 = tr("Le dossier %1 contient").arg(
- eci->localName());
- QString txt2 = tr("%n élément(s), répartie(s)",
- "",
- eci->elementsChild().size());
- QString txt3 = tr("dans %n dossier(s).",
- "" ,
- eci->directoriesChild().size());
- QString txt4 = tr("Chemin de la collection : %1").arg(
- eci->collectionPath());
- QString txt5;
+ ElementCollectionItem* eci =
+ elementCollectionItemForIndex(m_index_at_context_menu);
+
+ if (eci && eci->isDir())
+ {
+ QString filePath;
if (eci->type() == FileElementCollectionItem::Type) {
- txt5 = tr("Chemin dans le système de fichiers : %1")
- .arg(static_cast(eci)->fileSystemPath());
+ filePath = tr("Chemin dans le système de fichiers : %1")
+ .arg(
+ static_cast(eci)
+ ->fileSystemPath());
}
+ QString out =
+ tr("Le dossier %1 contient").arg(eci->localName()) % " "
+ % tr("%n élément(s), répartie(s)", "", eci->elementsChild().size())
+ % " "
+ % tr("dans %n dossier(s).", "", eci->directoriesChild().size())
+ % "\n\n"
+ % tr("Chemin de la collection : %1").arg(eci->collectionPath())
+ % "\n" % filePath;
+ qInfo() << out;
QMessageBox::information(
this,
tr("Propriété du dossier %1").arg(eci->localName()),
- txt1 % " " % txt2 % " " % txt3 % "\n\n" % txt4 % "\n" % txt5);
- }
+ out);
+ }
}
/**
diff --git a/sources/ElementsCollection/elementstreeview.cpp b/sources/ElementsCollection/elementstreeview.cpp
index e84b6a3ce..00f39b529 100644
--- a/sources/ElementsCollection/elementstreeview.cpp
+++ b/sources/ElementsCollection/elementstreeview.cpp
@@ -82,7 +82,11 @@ void ElementsTreeView::startElementDrag(const ElementsLocation &location)
{
if (! location.exist()) return;
+#if QT_VERSION < QT_VERSION_CHECK(6, 2, 0)
+ QDrag* drag = new QDrag(this);
+#else
QScopedPointer drag(new QDrag(this));
+#endif
QString location_str = location.toString();
QMimeData *mime_data = new QMimeData();
diff --git a/sources/NameList/nameslist.cpp b/sources/NameList/nameslist.cpp
index da814de8d..9e450cd31 100644
--- a/sources/NameList/nameslist.cpp
+++ b/sources/NameList/nameslist.cpp
@@ -174,11 +174,9 @@ void NamesList::fromXml(const pugi::xml_node &xml_element, const QHash names_iterator(map_names);
diff --git a/sources/SearchAndReplace/ui/searchandreplacewidget.cpp b/sources/SearchAndReplace/ui/searchandreplacewidget.cpp
index e32f10fca..51b553a2e 100644
--- a/sources/SearchAndReplace/ui/searchandreplacewidget.cpp
+++ b/sources/SearchAndReplace/ui/searchandreplacewidget.cpp
@@ -961,21 +961,21 @@ void SearchAndReplaceWidget::on_m_tree_widget_itemDoubleClicked(
else if (m_element_hash.keys().contains(item))
{
QPointer elmt = m_element_hash.value(item);
- if (elmt) {
+ if (elmt && elmt->diagram()) {
elmt.data()->diagram()->showMe();
}
}
else if (m_text_hash.keys().contains(item))
{
QPointer text = m_text_hash.value(item);
- if (text) {
+ if (text && text->diagram()) {
text.data()->diagram()->showMe();
}
}
else if (m_conductor_hash.keys().contains(item))
{
QPointer cond = m_conductor_hash.value(item);
- if (cond) {
+ if (cond && cond->diagram()) {
cond.data()->diagram()->showMe();
}
}
diff --git a/sources/TerminalStrip/GraphicsItem/demoterminalstrip.cpp b/sources/TerminalStrip/GraphicsItem/demoterminalstrip.cpp
index 02b74e4b8..7328a0096 100644
--- a/sources/TerminalStrip/GraphicsItem/demoterminalstrip.cpp
+++ b/sources/TerminalStrip/GraphicsItem/demoterminalstrip.cpp
@@ -35,13 +35,14 @@ namespace TerminalStripDrawer
const QUuid m_uuid;
};
- class DemoRealTerminal : public AbstractRealTerminalInterface
- {
- public:
- DemoRealTerminal(const QString &label, const QUuid &bridge) :
+ class DemoRealTerminal : public AbstractRealTerminalInterface
+ {
+ public:
+ DemoRealTerminal(const QString &label, const QString &xref, const QUuid &bridge) :
m_label { label },
+ m_xref{ xref },
m_bridge { bridge }
- {}
+ {}
QString label() const override {
return m_label;
@@ -55,10 +56,14 @@ namespace TerminalStripDrawer
return new DemoBridge { m_bridge };
}
- private:
- QString m_label;
- QUuid m_bridge;
- };
+ QString xref() const override {
+ return m_xref;
+ }
+
+ private:
+ QString m_label, m_xref;
+ QUuid m_bridge;
+ };
class DemoPhysicalTerminal : public AbstractPhysicalTerminalInterface
{
@@ -102,51 +107,63 @@ namespace TerminalStripDrawer
QVector > real_terminals_vector;
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("24vdc"),
- lvl_1)};
+ new DemoRealTerminal( QStringLiteral("24vdc"),
+ QStringLiteral("1_A1"),
+ lvl_1)};
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("0vdc"),
- lvl_2)};
+ new DemoRealTerminal( QStringLiteral("0vdc"),
+ QStringLiteral("1_A2"),
+ lvl_2)};
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("signal"),
- lvl_3)};
+ new DemoRealTerminal( QStringLiteral("signal"),
+ QStringLiteral("1_A3"),
+ lvl_3)};
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("teach"),
- lvl_4)};
+ new DemoRealTerminal( QStringLiteral("teach"),
+ QStringLiteral("1_A4"),
+ lvl_4)};
m_physical_terminal << QSharedPointer {
- new DemoPhysicalTerminal {real_terminals_vector}};
+ new DemoPhysicalTerminal {real_terminals_vector}};
- real_terminals_vector.clear();
+ real_terminals_vector.clear();
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("24vdc"),
- lvl_1)};
+ new DemoRealTerminal( QStringLiteral("24vdc"),
+ QStringLiteral("2_A1"),
+ lvl_1)};
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("0vdc"),
- lvl_2)};
+ new DemoRealTerminal( QStringLiteral("0vdc"),
+ QStringLiteral("2_A2"),
+ lvl_2)};
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("signal"),
- lvl_3)};
+ new DemoRealTerminal( QStringLiteral("signal"),
+ QStringLiteral("2_A3"),
+ lvl_3)};
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("teach"),
- lvl_4)};
+ new DemoRealTerminal( QStringLiteral("teach"),
+ QStringLiteral("2_A4"),
+ lvl_4)};
m_physical_terminal << QSharedPointer {
- new DemoPhysicalTerminal {real_terminals_vector}};
+ new DemoPhysicalTerminal {real_terminals_vector}};
- real_terminals_vector.clear();
+
+ real_terminals_vector.clear();
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("24vdc"),
- lvl_1)};
+ new DemoRealTerminal( QStringLiteral("24vdc"),
+ QStringLiteral("3_A1"),
+ lvl_1)};
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("0vdc"),
- lvl_2)};
+ new DemoRealTerminal( QStringLiteral("0vdc"),
+ QStringLiteral("3_A2"),
+ lvl_2)};
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("signal"),
- lvl_3)};
+ new DemoRealTerminal( QStringLiteral("signal"),
+ QStringLiteral("3_A3"),
+ lvl_3)};
real_terminals_vector << QSharedPointer {
- new DemoRealTerminal( QStringLiteral("teach"),
- lvl_4)};
+ new DemoRealTerminal( QStringLiteral("teach"),
+ QStringLiteral("3_A4"),
+ lvl_4)};
m_physical_terminal << QSharedPointer {
- new DemoPhysicalTerminal {real_terminals_vector}};
- }
-
+ new DemoPhysicalTerminal {real_terminals_vector}};
+ }
}
diff --git a/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.cpp b/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.cpp
index f0b8801c9..89dec80be 100644
--- a/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.cpp
+++ b/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2022 The QElectroTech Team
+ Copyright 2006-2025 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
@@ -16,16 +16,24 @@
along with QElectroTech. If not, see .
*/
#include "terminalstriplayoutpattern.h"
-#include
+#include "../../../utils/qetutils.h"
TerminalStripLayoutPattern::TerminalStripLayoutPattern()
{
+ m_font.setPixelSize(15);
updateHeaderTextOption();
updateTerminalsTextOption();
}
+/**
+ * @brief TerminalStripLayoutPattern::setHeaderTextAlignment
+ * Set text alignment to @param alignment. If alignment have no
+ * flag this function do nothing
+ * @param alignment
+ */
void TerminalStripLayoutPattern::setHeaderTextAlignment(const Qt::Alignment &alignment)
{
+ if (!alignment) return;
m_header_text_alignment = alignment;
updateHeaderTextOption();
}
@@ -39,22 +47,61 @@ QTextOption TerminalStripLayoutPattern::headerTextOption() const {
return m_header_text_option;
}
-void TerminalStripLayoutPattern::setTerminalsTextAlignment(const QVector &alignment)
+QFont TerminalStripLayoutPattern::font() const {
+ return m_font;
+}
+
+void TerminalStripLayoutPattern::setFont(const QFont &font) {
+ m_font = font;
+ QETUtils::pixelSizedFont(m_font);
+}
+
+/**
+ * @brief TerminalStripLayoutPattern::setTerminalsTextAlignment
+ * Set text alignment to @param alignment. If alignment have no
+ * flag this function do nothing
+ * @param alignment
+ */
+void TerminalStripLayoutPattern::setTerminalsTextAlignment(const Qt::Alignment &alignment)
{
+ if (!alignment) return;
m_terminals_text_alignment = alignment;
updateTerminalsTextOption();
}
-QVector TerminalStripLayoutPattern::terminalsTextAlignment() const
+Qt::Alignment TerminalStripLayoutPattern::terminalsTextAlignment() const
{
return m_terminals_text_alignment;
}
-QVector TerminalStripLayoutPattern::terminalsTextOption() const
+QTextOption TerminalStripLayoutPattern::terminalsTextOption() const
{
return m_terminals_text_option;
}
+/**
+ * @brief TerminalStripLayoutPattern::setXrefTextAlignment
+ * Set text alignment to @param alignment. If alignment have no
+ * flag this function do nothing
+ * @param alignment
+ */
+void TerminalStripLayoutPattern::setXrefTextAlignment(const Qt::Alignment &alignment)
+{
+ if (!alignment) return;
+ m_xref_text_alignment = alignment;
+ updateTerminalsTextOption();
+}
+
+Qt::Alignment TerminalStripLayoutPattern::xrefTextAlignment() const
+{
+ return m_xref_text_alignment;
+}
+
+QTextOption TerminalStripLayoutPattern::xrefTextOption() const
+{
+ return m_xref_text_option;
+}
+
void TerminalStripLayoutPattern::updateHeaderTextOption()
{
m_header_text_option.setAlignment(m_header_text_alignment);
@@ -63,16 +110,9 @@ void TerminalStripLayoutPattern::updateHeaderTextOption()
void TerminalStripLayoutPattern::updateTerminalsTextOption()
{
- if (m_terminals_text_option.size() ==
- m_terminals_text_alignment.size())
- {
- for (auto i = 0 ; i
#include
#include
#include
@@ -43,45 +44,46 @@ class TerminalStripLayoutPattern
TerminalStripLayoutPattern();
//Header of terminal strip
- QRect m_header_rect{0,30,50,130};
+ QRectF m_header_rect{0,30,50,130};
Qt::Orientation m_header_text_orientation{Qt::Horizontal};
void setHeaderTextAlignment(const Qt::Alignment &alignment);
Qt::Alignment headerTextAlignment() const;
QTextOption headerTextOption() const;
//Spacer between the header and the terminals
- QRect m_spacer_rect{0, 50, 10, 90};
+ QRectF m_spacer_rect{0, 50, 10, 90};
+
+ //Font
+ QFont font() const;
+ void setFont (const QFont &font);
//Terminals
- QVector m_terminal_rect
+ QVector m_terminal_rect
{
- QRect{0, 0, 20, 190},
- QRect{0, 10, 20, 170},
- QRect{0, 20, 20, 150},
- QRect{0, 30, 20, 130}
+ QRectF{0, 0, 20, 190},
+ QRectF{0, 10, 20, 170},
+ QRectF{0, 20, 20, 150},
+ QRectF{0, 30, 20, 130}
};
- void setTerminalsTextAlignment(const QVector &alignment);
- QVector terminalsTextAlignment() const;
- QVector terminalsTextOption() const;
+ //Terminal text
+ void setTerminalsTextAlignment(const Qt::Alignment &alignment);
+ Qt::Alignment terminalsTextAlignment() const;
+ QTextOption terminalsTextOption() const;
+ qreal m_terminals_text_height{50};
+ qreal m_terminals_text_y{35};
+ Qt::Orientation m_terminals_text_orientation {Qt::Vertical};
- QVector m_terminals_text_rect
- {
- QRect{0,35,20,50},
- QRect{0,35,20,50},
- QRect{0,35,20,50},
- QRect{0,35,20,50}
- };
- QVector m_terminals_text_orientation
- {
- Qt::Vertical,
- Qt::Vertical,
- Qt::Vertical,
- Qt::Vertical
- };
+ //Xref text
+ void setXrefTextAlignment(const Qt::Alignment &alignment);
+ Qt::Alignment xrefTextAlignment() const;
+ QTextOption xrefTextOption() const;
+ qreal m_xref_text_height{60};
+ qreal m_xref_text_y{95};
+ Qt::Orientation m_xref_text_orientation {Qt::Vertical};
- int m_bridge_point_d{5};
- QVector m_bridge_point_y_offset{50,70,90,110};
+ qreal m_bridge_point_d{5};
+ QVector m_bridge_point_y_offset{50,70,90,110};
QUuid m_uuid{QUuid::createUuid()};
QString m_name;
@@ -90,24 +92,17 @@ class TerminalStripLayoutPattern
void updateHeaderTextOption();
void updateTerminalsTextOption();
- private:
+ private:
+ QFont m_font;
Qt::Alignment m_header_text_alignment{Qt::AlignCenter};
QTextOption m_header_text_option;
- QVector m_terminals_text_alignment
- {
- Qt::AlignRight | Qt::AlignVCenter,
- Qt::AlignRight | Qt::AlignVCenter,
- Qt::AlignRight | Qt::AlignVCenter,
- Qt::AlignRight | Qt::AlignVCenter
- };
- QVector m_terminals_text_option
- {
- QTextOption(),
- QTextOption(),
- QTextOption(),
- QTextOption()
- };
+ Qt::Alignment
+ m_terminals_text_alignment {Qt::AlignRight | Qt::AlignVCenter},
+ m_xref_text_alignment {Qt::AlignLeft | Qt::AlignVCenter};
+ QTextOption
+ m_terminals_text_option{QTextOption()},
+ m_xref_text_option{QTextOption()};
};
#endif // TERMINALSTRIPLAYOUTPATTERN_H
diff --git a/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp b/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp
index 16c2b5146..5bb7ab6f4 100644
--- a/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp
+++ b/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp
@@ -16,6 +16,7 @@
along with QElectroTech. If not, see .
*/
#include "terminalstripdrawer.h"
+
#include
namespace TerminalStripDrawer {
@@ -42,12 +43,13 @@ void TerminalStripDrawer::setStrip(QSharedPointersave();
+ if (m_strip && m_pattern)
+ {
+ m_united_xref_text_rect = QRectF();
+ //To draw text, QPainter need a Qrect. Instead of create an instance
+ //for each text, we re-use the same instance of QRect.
+ QRect text_rect;
+ painter->save();
auto pen_{painter->pen()};
pen_.setColor(Qt::black);
@@ -56,16 +58,20 @@ void TerminalStripDrawer::paint(QPainter *painter)
auto brush_ = painter->brush();
brush_.setColor(Qt::white);
- painter->setPen(pen_);
- painter->setBrush(brush_);
+ painter->setFont(m_pattern->font());
- if (m_preview_draw)
- {
- painter->save();
- painter->setPen(Qt::blue);
- painter->drawRect(boundingRect());
- painter->restore();
- }
+ painter->setPen(pen_);
+ painter->setBrush(brush_);
+
+ if (m_preview_draw)
+ {
+ painter->save();
+ painter->setPen(Qt::blue);
+ painter->drawRect(boundingRect());
+ painter->drawLine(QPointF{boundingRect().left(), boundingRect().center().y()},
+ QPointF{boundingRect().right(), boundingRect().center().y()});
+ painter->restore();
+ }
//Draw header
painter->drawRect(m_pattern->m_header_rect);
@@ -84,14 +90,13 @@ void TerminalStripDrawer::paint(QPainter *painter)
text_rect.setRect(0,0,m_pattern->m_header_rect.height(),m_pattern->m_header_rect.width());
}
- const auto text_{m_strip->installation() + " " + m_strip->location() + " " + m_strip->name()};
- painter->drawText(text_rect, text_, m_pattern->headerTextOption());
+ const auto text_{m_strip->installation() + " " + m_strip->location() + " " + m_strip->name()};
+ painter->drawText(text_rect, text_, m_pattern->headerTextOption());
painter->restore();
- //Move painter pos to next drawing
- painter->translate(m_pattern->m_header_rect.width(),0);
-
- int x_offset{m_pattern->m_header_rect.width()};
+ //Move painter pos to next drawing
+ painter->translate(m_pattern->m_header_rect.width(),0);
+ qreal x_offset{m_pattern->m_header_rect.width()};
//Draw spacer
painter->drawRect(m_pattern->m_spacer_rect);
@@ -99,22 +104,30 @@ void TerminalStripDrawer::paint(QPainter *painter)
painter->translate(m_pattern->m_spacer_rect.width(),0);
x_offset += m_pattern->m_spacer_rect.width();
+ //Draw terminals
+ const auto terminals_text_orientation{m_pattern->m_terminals_text_orientation};
+ const auto terminals_text_option{m_pattern->terminalsTextOption()};
+ const auto terminals_text_height{m_pattern->m_terminals_text_height};
+ const auto terminals_text_y{m_pattern->m_terminals_text_y};
+ QRectF terminal_rect;
- //Draw terminals
- const auto terminals_text_rect{m_pattern->m_terminals_text_rect};
- const auto terminals_text_orientation{m_pattern->m_terminals_text_orientation};
- const auto terminals_text_option{m_pattern->terminalsTextOption()};
- QRect terminal_rect;
+ const auto xref_text_orientation{m_pattern->m_xref_text_orientation};
+ const auto xref_text_option{m_pattern->xrefTextOption()};
+ const auto xref_text_height{m_pattern->m_xref_text_height};
+ const auto xref_text_y{m_pattern->m_xref_text_y};
+ QRectF xref_rect;
QHash> bridges_anchor_points;
- //Loop over physical terminals
- for (const auto &physical_t : m_strip->physicalTerminal())
- {
- //Get the good offset according to how many level have the current physical terminal
- const QVector> real_terminal_vector{physical_t->realTerminals()};
- const auto real_t_count{real_terminal_vector.size()};
- const auto offset_{4 - real_t_count};
+ m_hovered_xref = hoverTerminal{};
+ int physical_index = 0;
+ //Loop over physical terminals
+ for (const auto &physical_t : m_strip->physicalTerminal())
+ {
+ //Get the good offset according to how many level have the current physical terminal
+ const QVector> real_terminal_vector{physical_t->realTerminals()};
+ const auto real_t_count{real_terminal_vector.size()};
+ const auto offset_{4 - real_t_count};
//Loop over real terminals
for (auto i=0 ; im_terminal_rect[index_];
- //Draw terminal rect
- painter->drawRect(terminal_rect);
- //Draw a stronger line if the current terminal have level
- //and the current level is the first
- if (real_t_count > 1 && i == 0)
- {
- painter->save();
- pen_ = painter->pen();
- pen_.setWidth(4);
- pen_.setCapStyle(Qt::FlatCap);
- painter->setPen(pen_);
- const auto p1 { terminal_rect.topLeft() };
- //We can't use terminal_rect.bottomLeft for p2 because
- //the returned value deviate from the true value
- //(see Qt documentation about QRect)
- const QPoint p2 { p1.x(), p1.y() + terminal_rect.height() };
- painter->drawLine(p1, p2);
- painter->restore();
+ terminal_rect = m_pattern->m_terminal_rect[index_];
+ //Draw terminal rect
+ painter->drawRect(terminal_rect);
+ //Draw a stronger line if the current terminal have level
+ //and the current level is the first
+ if (real_t_count > 1 && i == 0)
+ {
+ painter->save();
+ pen_ = painter->pen();
+ pen_.setWidth(4);
+ pen_.setCapStyle(Qt::FlatCap);
+ painter->setPen(pen_);
+ const auto p1 { terminal_rect.topLeft() };
+ //We can't use terminal_rect.bottomLeft for p2 because
+ //the returned value deviate from the true value
+ //(see Qt documentation about QRect)
+ const QPointF p2 { p1.x(), p1.y() + terminal_rect.height() };
+ painter->drawLine(p1, p2);
+ painter->restore();
+ }
+
+ if(m_preview_draw)
+ {
+ painter->save();
+ painter->setPen(Qt::yellow);
+ painter->drawLine(QPointF{terminal_rect.x(), terminal_rect.y() + terminal_rect.height()/2},
+ QPointF{terminal_rect.width(), terminal_rect.y() + terminal_rect.height()/2});
+ painter->restore();
}
- //Draw text
- painter->save();
- if (terminals_text_orientation[index_] == Qt::Horizontal)
- {
- text_rect = terminals_text_rect[index_];
- }
- else
- {
- const auto rect_{terminals_text_rect[index_]};
- painter->translate(rect_.bottomLeft());
- painter->rotate(270);
- text_rect.setRect(0, 0, rect_.height(), terminal_rect.width());
- }
+ //Draw text
+ painter->save();
+ text_rect.setRect(0, terminals_text_y, terminal_rect.width(), terminals_text_height);
+ if (terminals_text_orientation == Qt::Vertical)
+ {
+ painter->translate(text_rect.bottomLeft());
+ painter->rotate(270);
+ text_rect.setRect(0, 0, text_rect.height(), text_rect.width());
+ }
- const auto shared_real_terminal{real_terminal_vector[i]};
+ const auto shared_real_terminal{real_terminal_vector[i]};
painter->drawText(text_rect,
shared_real_terminal ? shared_real_terminal->label() : QLatin1String(),
- terminals_text_option[index_]);
+ terminals_text_option);
if (m_preview_draw)
{
@@ -172,16 +190,60 @@ void TerminalStripDrawer::paint(QPainter *painter)
painter->restore();
- //Add bridge anchor
- if (shared_real_terminal->isBridged())
+ //Draw xref
+ xref_rect.setRect(0, xref_text_y, terminal_rect.width(), xref_text_height);
+ painter->save();
+ if (xref_text_orientation == Qt::Vertical)
{
- painter->save();
- if (QScopedPointer bridge_ {
- shared_real_terminal->bridge() })
- {
- const auto x_anchor{terminal_rect.width()/2};
- const auto y_anchor {m_pattern->m_bridge_point_y_offset[index_]};
- const auto radius_anchor{m_pattern->m_bridge_point_d/2};
+ painter->translate(xref_rect.bottomLeft());
+ painter->rotate(270);
+ xref_rect.setRect(0, 0, xref_rect.height(), xref_rect.width());
+ }
+
+ QTransform transform;
+ transform.translate(x_offset, 0);
+
+ if (xref_text_orientation == Qt::Vertical)
+ {
+ transform.translate(0, xref_text_y + xref_text_height);
+ transform.rotate(270);
+ }
+
+ auto xref_string = shared_real_terminal->xref();
+
+ const auto mapped_xref_text_rect = transform.mapRect(painter->boundingRect(xref_rect, xref_string, xref_text_option));
+ if (m_united_xref_text_rect.isNull()) {
+ m_united_xref_text_rect = mapped_xref_text_rect;
+ } else {
+ m_united_xref_text_rect = m_united_xref_text_rect.united(mapped_xref_text_rect);
+ }
+
+ //if mouse hover the xref text, draw it in blue to advise user the xref is clickable.
+ if (!m_mouse_hover_pos.isNull() && mapped_xref_text_rect.contains(m_mouse_hover_pos)) {
+ painter->setPen(Qt::blue);
+ m_hovered_xref.physical = physical_index;
+ m_hovered_xref.real = i;
+ }
+
+ painter->drawText(xref_rect, xref_string, xref_text_option);
+
+ if (m_preview_draw)
+ {
+ painter->setPen(Qt::blue);
+ painter->drawRect(xref_rect);
+ }
+ painter->restore();
+
+ //Add bridge anchor
+ if (shared_real_terminal->isBridged())
+ {
+ painter->save();
+ if (QScopedPointer bridge_ {
+ shared_real_terminal->bridge() })
+ {
+ const auto x_anchor{terminal_rect.width()/2};
+ const auto y_anchor {m_pattern->m_bridge_point_y_offset[index_]};
+ const auto radius_anchor{m_pattern->m_bridge_point_d/2};
painter->setBrush(Qt::SolidPattern);
painter->drawEllipse(QPointF(x_anchor, y_anchor),
@@ -194,12 +256,13 @@ void TerminalStripDrawer::paint(QPainter *painter)
painter->restore();
}
- //Move painter pos to next drawing
- painter->translate(terminal_rect.width(),0);
- x_offset += terminal_rect.width();
- }
- }
- painter->restore();
+ //Move painter pos to next drawing
+ painter->translate(terminal_rect.width(),0);
+ x_offset += terminal_rect.width();
+ }
+ physical_index++;
+ }
+ painter->restore();
//Draw the bridges
for (const auto &points_ : qAsConst(bridges_anchor_points))
@@ -216,7 +279,7 @@ void TerminalStripDrawer::paint(QPainter *painter)
QRectF TerminalStripDrawer::boundingRect() const
{
- return QRect{0, 0, width(), height()};;
+ return QRectF{0, 0, width(), height()};;
}
void TerminalStripDrawer::setLayout(QSharedPointer layout)
@@ -233,7 +296,42 @@ void TerminalStripDrawer::setPreviewDraw(bool draw) {
m_preview_draw = draw;
}
-int TerminalStripDrawer::height() const
+void TerminalStripDrawer::setMouseHoverPos(const QPointF &pos)
+{
+ m_last_mouse_pos_in_xrefs_rect = m_united_xref_text_rect.contains(m_mouse_hover_pos);
+ m_mouse_hover_pos = pos;
+}
+
+/**
+ * @brief TerminalStripDrawer::mouseHoverXref
+ * @return True if the mouse position (given through the function setMouseHoverPos)
+ * hover the rect of a xref.
+ */
+bool TerminalStripDrawer::mouseHoverXref() const {
+ return m_united_xref_text_rect.contains(m_mouse_hover_pos);
+}
+
+bool TerminalStripDrawer::needUpdate()
+{
+ if (mouseHoverXref()) {
+ return true;
+ } else if (m_last_mouse_pos_in_xrefs_rect) {
+ return true;
+ }
+ return false;
+}
+
+/**
+ * @brief TerminalStripDrawer::hoveredXref
+ * @return the current terminal hovered by the mouse
+ * in the xref bounding rectangle
+ */
+hoverTerminal TerminalStripDrawer::hoveredXref() const
+{
+ return m_hovered_xref;
+}
+
+qreal TerminalStripDrawer::height() const
{
if (m_pattern)
{
@@ -251,11 +349,11 @@ int TerminalStripDrawer::height() const
return 0;
}
-int TerminalStripDrawer::width() const
+qreal TerminalStripDrawer::width() const
{
- if (m_pattern)
- {
- int width_{m_pattern->m_header_rect.width() + m_pattern->m_spacer_rect.width()};
+ if (m_pattern)
+ {
+ qreal width_{m_pattern->m_header_rect.width() + m_pattern->m_spacer_rect.width()};
if (m_strip)
{
diff --git a/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.h b/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.h
index e7e3c1f72..fea1b44dc 100644
--- a/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.h
+++ b/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.h
@@ -27,23 +27,35 @@ class TerminalStrip;
namespace TerminalStripDrawer
{
- class AbstractBridgeInterface
- {
- public:
- AbstractBridgeInterface() {}
- virtual ~AbstractBridgeInterface() {}
- virtual QUuid uuid() const = 0;
+ /**
+ * @brief The hoverTerminal struct
+ * Just a little struct use to know what is the physical and real terminal
+ * when the mouse hover the Xref string of a terminal.
+ * If mouse don't hover a Xref the value is set to -1;
+ */
+ struct hoverTerminal{
+ int physical{-1};
+ int real{-1};
};
- class AbstractRealTerminalInterface
- {
- public:
- AbstractRealTerminalInterface() {}
- virtual ~AbstractRealTerminalInterface() {}
- virtual QString label() const = 0;
- virtual bool isBridged() const = 0;
- virtual AbstractBridgeInterface* bridge() const = 0;
- };
+ class AbstractBridgeInterface
+ {
+ public:
+ AbstractBridgeInterface() {}
+ virtual ~AbstractBridgeInterface() {}
+ virtual QUuid uuid() const = 0;
+ };
+
+ class AbstractRealTerminalInterface
+ {
+ public:
+ AbstractRealTerminalInterface() {}
+ virtual ~AbstractRealTerminalInterface() {}
+ virtual QString label() const = 0;
+ virtual bool isBridged() const = 0;
+ virtual AbstractBridgeInterface* bridge() const = 0;
+ virtual QString xref() const = 0;
+ };
class AbstractPhysicalTerminalInterface
{
@@ -79,15 +91,24 @@ namespace TerminalStripDrawer
void setPreviewDraw(bool draw = true);
- private:
- int height() const;
- int width() const;
+ void setMouseHoverPos(const QPointF &pos);
+ bool mouseHoverXref() const;
+ bool needUpdate();
+ hoverTerminal hoveredXref() const;
- private:
- QSharedPointer m_strip;
- QSharedPointer m_pattern;
- bool m_preview_draw { false };
- };
+ private:
+ qreal height() const;
+ qreal width() const;
+
+ private:
+ QSharedPointer m_strip;
+ QSharedPointer m_pattern;
+ bool m_preview_draw { false };
+ QPointF m_mouse_hover_pos;
+ QRectF m_united_xref_text_rect;
+ bool m_last_mouse_pos_in_xrefs_rect{false};
+ hoverTerminal m_hovered_xref;
+ };
}
#endif // TERMINALSTRIPDRAWER_H
diff --git a/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp b/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp
index 48650a629..b4415bb3d 100644
--- a/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp
+++ b/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2022 The QElectroTech Team
+ Copyright 2006-2025 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
@@ -22,6 +22,8 @@
#include "../../project/projectpropertieshandler.h"
#include "../../qetgraphicsitem/qgraphicsitemutility.h"
#include "../terminalstrip.h"
+#include "../physicalterminal.h"
+#include "../realterminal.h"
#include "../ui/terminalstripeditorwindow.h"
#include "trueterminalstrip.h"
@@ -94,12 +96,52 @@ QString TerminalStripItem::name() const {
return tr("plan de bornes");
}
+void TerminalStripItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
+{
+ QetGraphicsItem::hoverMoveEvent(event);
+ m_drawer.setMouseHoverPos(hoverMousePos());
+ if (m_drawer.needUpdate()) {
+ update();
+ }
+}
+
+void TerminalStripItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
+{
+ QetGraphicsItem::hoverLeaveEvent(event);
+ m_drawer.setMouseHoverPos(QPointF{});
+}
+
void TerminalStripItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
Q_UNUSED (event);
+ const auto hovered = m_drawer.hoveredXref();
+
if (m_strip) {
- TerminalStripEditorWindow::edit(m_strip);
+ if (hovered.physical >= 0 &&
+ hovered.real >= 0)
+ {
+ if (const auto physical_terminal = m_strip->physicalTerminal(hovered.physical);
+ !physical_terminal.isNull())
+ {
+ if (const auto real_terminal = physical_terminal->realTerminal(hovered.real);
+ !real_terminal.isNull() &&
+ real_terminal->isElement())
+ {
+ if (QPointer element = real_terminal->element();
+ !element.isNull())
+ {
+ //Unselect and ungrab mouse to prevent unwanted
+ //move when element is in the same scene of this.
+ setSelected(false);
+ ungrabMouse();
+ QetGraphicsItem::showItem(element);
+ }
+ }
+ }
+ } else {
+ TerminalStripEditorWindow::edit(m_strip);
+ }
}
}
diff --git a/sources/TerminalStrip/GraphicsItem/terminalstripitem.h b/sources/TerminalStrip/GraphicsItem/terminalstripitem.h
index 60eff199e..7c9dc1f5a 100644
--- a/sources/TerminalStrip/GraphicsItem/terminalstripitem.h
+++ b/sources/TerminalStrip/GraphicsItem/terminalstripitem.h
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2022 The QElectroTech Team
+ Copyright 2006-2025 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
@@ -46,18 +46,19 @@ class TerminalStripItem : public QetGraphicsItem
QRectF boundingRect() const override;
QString name() const override;
- void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
- void refreshPending();
- void setLayout(QSharedPointer layout);
+ void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override;
+ void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override;
+ void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
+ void refreshPending();
+ void setLayout(QSharedPointer layout);
private:
void setDefaultLayout();
private:
QPointer m_strip;
- TerminalStripDrawer::TerminalStripDrawer m_drawer;
- QUuid m_pending_strip_uuid;
-
+ TerminalStripDrawer::TerminalStripDrawer m_drawer;
+ QUuid m_pending_strip_uuid;
};
#endif // TERMINALSTRIPITEM_H
diff --git a/sources/TerminalStrip/GraphicsItem/trueterminalstrip.cpp b/sources/TerminalStrip/GraphicsItem/trueterminalstrip.cpp
index 8e230272c..5ba160aef 100644
--- a/sources/TerminalStrip/GraphicsItem/trueterminalstrip.cpp
+++ b/sources/TerminalStrip/GraphicsItem/trueterminalstrip.cpp
@@ -20,6 +20,7 @@
#include "../realterminal.h"
#include "../terminalstrip.h"
#include "../terminalstripbridge.h"
+#include "../../autoNum/assignvariables.h"
#include "terminalstripdrawer.h"
@@ -118,9 +119,18 @@ namespace TerminalStripDrawer
return new TrueBridge(m_real->bridge());
}
- TrueBridge::TrueBridge(QSharedPointer bridge) :
- m_bridge { bridge }
- {}
+ QString TrueRealTerminal::xref() const
+ {
+ if (m_real && m_real->isElement()) {
+ return autonum::AssignVariables::genericXref(m_real->element());
+ } else {
+ return QString{};
+ }
+ }
+
+ TrueBridge::TrueBridge(QSharedPointer bridge) :
+ m_bridge { bridge }
+ {}
QUuid TrueBridge::uuid() const
{
diff --git a/sources/TerminalStrip/GraphicsItem/trueterminalstrip.h b/sources/TerminalStrip/GraphicsItem/trueterminalstrip.h
index 27b5cb7e1..03bafa916 100644
--- a/sources/TerminalStrip/GraphicsItem/trueterminalstrip.h
+++ b/sources/TerminalStrip/GraphicsItem/trueterminalstrip.h
@@ -51,13 +51,14 @@ namespace TerminalStripDrawer
QSharedPointer m_physical;
};
- class TrueRealTerminal : public AbstractRealTerminalInterface
- {
- public:
- TrueRealTerminal(QSharedPointer real);
- QString label() const override;
- bool isBridged() const override;
- AbstractBridgeInterface* bridge() const override;
+ class TrueRealTerminal : public AbstractRealTerminalInterface
+ {
+ public:
+ TrueRealTerminal(QSharedPointer real);
+ QString label() const override;
+ bool isBridged() const override;
+ AbstractBridgeInterface* bridge() const override;
+ QString xref() const override;
private:
QSharedPointer m_real;
diff --git a/sources/TerminalStrip/physicalterminal.cpp b/sources/TerminalStrip/physicalterminal.cpp
index f9c06de3e..2b7548416 100644
--- a/sources/TerminalStrip/physicalterminal.cpp
+++ b/sources/TerminalStrip/physicalterminal.cpp
@@ -189,6 +189,20 @@ QVector> PhysicalTerminal::realTerminals() const {
return m_real_terminal;
}
+/**
+ * @brief PhysicalTerminal::realTerminal
+ * @param pos
+ * @return the real terminal at position pos.
+ * Note that the returned QSharedPointer can be null
+ */
+QSharedPointer PhysicalTerminal::realTerminal(int pos) const
+{
+ if (pos < m_real_terminal.size()) {
+ return m_real_terminal.at(pos);
+ }
+ else return QSharedPointer{};
+}
+
/**
* @brief uuid
* @return the uuid of this physical terminal
diff --git a/sources/TerminalStrip/physicalterminal.h b/sources/TerminalStrip/physicalterminal.h
index 4e2fe4576..af38831a1 100644
--- a/sources/TerminalStrip/physicalterminal.h
+++ b/sources/TerminalStrip/physicalterminal.h
@@ -86,6 +86,7 @@ class PhysicalTerminal
int levelCount() const;
int levelOf(const QSharedPointer &terminal) const;
QVector> realTerminals() const;
+ QSharedPointer realTerminal(int pos) const;
QUuid uuid() const;
int pos() const;
int realTerminalCount() const;
diff --git a/sources/TerminalStrip/terminalstrip.cpp b/sources/TerminalStrip/terminalstrip.cpp
index 2222a50fb..6b4b202d1 100644
--- a/sources/TerminalStrip/terminalstrip.cpp
+++ b/sources/TerminalStrip/terminalstrip.cpp
@@ -1037,8 +1037,10 @@ bool TerminalStrip::fromXml(QDomElement &xml_element)
}
}
- auto raw_ptr = new PhysicalTerminal(this, real_t_vector);
- m_physical_terminals.append(raw_ptr->sharedRef());
+ if (!real_t_vector.isEmpty()) {
+ auto raw_ptr = new PhysicalTerminal(this, real_t_vector);
+ m_physical_terminals.append(raw_ptr->sharedRef());
+ }
}
}
diff --git a/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp b/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp
index c6c843b3d..2560c5754 100644
--- a/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp
+++ b/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2022 The QElectroTech Team
+ Copyright 2006-2025 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
diff --git a/sources/TerminalStrip/ui/addterminalstripitemdialog.h b/sources/TerminalStrip/ui/addterminalstripitemdialog.h
index e7eae36f9..5aa0d1278 100644
--- a/sources/TerminalStrip/ui/addterminalstripitemdialog.h
+++ b/sources/TerminalStrip/ui/addterminalstripitemdialog.h
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2022 The QElectroTech Team
+ Copyright 2006-2025 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
diff --git a/sources/TerminalStrip/ui/freeterminaleditor.cpp b/sources/TerminalStrip/ui/freeterminaleditor.cpp
index d538427d2..4adebcc4d 100644
--- a/sources/TerminalStrip/ui/freeterminaleditor.cpp
+++ b/sources/TerminalStrip/ui/freeterminaleditor.cpp
@@ -32,16 +32,20 @@
*/
FreeTerminalEditor::FreeTerminalEditor(QETProject *project, QWidget *parent) :
QWidget(parent),
- ui(new Ui::FreeTerminalEditor),
- m_project(project)
+ ui(new Ui::FreeTerminalEditor),
+ m_project(project)
{
ui->setupUi(this);
ui->m_table_view->setItemDelegate(new FreeTerminalModelDelegate(ui->m_table_view));
- m_model = new FreeTerminalModel(m_project, this);
+ m_model = new FreeTerminalModel(m_project, this);
ui->m_table_view->setModel(m_model);
ui->m_table_view->setCurrentIndex(m_model->index(0,0));
+ if (m_project) {
+ connect(m_project, &QObject::destroyed, this, &FreeTerminalEditor::reload);
+ }
+
//Disabled the move if the table is currently edited (yellow cell)
connect(m_model, &FreeTerminalModel::dataChanged, this, [=] {
this->setDisabledMove();
@@ -135,6 +139,31 @@ void FreeTerminalEditor::apply()
reload();
}
+/**
+ * @brief FreeTerminalEditor::setProject
+ * Set @project as project handled by this editor.
+ * If a previous project was setted, everything is clear.
+ * This function track the destruction of the project,
+ * that mean if the project pointer is deleted
+ * no need to call this function with a nullptr,
+ * everything is made inside this class.
+ * @param project
+ */
+void FreeTerminalEditor::setProject(QETProject *project)
+{
+ if(m_project) {
+ disconnect(m_project, &QObject::destroyed, this, &FreeTerminalEditor::reload);
+ }
+ m_project = project;
+ if (m_model) {
+ m_model->setProject(project);
+ }
+ if (m_project) {
+ connect(m_project, &QObject::destroyed, this, &FreeTerminalEditor::reload);
+ }
+ reload();
+}
+
void FreeTerminalEditor::on_m_type_cb_activated(int index)
{
if (m_model)
diff --git a/sources/TerminalStrip/ui/freeterminaleditor.h b/sources/TerminalStrip/ui/freeterminaleditor.h
index 09f80b0a9..a2437fea0 100644
--- a/sources/TerminalStrip/ui/freeterminaleditor.h
+++ b/sources/TerminalStrip/ui/freeterminaleditor.h
@@ -19,8 +19,8 @@
#define FREETERMINALEDITOR_H
#include
+#include "../../qetproject.h"
-class QETProject;
class RealTerminal;
class FreeTerminalModel;
class QTableView;
@@ -40,6 +40,8 @@ class FreeTerminalEditor : public QWidget
void reload();
void apply();
+ void setProject(QETProject *project);
+
private slots:
void on_m_type_cb_activated(int index);
void on_m_function_cb_activated(int index);
@@ -52,7 +54,7 @@ class FreeTerminalEditor : public QWidget
private:
Ui::FreeTerminalEditor *ui;
- QETProject *m_project = nullptr;
- FreeTerminalModel *m_model = nullptr;
+ QPointer m_project;
+ FreeTerminalModel *m_model {nullptr};
};
#endif // FREETERMINALEDITOR_H
diff --git a/sources/TerminalStrip/ui/freeterminalmodel.cpp b/sources/TerminalStrip/ui/freeterminalmodel.cpp
index 546851ea7..bf5bc2296 100644
--- a/sources/TerminalStrip/ui/freeterminalmodel.cpp
+++ b/sources/TerminalStrip/ui/freeterminalmodel.cpp
@@ -56,10 +56,30 @@ FreeTerminalModel::Column FreeTerminalModel::columnTypeForIndex(const QModelInde
* @param parent
*/
FreeTerminalModel::FreeTerminalModel(QETProject *project, QObject *parent) :
- QAbstractTableModel(parent),
- m_project(project)
+ QAbstractTableModel(parent) {
+ setProject(project);
+}
+
+/**
+ * @brief FreeTerminalModel::setProject
+ * Set @project as project handled by this model.
+ * If a previous project was setted, everything is clear.
+ * This function track the destruction of the project,
+ * that mean if the project pointer is deleted
+ * no need to call this function with a nullptr,
+ * everything is made inside this class.
+ * @param project
+ */
+void FreeTerminalModel::setProject(QETProject *project)
{
- fillTerminalVector();
+ if(m_project) {
+ disconnect(m_project, &QObject::destroyed, this, &FreeTerminalModel::clear);
+ }
+ m_project = project;
+ if (m_project) {
+ connect(m_project, &QObject::destroyed, this, &FreeTerminalModel::clear);
+ }
+ clear();
}
/**
@@ -305,20 +325,22 @@ QVector > FreeTerminalModel::realTerminalForIndex(c
*/
void FreeTerminalModel::fillTerminalVector()
{
- ElementProvider provider_(m_project);
- auto free_terminal_vector = provider_.freeTerminal();
+ if (m_project) {
+ ElementProvider provider_(m_project);
+ auto free_terminal_vector = provider_.freeTerminal();
- std::sort(free_terminal_vector.begin(), free_terminal_vector.end(),
- [](TerminalElement *a, TerminalElement *b)
- {
- return QETUtils::sortBeginIntString(a->elementData().m_informations.value(QETInformation::ELMT_LABEL).toString(),
- b->elementData().m_informations.value(QETInformation::ELMT_LABEL).toString());
- });
+ std::sort(free_terminal_vector.begin(), free_terminal_vector.end(),
+ [](TerminalElement *a, TerminalElement *b)
+ {
+ return QETUtils::sortBeginIntString(a->elementData().m_informations.value(QETInformation::ELMT_LABEL).toString(),
+ b->elementData().m_informations.value(QETInformation::ELMT_LABEL).toString());
+ });
- for (const auto &terminal_ : free_terminal_vector) {
- m_terminal_vector.append(terminal_->realTerminal());
- m_real_t_data.append(modelRealTerminalData::data(terminal_->realTerminal()));
- }
+ for (const auto &terminal_ : free_terminal_vector) {
+ m_terminal_vector.append(terminal_->realTerminal());
+ m_real_t_data.append(modelRealTerminalData::data(terminal_->realTerminal()));
+ }
+ }
}
/****************************************************************
diff --git a/sources/TerminalStrip/ui/freeterminalmodel.h b/sources/TerminalStrip/ui/freeterminalmodel.h
index 3aaa88a60..fa69097de 100644
--- a/sources/TerminalStrip/ui/freeterminalmodel.h
+++ b/sources/TerminalStrip/ui/freeterminalmodel.h
@@ -47,6 +47,7 @@ class FreeTerminalModel : public QAbstractTableModel
public:
explicit FreeTerminalModel(QETProject *project, QObject *parent = nullptr);
+ void setProject(QETProject *project);
int rowCount(const QModelIndex &parent) const override;
int columnCount(const QModelIndex &parent) const override;
diff --git a/sources/TerminalStrip/ui/terminalstripeditor.cpp b/sources/TerminalStrip/ui/terminalstripeditor.cpp
index d9ad4e0eb..c87cdc7e5 100644
--- a/sources/TerminalStrip/ui/terminalstripeditor.cpp
+++ b/sources/TerminalStrip/ui/terminalstripeditor.cpp
@@ -57,21 +57,9 @@ TerminalStripEditor::TerminalStripEditor(QETProject *project, QWidget *parent) :
{
if (m_model->columnTypeForIndex(index) == TerminalStripModel::XRef)
{
- auto mrtd = m_model->modelRealTerminalDataForIndex(index);
- if (mrtd.element_)
- {
- auto elmt = mrtd.element_;
- auto diagram = elmt->diagram();
- if (diagram)
- {
- diagram->showMe();
- if (diagram->views().size())
- {
- auto fit_view = elmt->sceneBoundingRect();
- fit_view.adjust(-200,-200,200,200);
- diagram->views().at(0)->fitInView(fit_view, Qt::KeepAspectRatioByExpanding);
- }
- }
+ const auto mrtd = m_model->modelRealTerminalDataForIndex(index);
+ if (mrtd.element_) {
+ QetGraphicsItem::showItem(mrtd.element_);
}
}
});
@@ -84,6 +72,12 @@ TerminalStripEditor::~TerminalStripEditor() {
delete ui;
}
+void TerminalStripEditor::setProject(QETProject *project)
+{
+ m_project = project;
+ setCurrentStrip(nullptr);
+}
+
/**
* @brief TerminalStripEditor::setCurrentStrip
* Set the current terminal strip edited to \p strip_
@@ -98,27 +92,15 @@ void TerminalStripEditor::setCurrentStrip(TerminalStrip *strip_)
if (m_current_strip) {
disconnect(m_current_strip, &TerminalStrip::orderChanged, this, &TerminalStripEditor::reload);
disconnect(m_current_strip, &TerminalStrip::bridgeChanged, this, &TerminalStripEditor::reload);
+ disconnect(m_current_strip, &QObject::destroyed, this, &TerminalStripEditor::clear);
}
ui->m_move_to_cb->clear();
- if (!strip_)
- {
- ui->m_installation_le ->clear();
- ui->m_location_le ->clear();
- ui->m_name_le ->clear();
- ui->m_comment_le ->clear();
- ui->m_description_te ->clear();
- m_current_strip = nullptr;
-
- ui->m_table_widget->setModel(nullptr);
- if (m_model) {
- m_model->deleteLater();
- m_model = nullptr;
- }
+ if (!strip_) {
+ clear();
}
- else
- {
+ else {
ui->m_installation_le ->setText(strip_->installation());
ui->m_location_le ->setText(strip_->location());
ui->m_name_le ->setText(strip_->name());
@@ -159,6 +141,7 @@ void TerminalStripEditor::setCurrentStrip(TerminalStrip *strip_)
connect(m_current_strip, &TerminalStrip::orderChanged, this, &TerminalStripEditor::reload);
connect(m_current_strip, &TerminalStrip::bridgeChanged, this, &TerminalStripEditor::reload);
+ connect(m_current_strip, &QObject::destroyed, this, &TerminalStripEditor::clear);
}
}
@@ -230,6 +213,22 @@ void TerminalStripEditor::apply()
reload();
}
+void TerminalStripEditor::clear()
+{
+ ui->m_installation_le ->clear();
+ ui->m_location_le ->clear();
+ ui->m_name_le ->clear();
+ ui->m_comment_le ->clear();
+ ui->m_description_te ->clear();
+ m_current_strip.clear();
+
+ ui->m_table_widget->setModel(nullptr);
+ if (m_model) {
+ m_model->deleteLater();
+ m_model = nullptr;
+ }
+}
+
/**
* @brief TerminalStripEditor::spanMultiLevelTerminals
* Span row of m_table_widget for multi-level terminal
diff --git a/sources/TerminalStrip/ui/terminalstripeditor.h b/sources/TerminalStrip/ui/terminalstripeditor.h
index 36750e31e..f64dd78b0 100644
--- a/sources/TerminalStrip/ui/terminalstripeditor.h
+++ b/sources/TerminalStrip/ui/terminalstripeditor.h
@@ -41,11 +41,13 @@ class TerminalStripEditor : public QWidget
public:
explicit TerminalStripEditor(QETProject *project, QWidget *parent = nullptr);
~TerminalStripEditor() override;
+ void setProject(QETProject *project);
void setCurrentStrip(TerminalStrip *strip_);
void reload();
void apply();
private:
+ void clear();
void spanMultiLevelTerminals();
void selectionChanged();
QSize setUpBridgeCellWidth();
@@ -67,9 +69,9 @@ class TerminalStripEditor : public QWidget
private:
Ui::TerminalStripEditor *ui;
- QETProject *m_project {nullptr};
- TerminalStrip *m_current_strip {nullptr};
- TerminalStripModel *m_model {nullptr};
+ QPointer m_project;
+ QPointer m_current_strip;
+ TerminalStripModel *m_model {nullptr};
};
#endif // TERMINALSTRIPEDITOR_H
diff --git a/sources/TerminalStrip/ui/terminalstripeditorwindow.cpp b/sources/TerminalStrip/ui/terminalstripeditorwindow.cpp
index d22a723d9..81ddd2d29 100644
--- a/sources/TerminalStrip/ui/terminalstripeditorwindow.cpp
+++ b/sources/TerminalStrip/ui/terminalstripeditorwindow.cpp
@@ -51,10 +51,15 @@ void TerminalStripEditorWindow::edit(TerminalStrip *strip)
TerminalStripEditorWindow::TerminalStripEditorWindow(QETProject *project, QWidget *parent) :
QMainWindow(parent),
- ui(new Ui::TerminalStripEditorWindow),
- m_project(project)
+ ui(new Ui::TerminalStripEditorWindow),
+ m_project(project)
{
ui->setupUi(this);
+ if (auto diagram_editor = QETApp::diagramEditor(project)) {
+ ui->m_tool_bar->addSeparator();
+ ui->m_tool_bar->addAction(diagram_editor->undo);
+ ui->m_tool_bar->addAction(diagram_editor->redo);
+ }
ui->m_remove_terminal->setDisabled(true);
addTreeDockWidget();
@@ -76,6 +81,18 @@ TerminalStripEditorWindow::~TerminalStripEditorWindow()
delete ui;
}
+/**
+ * @brief TerminalStripEditorWindow::setProject
+ * @param project
+ */
+void TerminalStripEditorWindow::setProject(QETProject *project)
+{
+ m_project = project;
+ m_tree_dock->setProject(project);
+ m_free_terminal_editor->setProject(project);
+ m_terminal_strip_editor->setProject(project);
+}
+
void TerminalStripEditorWindow::setCurrentStrip(TerminalStrip *strip) {
m_tree_dock->setSelectedStrip(strip);
}
@@ -200,4 +217,3 @@ void TerminalStripEditorWindow::on_m_button_box_clicked(QAbstractButton *button)
void TerminalStripEditorWindow::on_m_stacked_widget_currentChanged(int arg1) {
ui->m_button_box->setHidden(arg1 == EMPTY_PAGE);
}
-
diff --git a/sources/TerminalStrip/ui/terminalstripeditorwindow.h b/sources/TerminalStrip/ui/terminalstripeditorwindow.h
index 911fe1a5e..4b3e9f2d0 100644
--- a/sources/TerminalStrip/ui/terminalstripeditorwindow.h
+++ b/sources/TerminalStrip/ui/terminalstripeditorwindow.h
@@ -43,17 +43,19 @@ class TerminalStripEditorWindow : public QMainWindow
//instance in her destrucor and then window_ become a dangling pointer.
static QPointer window_;
- public:
- static TerminalStripEditorWindow* instance(QETProject *project, QWidget *parent = nullptr) {
- static QMutex mutex_;
- if (!window_) {
- mutex_.lock();
- if (!window_)
- window_ = new TerminalStripEditorWindow{project, parent};
- mutex_.unlock();
- }
- return window_;
- }
+ public:
+ static TerminalStripEditorWindow* instance(QETProject *project, QWidget *parent = nullptr) {
+ static QMutex mutex_;
+ if (!window_) {
+ mutex_.lock();
+ if (!window_)
+ window_ = new TerminalStripEditorWindow{project, parent};
+ mutex_.unlock();
+ } else {
+ window_->setProject(project);
+ }
+ return window_;
+ }
static void dropInstance () {
static QMutex mutex;
@@ -71,7 +73,8 @@ class TerminalStripEditorWindow : public QMainWindow
explicit TerminalStripEditorWindow(QETProject *project, QWidget *parent = nullptr);
~TerminalStripEditorWindow();
- void setCurrentStrip(TerminalStrip *strip);
+ void setProject(QETProject *project);
+ void setCurrentStrip(TerminalStrip *strip);
private slots:
void on_m_add_terminal_strip_triggered();
@@ -87,7 +90,7 @@ class TerminalStripEditorWindow : public QMainWindow
private:
Ui::TerminalStripEditorWindow *ui{nullptr};
- QETProject *m_project {nullptr};
+ QPointer m_project;
TerminalStripTreeDockWidget *m_tree_dock{nullptr};
FreeTerminalEditor *m_free_terminal_editor {nullptr};
TerminalStripEditor *m_terminal_strip_editor {nullptr};
diff --git a/sources/TerminalStrip/ui/terminalstripeditorwindow.ui b/sources/TerminalStrip/ui/terminalstripeditorwindow.ui
index 43cb3eaa7..f390f33cf 100644
--- a/sources/TerminalStrip/ui/terminalstripeditorwindow.ui
+++ b/sources/TerminalStrip/ui/terminalstripeditorwindow.ui
@@ -33,12 +33,12 @@
001364
- 21
+ 23
-
+ toolBar
diff --git a/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp b/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp
index 6bf75e6e8..a3d9cbd9b 100644
--- a/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp
+++ b/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp
@@ -15,6 +15,8 @@
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see .
*/
+#include
+
#include "terminalstriplayouteditor.h"
#include "ui_terminalstriplayouteditor.h"
#include "../GraphicsItem/properties/terminalstriplayoutpattern.h"
@@ -54,12 +56,10 @@ void TerminalStripLayoutEditor::valueEdited()
return;
}
- //auto *data_ = m_layout.data();
-
- m_layout.data()->m_header_rect.setRect(0,
- ui->m_y_header_sb->value(),
- ui->m_width_header_sb->value(),
- ui->m_height_header_sb->value());
+ m_layout.data()->m_header_rect.setRect(0,
+ ui->m_y_header_sb->value(),
+ ui->m_width_header_sb->value(),
+ ui->m_height_header_sb->value());
m_layout.data()->m_spacer_rect.setRect(0,
ui->m_y_spacer_sb->value(),
@@ -91,9 +91,13 @@ void TerminalStripLayoutEditor::valueEdited()
m_layout.data()->m_bridge_point_y_offset[2] = ui->m_bridge_point_2_sb->value();
m_layout.data()->m_bridge_point_y_offset[3] = ui->m_bridge_point_3_sb->value();
- m_layout.data()->m_header_text_orientation = ui->m_header_text_orientation_cb->currentIndex() == 0 ?
- Qt::Horizontal :
- Qt::Vertical;
+ auto font_ = ui->m_font_cb->currentFont();
+ font_.setPixelSize(ui->m_font_size_sb->value());
+ m_layout->setFont(font_);
+
+ m_layout.data()->m_header_text_orientation = ui->m_header_text_orientation_cb->currentIndex() == 0 ?
+ Qt::Horizontal :
+ Qt::Vertical;
switch (ui->m_header_text_alignment_cb->currentIndex()) {
case 0:
@@ -104,34 +108,46 @@ void TerminalStripLayoutEditor::valueEdited()
m_layout.data()->setHeaderTextAlignment(Qt::AlignRight | Qt::AlignVCenter); break;
}
- m_layout.data()->m_terminals_text_orientation[0] = ui->m_terminal_text_orientation_cb->currentIndex() == 0 ?
- Qt::Horizontal :
- Qt::Vertical;
+ //Terminal text
+ m_layout.data()->m_terminals_text_orientation = ui->m_terminal_text_orientation_cb->currentIndex() == 0 ?
+ Qt::Horizontal :
+ Qt::Vertical;
- switch (ui->m_terminal_text_alignment_cb->currentIndex()) {
- case 0:
- m_layout.data()->setTerminalsTextAlignment(
- QVector { Qt::AlignLeft | Qt::AlignVCenter,
- Qt::AlignLeft | Qt::AlignVCenter,
- Qt::AlignLeft | Qt::AlignVCenter,
- Qt::AlignLeft | Qt::AlignVCenter });
- break;
- case 1:
- m_layout.data()->setTerminalsTextAlignment(
- QVector { Qt::AlignHCenter | Qt::AlignVCenter,
- Qt::AlignHCenter | Qt::AlignVCenter,
- Qt::AlignHCenter | Qt::AlignVCenter,
- Qt::AlignHCenter | Qt::AlignVCenter });
- break;
- default:
- m_layout.data()->setTerminalsTextAlignment(
- QVector { Qt::AlignRight | Qt::AlignVCenter,
- Qt::AlignRight | Qt::AlignVCenter,
- Qt::AlignRight | Qt::AlignVCenter,
- Qt::AlignRight | Qt::AlignVCenter });
- break;
+ switch (ui->m_terminal_text_alignment_cb->currentIndex()) {
+ case 0:
+ m_layout.data()->setTerminalsTextAlignment(Qt::Alignment {Qt::AlignLeft | Qt::AlignVCenter});
+ break;
+ case 1:
+ m_layout.data()->setTerminalsTextAlignment(Qt::Alignment { Qt::AlignHCenter | Qt::AlignVCenter});
+ break;
+ default:
+ m_layout.data()->setTerminalsTextAlignment(Qt::Alignment { Qt::AlignRight | Qt::AlignVCenter});
+ break;
+ }
+
+ m_layout.data()->m_terminals_text_y = ui->m_terminal_text_y_sb->value();
+ m_layout.data()->m_terminals_text_height = ui->m_terminal_text_height_sb->value();
+
+ //Xref text
+ m_layout.data()->m_xref_text_orientation = ui->m_xref_orientation_cb->currentIndex() == 0 ?
+ Qt::Horizontal :
+ Qt::Vertical;
+
+ switch (ui->m_xref_alignment_cb->currentIndex()) {
+ case 0:
+ m_layout.data()->setXrefTextAlignment(Qt::Alignment {Qt::AlignLeft | Qt::AlignVCenter});
+ break;
+ case 1:
+ m_layout.data()->setXrefTextAlignment(Qt::Alignment { Qt::AlignHCenter | Qt::AlignVCenter});
+ break;
+ default:
+ m_layout.data()->setXrefTextAlignment(Qt::Alignment { Qt::AlignRight | Qt::AlignVCenter});
+ break;
}
+ m_layout.data()->m_xref_text_y = ui->m_xref_y_sb->value();
+ m_layout.data()->m_xref_text_height = ui->m_xref_height_sb->value();
+
updateUi();
m_preview_strip_item.update();
}
@@ -180,17 +196,21 @@ void TerminalStripLayoutEditor::updateUi()
ui->m_bridge_point_2_sb->setValue(bridge_point[2]);
ui->m_bridge_point_3_sb->setValue(bridge_point[3]);
- if (data->m_header_text_orientation == Qt::Horizontal) {
- ui->m_header_text_orientation_cb->setCurrentIndex(0);
- } else {
- ui->m_header_text_orientation_cb->setCurrentIndex(1);
- }
+ const auto font = m_layout->font();
+ ui->m_font_size_sb->setValue(font.pixelSize());
+ ui->m_font_cb->setCurrentFont(font);
- if (data->m_terminals_text_orientation[0] == Qt::Horizontal) {
- ui->m_terminal_text_orientation_cb->setCurrentIndex(0);
- } else {
- ui->m_terminal_text_orientation_cb->setCurrentIndex(1);
- }
+ if (data->m_header_text_orientation == Qt::Horizontal) {
+ ui->m_header_text_orientation_cb->setCurrentIndex(0);
+ } else {
+ ui->m_header_text_orientation_cb->setCurrentIndex(1);
+ }
+
+ if (data->m_terminals_text_orientation == Qt::Horizontal) {
+ ui->m_terminal_text_orientation_cb->setCurrentIndex(0);
+ } else {
+ ui->m_terminal_text_orientation_cb->setCurrentIndex(1);
+ }
const auto header_alignment = data->headerTextAlignment();
if (header_alignment &Qt::AlignLeft) {
@@ -201,15 +221,38 @@ void TerminalStripLayoutEditor::updateUi()
ui->m_header_text_alignment_cb->setCurrentIndex(2);
}
- const auto terminal_alignment = data->terminalsTextAlignment().at(0);
- if (terminal_alignment &Qt::AlignLeft) {
- ui->m_terminal_text_alignment_cb->setCurrentIndex(0);
- } else if (terminal_alignment &Qt::AlignHCenter) {
- ui->m_terminal_text_alignment_cb->setCurrentIndex(1);
- } else if (terminal_alignment &Qt::AlignRight) {
- ui->m_terminal_text_alignment_cb->setCurrentIndex(2);
+ //Terminal text
+ const auto terminal_alignment = data->terminalsTextAlignment();
+ if (terminal_alignment &Qt::AlignLeft) {
+ ui->m_terminal_text_alignment_cb->setCurrentIndex(0);
+ } else if (terminal_alignment &Qt::AlignHCenter) {
+ ui->m_terminal_text_alignment_cb->setCurrentIndex(1);
+ } else if (terminal_alignment &Qt::AlignRight) {
+ ui->m_terminal_text_alignment_cb->setCurrentIndex(2);
}
+ ui->m_terminal_text_y_sb->setValue(data->m_terminals_text_y);
+ ui->m_terminal_text_height_sb->setValue(data->m_terminals_text_height);
+
+ //Xref text
+ if (data->m_xref_text_orientation == Qt::Horizontal) {
+ ui->m_xref_orientation_cb->setCurrentIndex(0);
+ } else {
+ ui->m_xref_orientation_cb->setCurrentIndex(1);
+ }
+
+ const auto xref_alignment = data->xrefTextAlignment();
+ if (xref_alignment &Qt::AlignLeft) {
+ ui->m_xref_alignment_cb->setCurrentIndex(0);
+ } else if (xref_alignment &Qt::AlignHCenter) {
+ ui->m_xref_alignment_cb->setCurrentIndex(1);
+ } else if (xref_alignment &Qt::AlignRight) {
+ ui->m_xref_alignment_cb->setCurrentIndex(2);
+ }
+
+ ui->m_xref_y_sb->setValue(data->m_xref_text_y);
+ ui->m_xref_height_sb->setValue(data->m_xref_text_height);
+
m_ui_updating = false;
updatePreview();
}
@@ -225,4 +268,3 @@ void TerminalStripLayoutEditor::on_m_display_preview_help_clicked(bool checked)
m_preview_strip_item.m_drawer.setPreviewDraw(checked);
m_preview_strip_item.update();
}
-
diff --git a/sources/TerminalStrip/ui/terminalstriplayouteditor.h b/sources/TerminalStrip/ui/terminalstriplayouteditor.h
index 64c4d4431..e0a539d13 100644
--- a/sources/TerminalStrip/ui/terminalstriplayouteditor.h
+++ b/sources/TerminalStrip/ui/terminalstriplayouteditor.h
@@ -74,10 +74,9 @@ class TerminalStripLayoutEditor : public QWidget
void resizeEvent(QResizeEvent *event) override;
void showEvent(QShowEvent *event) override;
- private slots:
- void valueEdited();
-
- void on_m_display_preview_help_clicked(bool checked);
+ private slots:
+ void valueEdited();
+ void on_m_display_preview_help_clicked(bool checked);
private:
void updateUi();
diff --git a/sources/TerminalStrip/ui/terminalstriplayouteditor.ui b/sources/TerminalStrip/ui/terminalstriplayouteditor.ui
index eca92386e..c9a762252 100644
--- a/sources/TerminalStrip/ui/terminalstriplayouteditor.ui
+++ b/sources/TerminalStrip/ui/terminalstriplayouteditor.ui
@@ -6,8 +6,8 @@
00
- 767
- 544
+ 961
+ 624
@@ -17,17 +17,17 @@
QLayout::SetMaximumSize
-
-
-
- Borne niveau 0 :
+
+
+
+ 1000
-
-
-
- En tête :
+
+
+
+ 1000
@@ -38,37 +38,6 @@
-
-
-
-
-
-
- Point de pont
-
-
-
-
-
-
- 1000
-
-
-
-
-
-
- Qt::Horizontal
-
-
-
-
-
-
- 1000
-
-
-
@@ -76,15 +45,43 @@
-
-
-
- Afficher l'aide
+
+
+
+ 1000
-
-
+
+
+
+ 1000
+
+
+
+
+
+
+ Borne niveau 0 :
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+ 1000
+
+
+
+
+ 1000
@@ -97,22 +94,39 @@
-
-
+
+
+
+
+ 1000
-
-
+
+
- Largeur
+ Borne niveau 3 :
-
-
+
+
+
+ Borne niveau 2 :
+
+
+
+
+
+
+ 1000
+
+
+
+
+ 1000
@@ -125,17 +139,48 @@
-
-
+
+
- Hauteur
+ Afficher l'aide
+
+
+ false
-
-
+
+
- Prévisualisation :
+ Largeur
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+ Espace :
+
+
+
+
+
+
+ Qt::Horizontal
+
+
+
+
+
+
+ 1000
@@ -146,35 +191,14 @@
-
-
-
- 1000
+
+
+
+ Borne niveau 1 :
-
-
-
- 1000
-
-
-
-
-
-
- 1000
-
-
-
-
-
-
- 1000
-
-
-
-
+
@@ -189,26 +213,21 @@
0
-
-
+
+
- Gauche
+ Horizontal
- Centre
-
-
-
-
- Droite
+ Vertical
-
+
@@ -227,21 +246,136 @@
-
+
+
+
+ Orientation
+
+
+
+
- Alignement du texte d'en tête :
+ Alignement
-
-
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+
+
+ Police :
+
+
+
+
+
+
+
+
+
+ Taille :
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
- Alignement du texte de borne :
+ Texte d'en tête
+
+
+ Qt::AlignCenter
-
+
+
+
+ Origine vertical
+
+
+
+
+
+
+ Longueur maximal
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+ 30
+
+
+ 1000
+
+
+
+
+
+
+
+ Gauche
+
+
+
+
+ Centre
+
+
+
+
+ Droite
+
+
+
+
+
@@ -255,8 +389,28 @@
-
-
+
+
+
+ Texte borne
+
+
+ Qt::AlignCenter
+
+
+
+
+
+
+ Référence croisée
+
+
+ Qt::AlignCenter
+
+
+
+
+ Horizontal
@@ -269,23 +423,66 @@
-
-
-
- Orientation du texte de borne :
+
+
+
+
+ Gauche
+
+
+
+
+ Centre
+
+
+
+
+ Droite
+
+
+
+
+
+
+
+ 1000
-
-
-
- Orientation du texte d'en tête :
+
+
+
+ 30
+
+
+ 1000
+
+
+
+ 1000
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+ En tête :
+
+
+
@@ -293,34 +490,6 @@
-
-
-
- Borne niveau 2 :
-
-
-
-
-
-
- 1000
-
-
-
-
-
-
- Espace :
-
-
-
-
-
-
- 1000
-
-
-
@@ -328,69 +497,55 @@
-
-
-
- 1000
-
-
-
-
-
-
- 1000
-
-
-
-
-
-
- 1000
-
-
-
-
-
-
- 1000
-
-
-
-
-
-
- 1000
-
-
-
-
-
-
- Borne niveau 3 :
-
-
-
-
-
-
- 1000
-
-
-
-
-
-
- Borne niveau 1 :
-
-
-
-
-
+
+ Qt::Horizontal
+
+
+
+ 1000
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+ Hauteur
+
+
+
+
+
+
+ Point de pont
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+ Prévisualisation :
+
+
+
@@ -811,6 +966,134 @@
+
+ m_font_cb
+ currentFontChanged(QFont)
+ TerminalStripLayoutEditor
+ valueEdited()
+
+
+ 245
+ 276
+
+
+ 445
+ 277
+
+
+
+
+ m_font_size_sb
+ valueChanged(int)
+ TerminalStripLayoutEditor
+ valueEdited()
+
+
+ 507
+ 277
+
+
+ 445
+ 277
+
+
+
+
+ m_terminal_text_y_sb
+ valueChanged(int)
+ TerminalStripLayoutEditor
+ valueEdited()
+
+
+ 207
+ 383
+
+
+ 445
+ 277
+
+
+
+
+ m_terminal_text_height_sb
+ valueChanged(int)
+ TerminalStripLayoutEditor
+ valueEdited()
+
+
+ 430
+ 383
+
+
+ 445
+ 277
+
+
+
+
+ m_xref_alignment_cb
+ currentIndexChanged(int)
+ TerminalStripLayoutEditor
+ valueEdited()
+
+
+ 836
+ 365
+
+
+ 480
+ 311
+
+
+
+
+ m_xref_height_sb
+ valueChanged(int)
+ TerminalStripLayoutEditor
+ valueEdited()
+
+
+ 836
+ 431
+
+
+ 480
+ 311
+
+
+
+
+ m_xref_orientation_cb
+ currentIndexChanged(int)
+ TerminalStripLayoutEditor
+ valueEdited()
+
+
+ 836
+ 333
+
+
+ 480
+ 311
+
+
+
+
+ m_xref_y_sb
+ valueChanged(int)
+ TerminalStripLayoutEditor
+ valueEdited()
+
+
+ 836
+ 398
+
+
+ 480
+ 311
+
+
+ valueEdited()
diff --git a/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp b/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp
index 3a9a34e6e..960dd1eb4 100644
--- a/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp
+++ b/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp
@@ -30,11 +30,10 @@
TerminalStripTreeDockWidget::TerminalStripTreeDockWidget(QETProject *project, QWidget *parent) :
QDockWidget(parent),
- ui(new Ui::TerminalStripTreeDockWidget),
- m_project(project)
+ ui(new Ui::TerminalStripTreeDockWidget)
{
ui->setupUi(this);
- buildTree();
+ setProject(project);
#if QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)
ui->m_tree_view->expandRecursively(ui->m_tree_view->rootIndex());
@@ -48,6 +47,32 @@ TerminalStripTreeDockWidget::~TerminalStripTreeDockWidget()
delete ui;
}
+/**
+ * @brief TerminalStripTreeDockWidget::setProject
+ * Set @project as project handled by this tree dock.
+ * If a previous project was setted, everything is clear.
+ * This function track the destruction of the project,
+ * that mean if the project pointer is deleted
+ * no need to call this function with a nullptr,
+ * everything is made inside this class.
+ * @param project
+ */
+void TerminalStripTreeDockWidget::setProject(QETProject *project)
+{
+ if(m_project && m_project_destroy_connection) {
+ disconnect(m_project_destroy_connection);
+ }
+ m_project = project;
+ if (m_project) {
+ m_project_destroy_connection = connect(m_project, &QObject::destroyed, [this](){
+ this->m_current_strip.clear();
+ this->reload();
+ });
+ }
+ m_current_strip.clear();
+ reload();
+}
+
/**
* @brief TerminalStripTreeDockWidget::reload
*/
@@ -205,6 +230,9 @@ void TerminalStripTreeDockWidget::on_m_tree_view_currentItemChanged(QTreeWidgetI
*/
void TerminalStripTreeDockWidget::buildTree()
{
+ if(!m_project) {
+ return;
+ }
auto title_ = m_project->title();
if (title_.isEmpty()) {
diff --git a/sources/TerminalStrip/ui/terminalstriptreedockwidget.h b/sources/TerminalStrip/ui/terminalstriptreedockwidget.h
index ffc82bbbb..1274bc7fb 100644
--- a/sources/TerminalStrip/ui/terminalstriptreedockwidget.h
+++ b/sources/TerminalStrip/ui/terminalstriptreedockwidget.h
@@ -49,6 +49,7 @@ class TerminalStripTreeDockWidget : public QDockWidget
explicit TerminalStripTreeDockWidget(QETProject *project, QWidget *parent = nullptr);
~TerminalStripTreeDockWidget();
+ void setProject(QETProject *project = nullptr);
void reload();
bool currentIsStrip() const;
TerminalStrip* currentStrip() const;
@@ -74,11 +75,12 @@ class TerminalStripTreeDockWidget : public QDockWidget
QPointer m_project;
QPointer m_current_strip;
- QHash m_item_strip_H;
+ QHash> m_item_strip_H;
QHash> m_uuid_terminal_H;
QHash> m_uuid_strip_H;
QVector m_strip_changed_connection;
- bool m_current_is_free_terminal{false};
+ bool m_current_is_free_terminal{false};
+ QMetaObject::Connection m_project_destroy_connection;
};
#endif // TERMINALSTRIPTREEDOCKWIDGET_H
diff --git a/sources/autoNum/assignvariables.cpp b/sources/autoNum/assignvariables.cpp
index 8c97625eb..e69ead7f7 100644
--- a/sources/autoNum/assignvariables.cpp
+++ b/sources/autoNum/assignvariables.cpp
@@ -221,11 +221,12 @@ namespace autonum
str.replace("%{designation}", dc.value("designation").toString());
str.replace("%{manufacturer}", dc.value("manufacturer").toString());
str.replace("%{manufacturer_reference}",
- dc.value("manufacturer_reference").toString());
+ dc.value("manufacturer_reference").toString());
str.replace("%{supplier}", dc.value("supplier").toString());
str.replace("%{quantity}", dc.value("quantity").toString());
str.replace("%{unity}", dc.value("unity").toString());
- str.replace("%{auxiliary1}", dc.value("auxiliary1").toString());
+
+ str.replace("%{auxiliary1}", dc.value("auxiliary1").toString());
str.replace("%{description_auxiliary1}", dc.value("description_auxiliary1").toString());
str.replace("%{designation_auxiliary1}", dc.value("designation_auxiliary1").toString());
str.replace("%{manufacturer_auxiliary1}", dc.value("manufacturer_auxiliary1").toString());
@@ -264,10 +265,14 @@ namespace autonum
str.replace("%{unity_auxiliary4}", dc.value("unity_auxiliary4").toString());
- str.replace("%{machine_manufacturer_reference}",
- dc.value("machine_manufacturer_reference").toString());
+ str.replace("%{machine_manufacturer_reference}", dc.value("machine_manufacturer_reference").toString());
+
str.replace("%{location}", dc.value("location").toString());
str.replace("%{function}", dc.value("function").toString());
+ str.replace("%{tension_protocol}", dc.value("tension_protocol").toString());
+ str.replace("%{conductor_section}", dc.value("conductor_section").toString());
+ str.replace("%{conductor_color}", dc.value("conductor_color").toString());
+
str.replace("%{void}", QString());
return str;
diff --git a/sources/configdialog.cpp b/sources/configdialog.cpp
index 4fcdea6a0..8802cd3fe 100644
--- a/sources/configdialog.cpp
+++ b/sources/configdialog.cpp
@@ -35,7 +35,7 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) {
// liste des pages
pages_list = new QListWidget();
pages_list -> setViewMode(QListView::IconMode);
- if(MachineInfo::instance()->i_max_screen_height()<1000){
+ if(MachineInfo::instance()->i_max_screen_height() <= 1080){
pages_list -> setIconSize(QSize(64, 64));
} else {
pages_list -> setIconSize(QSize(128, 128));
@@ -69,7 +69,7 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) {
// Add a layout for QDialog
QVBoxLayout *dialog_layout = new QVBoxLayout(this);
- dialog_layout->addWidget(scroll); // add scroll to the QDialog's layout
+ dialog_layout -> addWidget(scroll); // add scroll to the QDialog's layout
dialog_layout -> addWidget(buttons);
setLayout(dialog_layout);
@@ -79,9 +79,11 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) {
connect(pages_list, SIGNAL(currentRowChanged(int)),
pages_widget, SLOT(setCurrentIndex(int)));
- setMaximumSize(MachineInfo::instance()->i_max_screen_width(),
- MachineInfo::instance()->i_max_screen_height());
- resize(1400,1000);
+ // set maximum a bit smaller than available size = (screen-size - Task-Bar):
+ setMaximumSize((int)(0.94 * MachineInfo::instance()->i_max_available_width()),
+ (int)(0.94 * MachineInfo::instance()->i_max_available_height()));
+ resize(std::min(1400,maximumWidth()),
+ std::min(1000,maximumHeight()));
#ifdef Q_OS_MACOS
if (parent) {
diff --git a/sources/dataBase/projectdatabase.cpp b/sources/dataBase/projectdatabase.cpp
index 98b3fddd2..de28b7c00 100644
--- a/sources/dataBase/projectdatabase.cpp
+++ b/sources/dataBase/projectdatabase.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2021 QElectroTech Team
+ Copyright 2006-2025 QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
diff --git a/sources/dataBase/projectdatabase.h b/sources/dataBase/projectdatabase.h
index fa119afda..d0b69ad43 100644
--- a/sources/dataBase/projectdatabase.h
+++ b/sources/dataBase/projectdatabase.h
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2021 QElectroTech Team
+ Copyright 2006-2025 QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
diff --git a/sources/diagram.cpp b/sources/diagram.cpp
index 79a945a8e..3e9ef7c12 100644
--- a/sources/diagram.cpp
+++ b/sources/diagram.cpp
@@ -38,6 +38,7 @@
#include "qetgraphicsitem/terminal.h"
#include "qetxml.h"
#include "undocommand/addelementtextcommand.h"
+#include "qetinformation.h"
#include
#include
@@ -762,10 +763,12 @@ QList < QSet > Diagram::potentials()
represent the entire schema or only the selected content
\~French Booleen (a vrai par defaut) indiquant si le XML genere doit
representer l'integralite du schema ou seulement le contenu selectionne
+ \~ @param is_copy_command:
+ Boolean (false by default) indicating if function is called by an copy command
\~ @return An XML Document (QDomDocument)
\~French Un Document XML (QDomDocument)
*/
-QDomDocument Diagram::toXml(bool whole_content) {
+QDomDocument Diagram::toXml(bool whole_content, bool is_copy_command) {
// document
QDomDocument document;
@@ -912,8 +915,13 @@ QDomDocument Diagram::toXml(bool whole_content) {
{
case Element::Type: {
auto elmt = static_cast(qgi);
- if (whole_content || elmt->isSelected())
+ if (whole_content || elmt->isSelected()){
+ // For a copy/paste command, the text positions must be recalculated for
+ // correct text alignment, before it is saved to the clipboard
+ if(is_copy_command && (elmt->linkType() == Element::Slave || elmt->linkType()&Element::AllReport))
+ correctTextPos(elmt);
list_elements << elmt;
+ }
break;
}
case Conductor::Type: {
@@ -973,6 +981,9 @@ QDomDocument Diagram::toXml(bool whole_content) {
for (auto elmt : list_elements) {
dom_elements.appendChild(elmt->toXml(document,
table_adr_id));
+ // If copy is active we have to undo the changes we have made during creating(filling) 'list_elements'
+ if(is_copy_command && (elmt->linkType() == Element::Slave || elmt->linkType()&Element::AllReport))
+ restoreText(elmt);
}
dom_root.appendChild(dom_elements);
}
@@ -1428,33 +1439,6 @@ bool Diagram::fromXml(QDomElement &document,
added_shapes << dii;
}
- // Load conductor
- QList added_conductors;
- for (auto f : QET::findInDomElement(root,
- QStringLiteral("conductors"),
- QStringLiteral("conductor")))
- {
- if (!Conductor::valideXml(f)) continue;
-
- //Check if terminal that conductor must be linked is know
-
- Terminal* p1 = findTerminal(1, f, table_adr_id, added_elements);
- Terminal* p2 = findTerminal(2, f, table_adr_id, added_elements);
-
- if (p1 && p2 && p1 != p2)
- {
- Conductor *c = new Conductor(p1, p2);
- if (c->isValid())
- {
- addItem(c);
- c -> fromXml(f);
- added_conductors << c;
- }
- else
- delete c;
- }
- }
-
//Load tables
QVector added_tables;
for (const auto &dom_table : QETXML::subChild(root,
@@ -1475,7 +1459,6 @@ bool Diagram::fromXml(QDomElement &document,
{
QVector added_items;
for (auto element : qAsConst(added_elements )) added_items << element;
- for (auto cond : qAsConst(added_conductors )) added_items << cond;
for (auto shape : qAsConst(added_shapes )) added_items << shape;
for (auto text : qAsConst(added_texts )) added_items << text;
for (auto image : qAsConst(added_images )) added_items << image;
@@ -1500,6 +1483,33 @@ bool Diagram::fromXml(QDomElement &document,
qgi->setPos(qgi->pos() += pos_);
}
+ // Load conductor
+ QList added_conductors;
+ for (auto f : QET::findInDomElement(root,
+ QStringLiteral("conductors"),
+ QStringLiteral("conductor")))
+ {
+ if (!Conductor::valideXml(f)) continue;
+
+ //Check if terminal that conductor must be linked is know
+
+ Terminal* p1 = findTerminal(1, f, table_adr_id, added_elements);
+ Terminal* p2 = findTerminal(2, f, table_adr_id, added_elements);
+
+ if (p1 && p2 && p1 != p2)
+ {
+ Conductor *c = new Conductor(p1, p2);
+ if (c->isValid())
+ {
+ addItem(c);
+ c -> fromXml(f);
+ added_conductors << c;
+ }
+ else
+ delete c;
+ }
+ }
+
//Filling of falculatory lists
if (content_ptr) {
content_ptr -> m_elements = added_elements;
@@ -2472,3 +2482,156 @@ bool Diagram::canRotateSelection() const
return false;
}
+/*
+ * To copy elements with right-aligned or centered elementtext, the text position
+ of dynamicElementTextItems in report- and slave elements must be reset
+ to the original insert position bevor writing to clipboard.
+ It is only necessary for right-aligned and centered texts,
+ but we do it for all, because it has no influence on other texts.
+*/
+/**
+ @brief Diagram::correctTextPos
+ set insertion position to the original insertion position of the element texts before copying
+ @param Element
+*/
+void Diagram::correctTextPos(Element* elmt)
+{
+ for (auto deti : elmt->dynamicTextItems()){
+
+ // correct dynamicElementTextItem of type ElementInfo
+ if( deti->textFrom() == DynamicElementTextItem::ElementInfo){
+ // save current PlainText
+ deti->setText(deti->toPlainText());
+ // writing an empty string to PlainText set
+ // the insertion point to the original insertion point
+ deti->setPlainText("");
+ // block the alignment calculation for the next write action
+ deti->m_block_alignment = true;
+ // we need to set the plain text with its value,
+ // otherewise the text value will not be copy
+ deti->setPlainText(deti->text());
+ deti->m_block_alignment = false;
+ }
+ // correct dynamicElementTextItem of type CompositeText
+ else if(deti->textFrom() == DynamicElementTextItem::CompositeText){
+ QString composite_text = deti->compositeText();
+
+ // create compositeText() without variables for slave item
+ // This string corresponds to the original text with original insertion point
+ if(elmt->linkType()==Element::Slave){
+ const QStringList variables_list = QETInformation::elementInfoKeys();
+ for (auto &variable : variables_list){
+ if(composite_text.contains(QETInformation::infoToVar(variable)))
+ composite_text.replace(QETInformation::infoToVar(variable),"");
+ }
+ }
+ // create compositeText() without variables for report item
+ else if(elmt->linkType()&Element::AllReport){
+ const QStringList variables_list = QETInformation::folioReportInfoKeys();
+ for (auto &variable : variables_list){
+ if(composite_text.contains(QETInformation::infoToVar(variable)))
+ composite_text.replace(QETInformation::infoToVar(variable),"");
+ }
+ }
+
+ deti->setText(deti->toPlainText());
+ deti->setPlainText(composite_text);
+ deti->m_block_alignment = true;
+ deti->setPlainText(deti->text());
+ deti->m_block_alignment = false;
+ // We need the string for the restoration, so we save it
+ deti->setText(composite_text);
+ }
+ }
+
+ // same for textgroups
+ for (auto group : elmt->textGroups()){
+ for(DynamicElementTextItem *deti : group->texts()){
+ if( deti->textFrom() == DynamicElementTextItem::ElementInfo){
+ deti->setText(deti->toPlainText());
+ deti->m_block_alignment = true;
+ deti->setPlainText(deti->text());
+ deti->m_block_alignment = false;
+ deti->setPlainText("");
+ }
+
+ else if(deti->textFrom() == DynamicElementTextItem::CompositeText){
+ QString composite_text = deti->compositeText();
+ if(elmt->linkType()==Element::Slave){
+ QStringList variables_list = QETInformation::elementInfoKeys();
+ for (auto variable : variables_list){
+ if(composite_text.contains(QETInformation::infoToVar(variable)))
+ composite_text.replace(QETInformation::infoToVar(variable),"");
+ }
+ }
+ else if(elmt->linkType()&Element::AllReport){
+ QStringList variables_list = QETInformation::folioReportInfoKeys();
+ for (auto variable : variables_list){
+ if(composite_text.contains(QETInformation::infoToVar(variable)))
+ composite_text.replace(QETInformation::infoToVar(variable),"");
+ }
+ }
+
+ deti->setText(deti->toPlainText());
+ deti->setPlainText(composite_text);
+ deti->m_block_alignment = true;
+ deti->setPlainText(deti->text());
+ deti->m_block_alignment = false;
+ deti->setText(composite_text);
+ }
+ }
+ }
+}
+
+/*
+ * After changing the element texts for copying, the element texts has to be restored.
+ */
+/**
+ @brief Diagram::restoreText
+ After correcting the elementtext position during copying
+ the Text has to be restored
+ @param Element
+*/
+void Diagram::restoreText(Element* elmt)
+{
+ for (auto deti : elmt->dynamicTextItems()){
+ // restore info text
+ if( deti->textFrom() == DynamicElementTextItem::ElementInfo){
+ // delete the actual plainText without alignmant calculation
+ deti->m_block_alignment = true;
+ deti->setPlainText("");
+ deti->m_block_alignment = false;
+ // restore the plainText
+ deti->setPlainText(deti->text());
+ }
+ // restore composite text
+ else if (deti->textFrom() == DynamicElementTextItem::CompositeText){
+ QString composite_text = deti->text();
+ deti->setText(deti->toPlainText());
+ // set the PlainText to the origin text without alignment calculation
+ deti->m_block_alignment = true;
+ deti->setPlainText(composite_text);
+ deti->m_block_alignment = false;
+ deti->setPlainText(deti->text());
+ }
+ }
+ // same for text groups
+ for (auto group : elmt->textGroups()){
+ for(DynamicElementTextItem *deti : group->texts()){
+ if( deti->textFrom() == DynamicElementTextItem::ElementInfo){
+ deti->m_block_alignment = true;
+ deti->setPlainText("");
+ deti->m_block_alignment = false;
+ deti->setPlainText(deti->text());
+ }
+ else if (deti->textFrom() == DynamicElementTextItem::CompositeText){
+ QString composite_text = deti->text();
+ deti->setText(deti->toPlainText());
+ deti->m_block_alignment = true;
+ deti->setPlainText(composite_text);
+ deti->m_block_alignment = false;
+ deti->setPlainText(deti->text());
+ }
+ }
+ }
+}
diff --git a/sources/diagram.h b/sources/diagram.h
index 452c52a24..3c421e36f 100644
--- a/sources/diagram.h
+++ b/sources/diagram.h
@@ -142,6 +142,8 @@ class Diagram : public QGraphicsScene
void wheelEvent (QGraphicsSceneWheelEvent *event) override;
void keyPressEvent (QKeyEvent *event) override;
void keyReleaseEvent (QKeyEvent *) override;
+ void correctTextPos(Element* elmt);
+ void restoreText(Element* elmt);
public:
QUuid uuid();
@@ -167,7 +169,7 @@ class Diagram : public QGraphicsScene
QList < QSet > potentials();
// methods related to XML import/export
- QDomDocument toXml(bool = true);
+ QDomDocument toXml(bool wholeContent = true, bool is_copy_command = false);
bool initFromXml(QDomElement &,
QPointF = QPointF(),
bool = true,
diff --git a/sources/diagramcontent.cpp b/sources/diagramcontent.cpp
index 30bbcc5c1..4c279c4c9 100644
--- a/sources/diagramcontent.cpp
+++ b/sources/diagramcontent.cpp
@@ -59,7 +59,15 @@ DiagramContent::DiagramContent(Diagram *diagram, bool selected) :
{
switch (item->type())
{
- case Element::Type: { m_elements << qgraphicsitem_cast(item); break;}
+ case Element::Type:
+ {
+ auto element = qgraphicsitem_cast(item);
+ m_elements << element;
+ if (element->elementData().m_type == ElementData::Terminal) {
+ m_terminal_elements << static_cast(element);
+ }
+ break;
+ }
case IndependentTextItem::Type: { m_text_fields << qgraphicsitem_cast(item); break;}
case Conductor::Type:
{
diff --git a/sources/diagramcontent.h b/sources/diagramcontent.h
index 4a12b7ad3..479fc4b71 100644
--- a/sources/diagramcontent.h
+++ b/sources/diagramcontent.h
@@ -21,6 +21,8 @@
#include
#include
+#include "../qetgraphicsitem/terminalelement.h"
+
class QGraphicsItem;
class Conductor;
class Element;
@@ -81,6 +83,7 @@ class DiagramContent
QList m_selected_items;
QVector m_tables;
QVector m_terminal_strip;
+ QVector> m_terminal_elements;
QList selectedTexts() const;
diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp
index 73dcb018a..9d1992fd3 100644
--- a/sources/diagramview.cpp
+++ b/sources/diagramview.cpp
@@ -376,6 +376,7 @@ void DiagramView::zoomReset()
/**
Copie les elements selectionnes du schema dans le presse-papier puis les supprime
+ Copies the selected elements from the diagram to the clipboard and then deletes them
*/
void DiagramView::cut()
{
@@ -387,13 +388,14 @@ void DiagramView::cut()
/**
Copie les elements selectionnes du schema dans le presse-papier
+ Copies the selected elements from the diagram to the clipboard
*/
void DiagramView::copy()
{
- QClipboard *presse_papier = QApplication::clipboard();
- QString contenu_presse_papier = m_diagram -> toXml(false).toString(4);
- if (presse_papier -> supportsSelection()) presse_papier -> setText(contenu_presse_papier, QClipboard::Selection);
- presse_papier -> setText(contenu_presse_papier);
+ QClipboard *clipboard = QApplication::clipboard();
+ QString content_clipboard = m_diagram -> toXml(false, true).toString(4);
+ if (clipboard -> supportsSelection()) clipboard -> setText(content_clipboard, QClipboard::Selection);
+ clipboard -> setText(content_clipboard);
}
/**
@@ -405,11 +407,11 @@ void DiagramView::copy()
void DiagramView::paste(const QPointF &pos, QClipboard::Mode clipboard_mode) {
if (!isInteractive() || m_diagram -> isReadOnly()) return;
- QString texte_presse_papier = QApplication::clipboard() -> text(clipboard_mode);
- if ((texte_presse_papier).isEmpty()) return;
+ QString text_clipboard = QApplication::clipboard() -> text(clipboard_mode);
+ if ((text_clipboard).isEmpty()) return;
QDomDocument document_xml;
- if (!document_xml.setContent(texte_presse_papier)) return;
+ if (!document_xml.setContent(text_clipboard)) return;
DiagramContent content_pasted;
m_diagram->fromXml(document_xml, pos, false, &content_pasted);
@@ -425,6 +427,7 @@ void DiagramView::paste(const QPointF &pos, QClipboard::Mode clipboard_mode) {
/**
Colle le contenu du presse-papier sur le schema a la position de la souris
+ Pastes the contents of the clipboard into the diagram at the mouse position.
*/
void DiagramView::pasteHere()
{
diff --git a/sources/elementsmover.cpp b/sources/elementsmover.cpp
index 222010631..c4ea2c0f1 100644
--- a/sources/elementsmover.cpp
+++ b/sources/elementsmover.cpp
@@ -126,30 +126,28 @@ void ElementsMover::continueMovement(const QPointF &movement)
| dc::Images
| dc::Shapes
| dc::ElementTextFields
- | dc::TextGroup
- | dc::ConductorsToMove))
+ | dc::TextGroup))
{
if (qgi == m_movement_driver)
continue;
qgi->setPos(qgi->pos() + movement);
}
- // Move some conductors
+ QVectorlist_conductors;
+ for(auto *con : m_moved_content.m_conductors_to_move){
+ list_conductors << con;
+ }
+
+ // update conductors 'conductors_to_move'
+ for(auto *cond : list_conductors){
+ cond->updatePath();
+ if(cond->textItem()->wasMovedByUser() == true)
+ cond->textItem()->setPos(cond->textItem()->pos()+movement);
+ }
+
+ // update conductors 'conductors_to_update'
for (auto &conductor : m_moved_content.m_conductors_to_update)
{
-#if TODO_LIST
-#pragma message("@TODO fix this problem correctly, probably we must see conductor class.")
-#endif
- //Due to a weird behavior, we must ensure that the position of the conductor is (0,0).
- //If not, in some unknown case the function QGraphicsScene::itemsBoundingRect() return a rectangle
- //that take into account the pos() of the conductor, even if the bounding rect returned by the conductor is not in the pos().
- //For the user this situation appears when the top right of the folio is not at the top right of the graphicsview,
- //but displaced to the right and/or bottom.
-
- //@TODO fix this problem correctly, probably we must see conductor class.
-// if (c->pos() != QPointF(0,0)) { //<- they work, but the conductor text return to its original pos when the pos is set by user and not auto
-// c->setPos(0,0); // because set the pos to 0,0 so text move to, and after call updatePath but because text pos is user defined
-// } // we don't move it.
conductor->updatePath();
}
diff --git a/sources/factory/propertieseditorfactory.cpp b/sources/factory/propertieseditorfactory.cpp
index 614391c99..35fd82090 100644
--- a/sources/factory/propertieseditorfactory.cpp
+++ b/sources/factory/propertieseditorfactory.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2021 QElectroTech Team
+ Copyright 2006-2025 QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
diff --git a/sources/machine_info.cpp b/sources/machine_info.cpp
index 56e2bfa28..c79fdef3c 100644
--- a/sources/machine_info.cpp
+++ b/sources/machine_info.cpp
@@ -446,6 +446,22 @@ int32_t MachineInfo::i_max_screen_height() {
return pc.screen.Max_height;
}
+/**
+ @brief MachineInfo::i_max_available_width
+ @return max available width
+*/
+int32_t MachineInfo::i_max_available_width() {
+ return QGuiApplication::primaryScreen()->availableSize().width();
+}
+
+/**
+ @brief MachineInfo::i_max_available_height
+ @return max available height
+*/
+int32_t MachineInfo::i_max_available_height() {
+ return QGuiApplication::primaryScreen()->availableSize().height();
+}
+
/**
@brief MachineInfo::compilation_info
@return compilation_info
diff --git a/sources/machine_info.h b/sources/machine_info.h
index a3a7201b6..f0265be27 100644
--- a/sources/machine_info.h
+++ b/sources/machine_info.h
@@ -57,6 +57,8 @@ class MachineInfo
int32_t i_max_screen_width();
int32_t i_max_screen_height();
+ int32_t i_max_available_width();
+ int32_t i_max_available_height();
QString compilation_info();
void send_info_to_debug();
diff --git a/sources/print/projectprintwindow.cpp b/sources/print/projectprintwindow.cpp
index 6522020d3..4b234e418 100644
--- a/sources/print/projectprintwindow.cpp
+++ b/sources/print/projectprintwindow.cpp
@@ -234,9 +234,9 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
{
////Prepare the print////
- //Deselect all
+ // Deselect all
diagram->deselectAll();
- //Disable focus flags
+ // Disable focus flags
QList focusable_items;
for (auto qgi : diagram->items()) {
if (qgi->flags() & QGraphicsItem::ItemIsFocusable) {
@@ -244,7 +244,7 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
qgi->setFlag(QGraphicsItem::ItemIsFocusable, false);
}
}
- //Disable interaction
+ // Disable interaction
for (auto view : diagram->views()) {
view->setInteractive(false);
}
@@ -254,7 +254,7 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
auto full_page = printer->fullPage();
- auto diagram_rect = diagramRect(diagram, option);
+ auto diagram_rect = QRectF(diagramRect(diagram, option));
if (fit_page) {
diagram->render(painter, QRectF(), diagram_rect, Qt::KeepAspectRatio);
} else {
@@ -266,57 +266,58 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
#pragma message("@TODO remove code for QT 6 or later")
#endif
qDebug()<<"Help code for QT 6 or later";
- auto printed_rect = full_page ? printer->paperRect(QPrinter::Millimeter) : printer->pageRect(QPrinter::Millimeter);
+ auto printed_rect = full_page ? printer->paperRect(QPrinter::Millimeter) :
+ printer->pageRect(QPrinter::Millimeter);
#endif
auto used_width = printed_rect.width();
auto used_height = printed_rect.height();
auto h_pages_count = horizontalPagesCount(diagram, option, full_page);
auto v_pages_count = verticalPagesCount(diagram, option, full_page);
- QVector> page_grid;
- //The diagram is printed on a matrix of sheet
- //scrolls through the rows of the matrix
+ QVector> page_grid;
+ // The diagram is printed on a matrix of sheet
+ // scrolls through the rows of the matrix
auto y_offset = 0;
- for (auto i=0 ; i();
- //scrolls through the lines of sheet
+ page_grid << QVector();
+ // scrolls through the lines of sheet
auto x_offset = 0;
for (auto j=0 ; j page_to_print;
+ // Retains only the pages to be printed
+ QVector page_to_print;
for (auto i=0 ; i < v_pages_count ; ++i) {
for (int j=0 ; j < h_pages_count ; ++j) {
page_to_print << page_grid.at(i).at(j);
}
}
- //Scrolls through the page for print
+ // Scrolls through the page for print
bool first_ = true;
- for (auto page : page_to_print)
+ for (auto& page : page_to_print)
{
first_ ? first_ = false : m_printer->newPage();
- diagram->render(painter, QRect(QPoint(0,0), page.size()), page.translated(diagram_rect.topLeft()), Qt::KeepAspectRatio);
+ diagram->render(
+ painter,
+ QRectF(QPoint(0, 0), page.size()),
+ page.translated(diagram_rect.topLeft()),
+ Qt::KeepAspectRatio);
}
}
- ////Print is finished, restore diagram and graphics item properties
+ ////Print is finished, restore diagram and graphics item properties
for (auto view : diagram->views()) {
view->setInteractive(true);
}
diff --git a/sources/qetapp.cpp b/sources/qetapp.cpp
index 13531ff8e..efcdea8a0 100644
--- a/sources/qetapp.cpp
+++ b/sources/qetapp.cpp
@@ -1261,6 +1261,7 @@ QFont QETApp::diagramTextsFont(qreal size)
QFont diagram_texts_font = QFont(diagram_texts_family);
diagram_texts_font.setPointSizeF(diagram_texts_size);
diagram_texts_font.setWeight(diagram_texts_item_weight);
+ diagram_texts_font.setStyleHint(QFont::SansSerif);
diagram_texts_font.setStyleName(diagram_texts_item_style);
if (diagram_texts_size <= 4.0) {
diagram_texts_font.setWeight(QFont::Light);
@@ -1294,6 +1295,7 @@ QFont QETApp::diagramTextsItemFont(qreal size)
QFont diagram_texts_item_font = QFont(diagram_texts_item_family);
diagram_texts_item_font.setPointSizeF(diagram_texts_item_size);
diagram_texts_item_font.setWeight(diagram_texts_item_weight);
+ diagram_texts_item_font.setStyleHint(QFont::SansSerif);
diagram_texts_item_font.setStyleName(diagram_texts_item_style);
if (diagram_texts_item_size <= 4.0) {
diagram_texts_item_font.setWeight(QFont::Light);
@@ -1934,7 +1936,10 @@ void QETApp::configureQET()
// associe le dialogue a un eventuel widget parent
if (parent_widget) {
cd.setParent(parent_widget, cd.windowFlags());
- cd.setMaximumSize(parent_widget->size());
+ cd.setMaximumWidth(std::min(parent_widget->width(),
+ (int)(0.94 * MachineInfo::instance()->i_max_available_width())));
+ cd.setMaximumHeight(std::min(parent_widget->height(),
+ (int)(0.94 * MachineInfo::instance()->i_max_available_height())));
}
// display the dialog then avoid linking it to any parent widget
diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp
index 8e8b8c263..b184017e0 100644
--- a/sources/qetdiagrameditor.cpp
+++ b/sources/qetdiagrameditor.cpp
@@ -775,12 +775,12 @@ void QETDiagramEditor::setUpToolBar()
void QETDiagramEditor::setUpMenu()
{
- QMenu *menu_fichier = new QMenu(tr("&Fichier"));
- QMenu *menu_edition = new QMenu(tr("&Édition"));
- QMenu *menu_project = new QMenu(tr("&Projet"));
- QMenu *menu_affichage = new QMenu(tr("Afficha&ge"));
- //QMenu *menu_outils = new QMenu(tr("O&utils"));
- windows_menu = new QMenu(tr("Fe&nêtres"));
+ QMenu* menu_fichier = new QMenu(tr("&Fichier"), this);
+ QMenu* menu_edition = new QMenu(tr("&Édition"), this);
+ QMenu* menu_project = new QMenu(tr("&Projet"), this);
+ QMenu* menu_affichage = new QMenu(tr("Afficha&ge"), this);
+ // QMenu *menu_outils = new QMenu(tr("O&utils"), this);
+ windows_menu = new QMenu(tr("Fe&nêtres"), this);
insertMenu(settings_menu_, menu_fichier);
insertMenu(settings_menu_, menu_edition);
@@ -1469,12 +1469,21 @@ void QETDiagramEditor::selectionGroupTriggered(QAction *action)
if (!dv || value.isEmpty()) return;
- if (value == "delete_selection")
- {
- diagram->clearSelection();
- diagram->undoStack().push(new DeleteQGraphicsItemCommand(diagram, dc));
- dv->adjustSceneRect();
- }
+ if (value == "delete_selection")
+ {
+ if (DeleteQGraphicsItemCommand::hasNonDeletableTerminal(dc)) {
+ QET::QetMessageBox::information(this,
+ tr("Suppression de borne impossible"),
+ tr("La suppression ne peut être effectué car la selection "
+ "possède une ou plusieurs bornes ponté et/ou appartenant à une borne à niveau multiple.\n"
+ "Déponter et/ou supprimer les niveaux des bornes concerné "
+ "afin de pouvoir les supprimer"));
+ } else {
+ diagram->clearSelection();
+ diagram->undoStack().push(new DeleteQGraphicsItemCommand(diagram, dc));
+ dv->adjustSceneRect();
+ }
+ }
else if (value == "rotate_selection")
{
RotateSelectionCommand *c = new RotateSelectionCommand(diagram);
diff --git a/sources/qetdiagrameditor.h b/sources/qetdiagrameditor.h
index 5bd7b280a..463e0b8c0 100644
--- a/sources/qetdiagrameditor.h
+++ b/sources/qetdiagrameditor.h
@@ -54,6 +54,8 @@ class KAutoSaveFile;
class QETDiagramEditor : public QETMainWindow
{
Q_OBJECT
+
+ friend class TerminalStripEditorWindow;
public:
QETDiagramEditor(
diff --git a/sources/qetgraphicsitem/ViewItem/projectdbmodel.cpp b/sources/qetgraphicsitem/ViewItem/projectdbmodel.cpp
index 89a7a4135..9ceeda548 100644
--- a/sources/qetgraphicsitem/ViewItem/projectdbmodel.cpp
+++ b/sources/qetgraphicsitem/ViewItem/projectdbmodel.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2021 QElectroTech Team
+ Copyright 2006-2025 QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
diff --git a/sources/qetgraphicsitem/conductor.cpp b/sources/qetgraphicsitem/conductor.cpp
index ecca2c370..d150ff22b 100644
--- a/sources/qetgraphicsitem/conductor.cpp
+++ b/sources/qetgraphicsitem/conductor.cpp
@@ -229,43 +229,53 @@ void Conductor::updateConductorPath(const QPointF &p1, Qet::Orientation o1, cons
Q_ASSERT_X(!conductor_profile.isNull(), "Conductor::priv_modifieConductor", "pas de profil utilisable");
// recupere les coordonnees fournies des bornes
+ // retrieve the coordinates provided for the terminals
QPointF new_p1 = mapFromScene(p1);
QPointF new_p2 = mapFromScene(p2);
QRectF new_rect = QRectF(new_p1, new_p2);
// recupere la largeur et la hauteur du profil
+ // retrieve the width and height of the profile
qreal profile_width = conductor_profile.width();
qreal profile_height = conductor_profile.height();
// calcule les differences verticales et horizontales a appliquer
+ // calculates the vertical and horizontal differences to be applied
qreal h_diff = (qAbs(new_rect.width()) - qAbs(profile_width) ) * getSign(profile_width);
qreal v_diff = (qAbs(new_rect.height()) - qAbs(profile_height)) * getSign(profile_height);
// applique les differences aux segments
+ // apply the differences to the segments
QMultiHash segments_lengths;
segments_lengths.unite(shareOffsetBetweenSegments(h_diff, conductor_profile.horizontalSegments()));
segments_lengths.unite(shareOffsetBetweenSegments(v_diff, conductor_profile.verticalSegments()));
// en deduit egalement les coefficients d'inversion (-1 pour une inversion, +1 pour conserver le meme sens)
+ // also deduce the inversion coefficients (-1 for inversion, +1 to keep the same direction)
int horiz_coeff = getCoeff(new_rect.width(), profile_width);
int verti_coeff = getCoeff(new_rect.height(), profile_height);
// genere les nouveaux points
+ // generate the new points
QList points;
points << new_p1;
int limit = conductor_profile.segments.count() - 1;
for (int i = 0 ; i < limit ; ++ i) {
// dernier point
+ // last point
QPointF previous_point = points.last();
// profil de segment de conducteur en cours
+ // current conductor segment profile
ConductorSegmentProfile *csp = conductor_profile.segments.at(i);
// coefficient et offset a utiliser pour ce point
+ // coefficient and offset to be used for this point
qreal coeff = csp -> isHorizontal ? horiz_coeff : verti_coeff;
qreal offset_applied = segments_lengths.value(csp);
// applique l'offset et le coeff au point
+ // apply coefficient and offset to point
if (csp -> isHorizontal) {
points << QPointF (
previous_point.x() + (coeff * offset_applied),
@@ -989,16 +999,16 @@ void Conductor::pointsToSegments(const QList& points_list) {
/**
@brief Conductor::fromXml
- Load the conductor and her information from xml element
+ Load the conductor and its information from xml element
@param dom_element
- @return true is loading success else return false
+ @return true if loading succeeded else return false
*/
bool Conductor::fromXml(QDomElement &dom_element)
{
setPos(dom_element.attribute("x", nullptr).toDouble(),
dom_element.attribute("y", nullptr).toDouble());
- bool return_ = pathFromXml(dom_element);
+ bool retval = pathFromXml(dom_element);
m_text_item -> fromXml(dom_element);
ConductorProperties pr;
@@ -1010,11 +1020,11 @@ bool Conductor::fromXml(QDomElement &dom_element)
else
m_autoNum_seq.fromXml(dom_element.firstChildElement("sequentialNumbers"));
- m_freeze_label = dom_element.attribute("freezeLabel") == "true"? true : false;
+ m_freeze_label = dom_element.attribute("freezeLabel") == "true" ? true : false;
setProperties(pr);
- return return_;
+ return retval;
}
/**
@@ -1134,13 +1144,14 @@ bool Conductor::pathFromXml(const QDomElement &e) {
}
}
- //If there isn't segment we generate automatic path and return true
+ // If there is no segment, we generate an automatic path and return true
if (!segments_x.size()) {
generateConductorPath(terminal1 -> dockConductor(), terminal1 -> orientation(), terminal2 -> dockConductor(), terminal2 -> orientation());
return(true);
}
// les longueurs recueillies doivent etre coherentes avec les positions des bornes
+ // The collected lengths must be consistent with the positions of the terminals
qreal width = 0.0, height = 0.0;
foreach (qreal t, segments_x) width += t;
foreach (qreal t, segments_y) height += t;
@@ -1256,65 +1267,57 @@ ConductorSegment *Conductor::middleSegment()
*/
QPointF Conductor::posForText(Qt::Orientations &flag)
{
-
- ConductorSegment *segment = segments;
- bool all_segment_is_vertical = true;
- bool all_segment_is_horizontal = true;
+ ConductorSegment *segment = segments;
+ bool all_segments_are_vertical = true;
+ bool all_segments_are_horizontal = true;
//Go to first segment
while (!segment->isFirstSegment()) {
segment = segment->previousSegment();
}
-
QPointF p1 = segment -> firstPoint(); // firstPoint().x() != segment -> secondPoint().x())
- all_segment_is_vertical = false;
+ all_segments_are_vertical = false;
if (segment -> firstPoint().y() != segment -> secondPoint().y())
- all_segment_is_horizontal = false;
-
+ all_segments_are_horizontal = false;
+ // find longest segment
while (segment -> hasNextSegment())
{
segment = segment -> nextSegment();
-
if (segment -> firstPoint().x() != segment -> secondPoint().x())
- all_segment_is_vertical = false;
+ all_segments_are_vertical = false;
if (segment -> firstPoint().y() != segment -> secondPoint().y())
- all_segment_is_horizontal = false;
+ all_segments_are_horizontal = false;
- //We must compare length segment, but they can be negative
- //so we multiply by -1 to make it positive.
- int saved = biggest_segment -> length();
- if (saved < 0) saved *= -1;
- int curent = segment->length();
- if (curent < 0) curent *= -1;
-
- if (curent > saved) biggest_segment = segment;
+ if (qAbs(segment->length()) > qAbs(longest_segment -> length()))
+ longest_segment = segment;
}
- QPointF p2 = segment -> secondPoint();// secondPoint(); // p2.y()) {
p1.setY(p1.y() - (length()/2));
} else {
p1.setY(p1.y() + (length()/2));
}
- } else if (all_segment_is_horizontal) { // p2.x()) {
p1.setX(p1.x() - (length()/2));
} else {
p1.setX(p1.x() + (length()/2));
}
- } else { //Return the point at the middle of biggest segment.
- p1 = biggest_segment->middle();
- flag = (biggest_segment->isHorizontal())? Qt::Horizontal : Qt::Vertical;
+ } else { //Return the point at the middle of longest segment.
+ p1 = longest_segment->middle();
+ flag = (longest_segment->isHorizontal())? Qt::Horizontal : Qt::Vertical;
}
return p1;
}
@@ -1336,8 +1339,8 @@ void Conductor::calculateTextItemPosition()
Conductor *longest_conductor = longestConductorInPotential(this);
- //The longest conductor isn't this conductor
- //we call calculateTextItemPosition of the longest conductor
+ //This conductor isn't the longest conductor?
+ //We call calculateTextItemPosition for the longest conductor
if(longest_conductor != this)
{
longest_conductor -> calculateTextItemPosition();
@@ -1355,7 +1358,7 @@ void Conductor::calculateTextItemPosition()
//position
if (m_text_item -> wasMovedByUser())
{
- //Text field was moved by user :
+ //Text field was moved by user:
//we check if text field is yet near the conductor
QPointF text_item_pos = m_text_item -> pos();
QPainterPath near_shape = nearShape();
@@ -1392,7 +1395,7 @@ void Conductor::calculateTextItemPosition()
m_text_item -> setPos(text_pos);
- //Ensure text item don't collide with this conductor
+ //Ensure text item does not collide with this conductor
while (m_text_item->collidesWithItem(this))
{
if(rotation == Qt::Vertical)
@@ -1420,6 +1423,7 @@ void Conductor::calculateTextItemPosition()
/**
Sauvegarde le profil courant du conducteur pour l'utiliser ulterieurement
dans priv_modifieConductor.
+ Save the current conductors profile for later use in priv_modifieConductor.
*/
void Conductor::saveProfile(bool undo) {
Qt::Corner current_path_type = currentPathType();
@@ -1486,7 +1490,7 @@ ConductorProfile Conductor::profile(Qt::Corner path_type) const
/**
@brief Conductor::refreshText
Refresh the text of this conductor.
- recalcule and set the text according to the formula.
+ recalculate and set the text according to the formula.
*/
void Conductor::refreshText()
{
diff --git a/sources/qetgraphicsitem/crossrefitem.cpp b/sources/qetgraphicsitem/crossrefitem.cpp
index 98d941c6a..58a964d1f 100644
--- a/sources/qetgraphicsitem/crossrefitem.cpp
+++ b/sources/qetgraphicsitem/crossrefitem.cpp
@@ -320,24 +320,7 @@ void CrossRefItem::paint(
void CrossRefItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
{
event->accept();
- if (m_hovered_contact && m_hovered_contact->scene())
- {
- //Show and select the linked slave element
- if (scene() != m_hovered_contact->scene())
- {
- m_hovered_contact->diagram()->showMe();
- }
- m_hovered_contact->setSelected(true);
-
- //Zoom to the linked slave element
- foreach(QGraphicsView *view,
- m_hovered_contact->diagram()->views())
- {
- QRectF fit = m_hovered_contact->sceneBoundingRect();
- fit.adjust(-200, -200, 200, 200);
- view->fitInView(fit, Qt::KeepAspectRatioByExpanding);
- }
- }
+ QetGraphicsItem::showItem(m_hovered_contact);
}
/**
diff --git a/sources/qetgraphicsitem/diagramtextitem.cpp b/sources/qetgraphicsitem/diagramtextitem.cpp
index 6b97994c3..cba7b5321 100644
--- a/sources/qetgraphicsitem/diagramtextitem.cpp
+++ b/sources/qetgraphicsitem/diagramtextitem.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2021 QElectroTech Team
+ Copyright 2006-2025 QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
diff --git a/sources/qetgraphicsitem/dynamicelementtextitem.cpp b/sources/qetgraphicsitem/dynamicelementtextitem.cpp
index 41a2474bd..c4c9e4400 100644
--- a/sources/qetgraphicsitem/dynamicelementtextitem.cpp
+++ b/sources/qetgraphicsitem/dynamicelementtextitem.cpp
@@ -1212,6 +1212,12 @@ QString DynamicElementTextItem::reportReplacedCompositeText() const
label = autonum::AssignVariables::formulaToLabel(label, elmt->rSequenceStruct(), elmt->diagram(), elmt);
string.replace("%{label}", label);
}
+ // if element is not linked, replace an empty string
+ else
+ {
+ string.replace("%{label}", "");
+ }
+
if (m_watched_conductor)
{
if(string.contains("%{function}"))
@@ -1223,6 +1229,18 @@ QString DynamicElementTextItem::reportReplacedCompositeText() const
if(string.contains("%{conductor_section}"))
string.replace("%{conductor_section}", m_watched_conductor.data()->properties().m_wire_section);
}
+ // if no conductor is connected, replace an empty String
+ else
+ {
+ if(string.contains("%{function}"))
+ string.replace("%{function}", "");
+ if(string.contains("%{tension_protocol}"))
+ string.replace("%{tension_protocol}", "");
+ if(string.contains("%{conductor_color}"))
+ string.replace("%{conductor_color}", "");
+ if(string.contains("%{conductor_section}"))
+ string.replace("%{conductor_section}", "");
+ }
}
return string;
@@ -1259,18 +1277,8 @@ void DynamicElementTextItem::zoomToLinkedElement()
//move when linked element is in the same scene of this.
setSelected(false);
ungrabMouse();
-
- if(scene() != zoomed_element->scene())
- zoomed_element->diagram()->showMe();
- zoomed_element->setSelected(true);
-
- //Zoom to the element
- for(QGraphicsView *view : zoomed_element->scene()->views())
- {
- QRectF fit = zoomed_element->sceneBoundingRect();
- fit.adjust(-200, -200, 200, 200);
- view->fitInView(fit, Qt::KeepAspectRatioByExpanding);
- }
+
+ QetGraphicsItem::showItem(zoomed_element);
}
}
diff --git a/sources/qetgraphicsitem/element.cpp b/sources/qetgraphicsitem/element.cpp
index a362b25d0..a11cc232e 100644
--- a/sources/qetgraphicsitem/element.cpp
+++ b/sources/qetgraphicsitem/element.cpp
@@ -35,6 +35,7 @@
#include "iostream"
#include "../qetxml.h"
#include "../qetversion.h"
+#include "qgraphicsitemutility.h"
#include
#include
@@ -236,7 +237,7 @@ void Element::paint(
//Draw the selection rectangle
if ( isSelected() || m_mouse_over ) {
- drawSelection(painter, options);
+ QGIUtility::drawBoundingRectSelection(this, painter);
}
}
@@ -334,34 +335,6 @@ void Element::drawAxes(
/*** Methodes privees ***/
-/**
- Dessine le cadre de selection de l'element de maniere systematiquement non antialiasee.
- @param painter Le QPainter a utiliser pour dessiner les bornes.
- @param options Les options de style a prendre en compte
-*/
-void Element::drawSelection(
- QPainter *painter,
- const QStyleOptionGraphicsItem *options)
-{
- Q_UNUSED(options)
- painter -> save();
- // Annulation des renderhints
- painter -> setRenderHint(QPainter::Antialiasing, false);
- painter -> setRenderHint(QPainter::TextAntialiasing, false);
- painter -> setRenderHint(QPainter::SmoothPixmapTransform, false);
- // Dessin du cadre de selection en gris
- QPen t;
- t.setColor(Qt::gray);
- t.setStyle(Qt::DashDotLine);
- t.setCosmetic(true);
- painter -> setPen(t);
- // Le dessin se fait a partir du rectangle delimitant
- painter -> drawRoundedRect(boundingRect().adjusted(1, 1, -1, -1),
- 10,
- 10);
- painter -> restore();
-}
-
/**
Dessine le cadre de selection de l'element de maniere systematiquement non antialiasee.
@param painter Le QPainter a utiliser pour dessiner les bornes.
diff --git a/sources/qetgraphicsitem/element.h b/sources/qetgraphicsitem/element.h
index 4a0e9c55d..0b89bfc41 100644
--- a/sources/qetgraphicsitem/element.h
+++ b/sources/qetgraphicsitem/element.h
@@ -198,9 +198,6 @@ class Element : public QetGraphicsItem
void setSize(int, int);
private:
- void drawSelection(
- QPainter *,
- const QStyleOptionGraphicsItem *);
void drawHighlight(
QPainter *,
const QStyleOptionGraphicsItem *);
diff --git a/sources/qetgraphicsitem/qetgraphicsitem.cpp b/sources/qetgraphicsitem/qetgraphicsitem.cpp
index 7ec07d33d..1dad86e0d 100644
--- a/sources/qetgraphicsitem/qetgraphicsitem.cpp
+++ b/sources/qetgraphicsitem/qetgraphicsitem.cpp
@@ -24,12 +24,31 @@
Default constructor
@param parent : Parent Item
*/
+void QetGraphicsItem::showItem(QetGraphicsItem *item)
+{
+ if (item && item->diagram())
+ {
+ item->diagram()->showMe();
+ item->setSelected(true);
+
+ //Zoom to the item
+ for(QGraphicsView *view : item->scene()->views())
+ {
+ QRectF fit = item->sceneBoundingRect();
+ fit.adjust(-200, -200, 200, 200);
+ view->fitInView(fit, Qt::KeepAspectRatioByExpanding);
+ }
+ }
+}
+
QetGraphicsItem::QetGraphicsItem(QGraphicsItem *parent):
QGraphicsObject(parent),
is_movable_(true),
m_first_move(true),
snap_to_grid_(true)
-{}
+{
+ setAcceptHoverEvents(true);
+}
QetGraphicsItem::~QetGraphicsItem()
{}
@@ -68,6 +87,11 @@ bool QetGraphicsItem::isHovered() const {
return m_hovered;
}
+QPointF QetGraphicsItem::hoverMousePos() const
+{
+ return m_mouse_hover_pos;
+}
+
/**
@brief QetGraphicsItem::state
@return the current state of this item
@@ -166,6 +190,12 @@ void QetGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
QGraphicsObject::hoverEnterEvent(event);
}
+void QetGraphicsItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
+{
+ QGraphicsObject::hoverMoveEvent(event);
+ m_mouse_hover_pos = event->pos();
+}
+
void QetGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
m_hovered = false;
diff --git a/sources/qetgraphicsitem/qetgraphicsitem.h b/sources/qetgraphicsitem/qetgraphicsitem.h
index 5042a6a15..307abdf99 100644
--- a/sources/qetgraphicsitem/qetgraphicsitem.h
+++ b/sources/qetgraphicsitem/qetgraphicsitem.h
@@ -28,6 +28,9 @@ class QetGraphicsItem : public QGraphicsObject
{
Q_OBJECT
+ public :
+ static void showItem (QetGraphicsItem *item);
+
public:
//constructor destructor
QetGraphicsItem(QGraphicsItem *parent = nullptr);
@@ -43,6 +46,7 @@ class QetGraphicsItem : public QGraphicsObject
virtual void setMovable (bool movable) { is_movable_ = movable;}
bool isHovered() const;
+ QPointF hoverMousePos() const;
virtual void editProperty () {}
virtual QString name ()const
@@ -57,6 +61,7 @@ class QetGraphicsItem : public QGraphicsObject
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override;
+ void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override;
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override;
protected:
@@ -68,6 +73,7 @@ class QetGraphicsItem : public QGraphicsObject
private:
bool m_hovered{false};
+ QPointF m_mouse_hover_pos;
};
diff --git a/sources/qetgraphicsitem/slaveelement.cpp b/sources/qetgraphicsitem/slaveelement.cpp
index 0f7f1d7e4..0f88aa8df 100644
--- a/sources/qetgraphicsitem/slaveelement.cpp
+++ b/sources/qetgraphicsitem/slaveelement.cpp
@@ -18,8 +18,6 @@
#include "slaveelement.h"
#include "../diagram.h"
-#include "../diagramposition.h"
-#include "../qetapp.h"
#include "dynamicelementtextitem.h"
/**
@@ -33,9 +31,7 @@ SlaveElement::SlaveElement(const ElementsLocation &location,
QGraphicsItem *qgi,
int *state) :
Element(location, qgi, state, Element::Slave)
-{
- m_xref_item = nullptr;
-}
+{}
/**
@brief SlaveElement::~SlaveElement
diff --git a/sources/qetgraphicsitem/slaveelement.h b/sources/qetgraphicsitem/slaveelement.h
index 04f34908b..dc781ffed 100644
--- a/sources/qetgraphicsitem/slaveelement.h
+++ b/sources/qetgraphicsitem/slaveelement.h
@@ -18,7 +18,6 @@
#ifndef SLAVEELEMENT_H
#define SLAVEELEMENT_H
-#include "../properties/xrefproperties.h"
#include "element.h"
class SlaveElement : public Element
@@ -33,9 +32,6 @@ class SlaveElement : public Element
void linkToElement(Element *elmt) override;
void unlinkAllElements() override;
void unlinkElement(Element *elmt) override;
-
- private:
- QGraphicsTextItem *m_xref_item;
};
#endif // SLAVEELEMENT_H
diff --git a/sources/qetmainwindow.cpp b/sources/qetmainwindow.cpp
index db20a1a93..c9f4c9570 100644
--- a/sources/qetmainwindow.cpp
+++ b/sources/qetmainwindow.cpp
@@ -142,13 +142,12 @@ void QETMainWindow::initCommonActions()
*/
void QETMainWindow::initCommonMenus()
{
- settings_menu_ = new QMenu(tr("&Configuration", "window menu"));
+ settings_menu_ = new QMenu(tr("&Configuration", "window menu"), this);
settings_menu_ -> addAction(fullscreen_action_);
settings_menu_ -> addAction(configure_action_);
connect(settings_menu_, SIGNAL(aboutToShow()), this, SLOT(checkToolbarsmenu()));
-
- help_menu_ = new QMenu(tr("&Aide", "window menu"));
+ help_menu_ = new QMenu(tr("&Aide", "window menu"), this);
help_menu_ -> addAction(whatsthis_action_);
help_menu_ -> addSeparator();
help_menu_ -> addAction(manual_online_);
diff --git a/sources/qetproject.cpp b/sources/qetproject.cpp
index 3ecb8bdf6..e81b365b9 100644
--- a/sources/qetproject.cpp
+++ b/sources/qetproject.cpp
@@ -41,7 +41,7 @@
#include
#include
-static int BACKUP_INTERVAL = 120000; //interval in ms of backup = 2min
+static int BACKUP_INTERVAL = 1200000; //interval in ms of backup = 20min
/**
@brief QETProject::QETProject
diff --git a/sources/qetxml.cpp b/sources/qetxml.cpp
index d842dca60..2a99543f7 100644
--- a/sources/qetxml.cpp
+++ b/sources/qetxml.cpp
@@ -953,4 +953,93 @@ bool qGraphicsItemPosFromXml(QGraphicsItem *item, const QDomElement &xml_elmt)
return false;
}
+/**
+ * @brief orientationToAttribute
+ * Write the Qt::orientation has an attribute of @param element.
+ * Attribute name is 'orientation' value is 'horizontal' or 'vertical'
+ * @param orientation
+ * @param element
+ */
+void orientationToAttribute(const Qt::Orientation &orientation, QDomElement &element)
+{
+ element.setAttribute(QStringLiteral("orientation"),
+ orientation == Qt::Horizontal ? QStringLiteral("Horizontal") :
+ QStringLiteral("Vertical"));
+}
+
+/**
+ * @brief orientationFromAttribute
+ * @param element
+ * @param def_value
+ * @return the Qt::Orientation read in @param element. If an error occur
+ * the returned orientation is @param def_value.
+ */
+Qt::Orientation orientationFromAttribute(const QDomElement &element, Qt::Orientation def_value)
+{
+ if (element.hasAttribute(QStringLiteral("orientation"))) {
+ const auto str {element.attribute(QStringLiteral("orientation"))};
+ if (str == QLatin1String("Horizontal"))
+ return Qt::Horizontal;
+ else if (str == QLatin1String("Vertical"))
+ return Qt::Vertical;
+ }
+ //Error occur during reading, we return the default value
+ return def_value;
+}
+
+void alignmentToAttribute(const Qt::Alignment &alignment, QDomElement &element)
+{
+ QStringList al;
+ if (alignment &Qt::AlignLeft)
+ al.append(QStringLiteral("Left"));
+ if (alignment &Qt::AlignRight)
+ al.append(QStringLiteral("Right"));
+ if (alignment &Qt::AlignHCenter)
+ al.append(QStringLiteral("HCenter"));
+ if (alignment &Qt::AlignJustify)
+ al.append(QStringLiteral("Justify"));
+ if (alignment &Qt::AlignTop)
+ al.append(QStringLiteral("Top"));
+ if (alignment &Qt::AlignBottom)
+ al.append(QStringLiteral("Bottom"));
+ if (alignment &Qt::AlignBottom)
+ al.append(QStringLiteral("VCenter"));
+ if (alignment &Qt::AlignBaseline)
+ al.append(QStringLiteral("Baseline"));
+
+ element.setAttribute(QStringLiteral("alignment"),al.join(QStringLiteral(" ")));
+}
+
+/**
+ * @brief alignmentFromAttribute
+ * @param element
+ * @return The alignment read in @param element. If an error
+ * occured the return Qt::alignment contain no set flag.
+ */
+Qt::Alignment alignmentFromAttribute(const QDomElement &element)
+{
+ Qt::Alignment al;
+ if (element.hasAttribute(QStringLiteral("alignment"))) {
+ const auto alignment {element.attribute(QStringLiteral("alignment"))};
+ if(alignment.contains(QStringLiteral("Left")))
+ al = al | Qt::AlignLeft;
+ if(alignment.contains(QStringLiteral("Right")))
+ al = al | Qt::AlignRight;
+ if(alignment.contains(QStringLiteral("HCenter")))
+ al = al | Qt::AlignHCenter;
+ if(alignment.contains(QStringLiteral("Justify")))
+ al = al | Qt::AlignJustify;
+ if(alignment.contains(QStringLiteral("Top")))
+ al = al | Qt::AlignTop;
+ if(alignment.contains(QStringLiteral("Bottom")))
+ al = al | Qt::AlignBottom;
+ if(alignment.contains(QStringLiteral("VCenter")))
+ al = al | Qt::AlignVCenter;
+ if(alignment.contains(QStringLiteral("Baseline")))
+ al = al | Qt::AlignBaseline;
+ }
+
+ return al;
+}
+
}
diff --git a/sources/qetxml.h b/sources/qetxml.h
index d98756978..1e8445cf3 100644
--- a/sources/qetxml.h
+++ b/sources/qetxml.h
@@ -94,6 +94,12 @@ namespace QETXML
QDomElement qGraphicsItemPosToXml(QGraphicsItem *item, QDomDocument &document);
bool qGraphicsItemPosFromXml(QGraphicsItem *item, const QDomElement &xml_elmt);
+ void orientationToAttribute(const Qt::Orientation &orientation, QDomElement &element);
+ Qt::Orientation orientationFromAttribute(const QDomElement &element, Qt::Orientation def_value = Qt::Vertical);
+
+ void alignmentToAttribute(const Qt::Alignment &alignment, QDomElement &element);
+ Qt::Alignment alignmentFromAttribute (const QDomElement &element);
+
QString boolToString(bool value);
bool boolFromString(const QString &value,
bool default_value = true,
diff --git a/sources/svg/qetsvg.cpp b/sources/svg/qetsvg.cpp
new file mode 100644
index 000000000..c1fa1bdca
--- /dev/null
+++ b/sources/svg/qetsvg.cpp
@@ -0,0 +1,151 @@
+/*
+ Copyright 2006-2025 The QElectroTech Team
+ This file is part of QElectroTech.
+
+ QElectroTech 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 2 of the License, or
+ (at your option) any later version.
+
+ QElectroTech 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 QElectroTech. If not, see .
+*/
+
+#include "qetsvg.h"
+
+#include
+#include
+#include <../qet.h>
+
+/**
+ * @brief QETSVG::rectToElmt
+ * Write a QRect as a svg rect element.
+ * @param rect
+ * @param parent_document
+ * @return
+ */
+QDomElement QETSVG::rectToElmt(const QRectF &rect, QDomDocument &parent_document)
+{
+ auto dom_element = parent_document.createElement(QStringLiteral("rect"));
+ if (!rect.isNull()) {
+ dom_element.setAttribute(QStringLiteral("x"), rect.x());
+ yToAttribute(rect.y(), dom_element);
+ dom_element.setAttribute(QStringLiteral("width"), rect.width());
+ heightToAttribute(rect.height(), dom_element);
+ }
+ return dom_element;
+}
+
+/**
+ * @brief QETSVG::rectFromElmt
+ * @param xml_element : xml_element of an svg rect.
+ * The tag name must be 'rect' if not, the returned QRect is null.
+ * @return a svg rect to QRect
+ */
+QRectF QETSVG::rectFromElmt(const QDomElement &xml_element)
+{
+ QRectF rect_;
+ if (xml_element.tagName() == QLatin1String("rect")) {
+ rect_.setRect(xml_element.attribute(QStringLiteral("x"), QStringLiteral("0")).toDouble(),
+ yFromAttribute(xml_element, 0),
+ xml_element.attribute(QStringLiteral("width"), QStringLiteral("10")).toDouble(),
+ heightFromAttribute(xml_element, 10));
+ }
+ return rect_;
+}
+
+/**
+ * @brief QETSVG::yToAttribute
+ * @param y
+ * @param xml_element
+ */
+void QETSVG::yToAttribute(const qreal &y, QDomElement &xml_element) {
+ xml_element.setAttribute(QStringLiteral("y"), QString::number(y));
+}
+
+/**
+ * @brief QETSVG::yFromAttribute
+ * @param xml_element
+ * @param def_value
+ * @return
+ */
+qreal QETSVG::yFromAttribute(const QDomElement &xml_element, const qreal &def_value) {
+ qreal value_;
+ if (QET::attributeIsAReal(xml_element, QStringLiteral("y"), &value_)) {
+ return value_;
+ }
+ return def_value;
+}
+
+/**
+ * @brief QETSVG::heightToAttribute
+ * @param height
+ * @param xml_element
+ */
+void QETSVG::heightToAttribute(const qreal &height, QDomElement &xml_element) {
+ xml_element.setAttribute(QStringLiteral("height"), QString::number(height));
+}
+
+qreal QETSVG::heightFromAttribute(const QDomElement &xml_element, const qreal &def_value) {
+ qreal value_;
+ if (QET::attributeIsAReal(xml_element, QStringLiteral("height"), &value_)) {
+ return value_;
+ }
+ return def_value;
+}
+
+void QETSVG::rToAttribute(const qreal &r, QDomElement &xml_element) {
+ xml_element.setAttribute(QStringLiteral("r"), QString::number(r));
+}
+
+qreal QETSVG::rFromAttribute(const QDomElement &xml_element, const qreal &def_value) {
+ qreal value_;
+ if (QET::attributeIsAReal(xml_element, QStringLiteral("r"), &value_)) {
+ return value_;
+ }
+ return def_value;
+
+}
+
+void QETSVG::pointsToAttribute(const QVector &points, QDomElement &xml_element)
+{
+ QStringList strl_;
+ for (const auto &point : points) {
+ strl_.append(QString::number(point.x()) +
+ QString(",") +
+ QString::number(point.y()));
+ }
+
+ xml_element.setAttribute(QStringLiteral("points"), strl_.join(" "));
+}
+
+/**
+ * @brief QETSVG::pointsFromAttribute
+ * @param xml_element
+ * @return a vector of points stored in attribute 'points' of @xml_element.
+ * The returned vector can be empty.
+ */
+QVector QETSVG::pointsFromAttribute(const QDomElement &xml_element)
+{
+ QVector vector_;
+ if (const auto string_points = xml_element.attribute(QStringLiteral("points")).split(QStringLiteral(" ")) ;
+ !string_points.isEmpty()) {
+ bool x_ok, y_ok; for (const auto &point : string_points) {
+ const auto string_x_y = point.split(QStringLiteral(","));
+ if (string_x_y.size() == 2) {
+ const auto x = string_x_y[0].toDouble(&x_ok);
+ const auto y = string_x_y[1].toDouble(&y_ok);
+ if (x_ok && y_ok) {
+ vector_.append(QPointF{x,y});
+ }
+ }
+ }
+ }
+
+ return vector_;
+}
diff --git a/sources/svg/qetsvg.h b/sources/svg/qetsvg.h
new file mode 100644
index 000000000..0577236ea
--- /dev/null
+++ b/sources/svg/qetsvg.h
@@ -0,0 +1,51 @@
+/*
+ Copyright 2006-2025 The QElectroTech Team
+ This file is part of QElectroTech.
+
+ QElectroTech 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 2 of the License, or
+ (at your option) any later version.
+
+ QElectroTech 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 QElectroTech. If not, see .
+*/
+#ifndef QETSVG_H
+#define QETSVG_H
+
+#include
+
+class QDomDocument;
+class QPointF;
+class QRectF;
+
+/**
+ * @namespace QETSVG
+ * @brief the QETSVG namespace provide function read and write svg.
+ * Some function work on xml element (ex rect) and some other
+ * work on attribute of an element (ex x)
+ */
+namespace QETSVG
+{
+ QDomElement rectToElmt(const QRectF &rect, QDomDocument &parent_document);
+ QRectF rectFromElmt(const QDomElement &xml_element);
+
+ void yToAttribute(const qreal &y, QDomElement &xml_element);
+ qreal yFromAttribute(const QDomElement &xml_element, const qreal &def_value=0);
+
+ void heightToAttribute(const qreal &height, QDomElement &xml_element);
+ qreal heightFromAttribute(const QDomElement &xml_element, const qreal &def_value=10);
+
+ void rToAttribute(const qreal &r, QDomElement &xml_element);
+ qreal rFromAttribute(const QDomElement &xml_element, const qreal &def_value=1);
+
+ void pointsToAttribute(const QVector &points, QDomElement &xml_element);
+ QVector pointsFromAttribute (const QDomElement &xml_element);
+}
+
+#endif // QETSVG_H
diff --git a/sources/titleblock/qettemplateeditor.cpp b/sources/titleblock/qettemplateeditor.cpp
index d270567cd..07dfb2d48 100644
--- a/sources/titleblock/qettemplateeditor.cpp
+++ b/sources/titleblock/qettemplateeditor.cpp
@@ -437,8 +437,8 @@ void QETTitleBlockTemplateEditor::initActions()
*/
void QETTitleBlockTemplateEditor::initMenus()
{
- file_menu_ = new QMenu(tr("&Fichier", "menu title"), this);
- edit_menu_ = new QMenu(tr("&Édition", "menu title"), this);
+ file_menu_ = new QMenu(tr("&Fichier", "menu title"), this);
+ edit_menu_ = new QMenu(tr("&Édition", "menu title"), this);
display_menu_ = new QMenu(tr("Afficha&ge", "menu title"), this);
file_menu_ -> addAction(new_);
diff --git a/sources/ui/configpage/generalconfigurationpage.cpp b/sources/ui/configpage/generalconfigurationpage.cpp
index 540cd1569..ad73b509c 100644
--- a/sources/ui/configpage/generalconfigurationpage.cpp
+++ b/sources/ui/configpage/generalconfigurationpage.cpp
@@ -21,6 +21,7 @@
#include "../../qeticons.h"
#include "ui_generalconfigurationpage.h"
#include "../../utils/qetsettings.h"
+#include "../../qetmessagebox.h"
#include
#include
@@ -83,7 +84,6 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) :
ui->m_use_gesture_trackpad->setChecked(settings.value("diagramview/gestures", false).toBool());
ui->m_save_label_paste->setChecked(settings.value("diagramcommands/erase-label-on-copy", true).toBool());
ui->m_use_folio_label->setChecked(settings.value("genericpanel/folio", true).toBool());
- ui->m_export_terminal->setChecked(settings.value("nomenclature-exportlist", true).toBool());
ui->m_border_0->setChecked(settings.value("border-columns_0", false).toBool());
ui->m_autosave_sb->setValue(settings.value("diagrameditor/autosave-interval", 0).toInt());
@@ -224,9 +224,6 @@ void GeneralConfigurationPage::applyConf()
//GENERIC PANEL
settings.setValue("genericpanel/folio",ui->m_use_folio_label->isChecked());
- //NOMENCLATURE
- settings.setValue("nomenclature/terminal-exportlist",ui->m_export_terminal->isChecked());
-
//DIAGRAM EDITOR
QString view_mode = ui->m_use_tab_mode_rb->isChecked() ? "tabbed" : "windowed";
@@ -564,3 +561,29 @@ void GeneralConfigurationPage::on_ElementEditor_Grid_PointSize_min_sb_valueChang
{
ui->ElementEditor_Grid_PointSize_max_sb->setMinimum(std::max(1, value));
}
+
+void GeneralConfigurationPage::on_m_hdpi_round_cb_clicked(bool checked)
+{
+ if (checked) {
+ if (QMessageBox::Cancel == QET::QetMessageBox::warning(
+ this,
+ tr("Fonctionnalité expérimental"),
+ tr("AVERTISSEMENT :\n"
+ "Toutes valeurs autre que ‘Pas d’arrondi’ peut causer des erreurs de rendu "
+ "du projet en fonction de :\n\n"
+ "1 - la valeur sélectionnée \n"
+ "2 - du dpi de l'écran \n"
+ "3 - Modifier le projet sur un autre ordinateur et/ou écran n'ayant pas les mêmes paramètres des points 1 et 2."),
+ QMessageBox::StandardButton::Cancel|QMessageBox::StandardButton::Ok,
+ QMessageBox::StandardButton::Cancel
+ )) {
+ ui->m_hdpi_round_cb->blockSignals(true);
+ ui->m_hdpi_round_cb->setChecked(false);
+ ui->m_hdpi_round_cb->blockSignals(false);
+ return;
+ }
+ }
+ ui->m_hdpi_round_label->setEnabled(checked);
+ ui->m_hdpi_round_policy_cb->setEnabled(checked);
+}
+
diff --git a/sources/ui/configpage/generalconfigurationpage.h b/sources/ui/configpage/generalconfigurationpage.h
index 96b41c41d..0c23db405 100644
--- a/sources/ui/configpage/generalconfigurationpage.h
+++ b/sources/ui/configpage/generalconfigurationpage.h
@@ -51,6 +51,8 @@ class GeneralConfigurationPage : public ConfigPage
void on_DiagramEditor_Grid_PointSize_min_sb_valueChanged(int value);
void on_ElementEditor_Grid_PointSize_min_sb_valueChanged(int value);
+ void on_m_hdpi_round_cb_clicked(bool checked);
+
private:
void fillLang();
diff --git a/sources/ui/configpage/generalconfigurationpage.ui b/sources/ui/configpage/generalconfigurationpage.ui
index c7af39ccd..38130c8b9 100644
--- a/sources/ui/configpage/generalconfigurationpage.ui
+++ b/sources/ui/configpage/generalconfigurationpage.ui
@@ -6,8 +6,8 @@
00
- 872
- 471
+ 955
+ 556
@@ -17,7 +17,7 @@
- 5
+ 0
@@ -82,7 +82,7 @@
-
+ 0
@@ -96,14 +96,28 @@
0
-
+
+
+
+
+
+
+
+
+
+ false
+ Méthode de mise à l'echelle des écrans à haute densité de pixels (hdpi) (appliqué au prochain lancement de QElectroTech) :
-
+
+
+ false
+
+
@@ -128,26 +142,42 @@
Projets
-
-
-
- Qt::Horizontal
+
+
+
+ Utiliser les numéros de folio à la place de leur position dans le projet
-
-
- 40
- 20
-
-
-
+
-
+ Sauvegarde automatique des projets (appliqué au prochain lancement de QElectroTech)
+
+
+
+ true
+
+
+ Désactivé
+
+
+ true
+
+
+ min
+
+
+ 200
+
+
+ 10
+
+
+
@@ -155,34 +185,7 @@
-
-
-
- Numéroter les colonnes de cartouche à partir de 0 (1 sinon)
-
-
-
-
-
-
- true
-
-
- Désactivé
-
-
- min
-
-
-
-
-
-
- Utiliser les numéros de folio à la place de leur position dans le projet
-
-
-
-
+ Qt::Vertical
@@ -195,10 +198,23 @@
+
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
-
+
- Exporter les bornes dans la nomenclature
+ Numéroter les colonnes de cartouche à partir de 0 (1 sinon)
@@ -1081,7 +1097,6 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
m_use_tab_mode_rbm_save_label_pastem_use_folio_label
- m_export_terminalm_border_0m_autosave_sbm_common_elmt_path_cb
diff --git a/sources/ui/dynamicelementtextitemeditor.cpp b/sources/ui/dynamicelementtextitemeditor.cpp
index 709da077b..9aee0f3c1 100644
--- a/sources/ui/dynamicelementtextitemeditor.cpp
+++ b/sources/ui/dynamicelementtextitemeditor.cpp
@@ -146,7 +146,6 @@ void DynamicElementTextItemEditor::setCurrentText(DynamicElementTextItem *text)
return;
ui->m_tree_view->expand(index);
-// ui->m_tree_view->expand(index.QModelIndex::model()->index(0,0)); // commented by plc-user: leads to crash, when other textitem was selected before
ui->m_tree_view->setCurrentIndex(index);
ui->m_remove_selection->setEnabled(true);
}
diff --git a/sources/ui/titleblockpropertieswidget.cpp b/sources/ui/titleblockpropertieswidget.cpp
index e1fb9e250..109362380 100644
--- a/sources/ui/titleblockpropertieswidget.cpp
+++ b/sources/ui/titleblockpropertieswidget.cpp
@@ -338,7 +338,7 @@ void TitleBlockPropertiesWidget::initDialog(
this,
SLOT(duplicateCurrentTitleBlockTemplate()));
- m_tbt_menu = new QMenu(tr("Title block templates actions"));
+ m_tbt_menu = new QMenu(tr("Title block templates actions"), ui->m_tbt_pb);
m_tbt_menu -> addAction(m_tbt_edit);
m_tbt_menu -> addAction(m_tbt_duplicate);
ui -> m_tbt_pb -> setMenu(m_tbt_menu);
diff --git a/sources/undocommand/deleteqgraphicsitemcommand.cpp b/sources/undocommand/deleteqgraphicsitemcommand.cpp
index 632c64a9a..ae145f25f 100644
--- a/sources/undocommand/deleteqgraphicsitemcommand.cpp
+++ b/sources/undocommand/deleteqgraphicsitemcommand.cpp
@@ -28,6 +28,8 @@
#include "../qetgraphicsitem/elementtextitemgroup.h"
#include "../qetgraphicsitem/terminal.h"
#include "addelementtextcommand.h"
+#include "../TerminalStrip/realterminal.h"
+#include "../TerminalStrip/physicalterminal.h"
/**
@brief DeleteQGraphicsItemCommand::DeleteQGraphicsItemCommand
@@ -115,6 +117,36 @@ DeleteQGraphicsItemCommand::~DeleteQGraphicsItemCommand()
m_diagram->qgiManager().release(m_removed_contents.items(DiagramContent::All));
}
+/**
+ * @brief DeleteQGraphicsItemCommand::hasNonDeletableTerminal
+ * Return true if @content have terminal element which can't be deleted.
+ * The reason why a terminal can't be deleted is because they have bridge
+ * or belong to a physical terminal with more than one level.
+ * @param diagram
+ * @param content
+ * @param dialog
+ * @return
+ */
+bool DeleteQGraphicsItemCommand::hasNonDeletableTerminal(const DiagramContent &content)
+{
+ if (!content.m_terminal_elements.isEmpty())
+ {
+ for (const auto &terminal : content.m_terminal_elements)
+ {
+ if (!terminal.isNull())
+ {
+ if (terminal->parentTerminalStrip()
+ && (terminal->realTerminal()->isBridged()
+ || terminal->realTerminal()->physicalTerminal()->levelCount() != 1)) {
+ return true;
+ }
+ }
+ }
+ }
+
+ return false;
+}
+
/**
@brief DeleteQGraphicsItemCommand::setPotentialsOfRemovedElements
This function creates new conductors (if needed) for conserve the electrical potentials
diff --git a/sources/undocommand/deleteqgraphicsitemcommand.h b/sources/undocommand/deleteqgraphicsitemcommand.h
index c4ad2946b..3b2f62c59 100644
--- a/sources/undocommand/deleteqgraphicsitemcommand.h
+++ b/sources/undocommand/deleteqgraphicsitemcommand.h
@@ -34,10 +34,10 @@ class DeleteQGraphicsItemCommand : public QUndoCommand
public:
DeleteQGraphicsItemCommand(Diagram *diagram, const DiagramContent &content, QUndoCommand * parent = nullptr);
~DeleteQGraphicsItemCommand() override;
+ static bool hasNonDeletableTerminal(const DiagramContent &content);
private:
DeleteQGraphicsItemCommand(const DeleteQGraphicsItemCommand &);
-
void setPotentialsOfRemovedElements();
Terminal *terminalInSamePotential(Terminal *terminal, Conductor *conductor_to_exclude);
diff --git a/sources/undocommand/movegraphicsitemcommand.cpp b/sources/undocommand/movegraphicsitemcommand.cpp
index 1140c968e..57a8027a3 100644
--- a/sources/undocommand/movegraphicsitemcommand.cpp
+++ b/sources/undocommand/movegraphicsitemcommand.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2022 The QElectroTech Team
+ Copyright 2006-2025 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
@@ -22,6 +22,7 @@
#include "../qetgraphicsitem/conductor.h"
#include "../qetgraphicsitem/elementtextitemgroup.h"
+#include "../qetgraphicsitem/conductortextitem.h"
#include "../diagram.h"
@@ -65,6 +66,7 @@ void MoveGraphicsItemCommand::undo()
m_diagram->showMe();
m_anim_group.setDirection(QAnimationGroup::Forward);
m_anim_group.start();
+ updateConductors(false);
}
QUndoCommand::undo();
}
@@ -87,6 +89,7 @@ void MoveGraphicsItemCommand::redo()
{
m_anim_group.setDirection(QAnimationGroup::Backward);
m_anim_group.start();
+ updateConductors(true);
}
}
QUndoCommand::redo();
@@ -137,19 +140,6 @@ void MoveGraphicsItemCommand::move(const QPointF &movement)
qgi->setPos(qgi->pos() + movement);
}
}
-
- //Move some conductors
- for (const auto &conductor : qAsConst(m_content.m_conductors_to_move)) {
- setupAnimation(conductor,
- "pos",
- conductor->pos(),
- conductor->pos() + movement);
- }
-
- //Recalculate the path of other conductors
- for (const auto &conductor : qAsConst(m_content.m_conductors_to_update)) {
- setupAnimation(conductor, "animPath", 1, 1);
- }
}
/**
@@ -167,9 +157,34 @@ void MoveGraphicsItemCommand::setupAnimation(QObject *target,
const QVariant &end)
{
QPropertyAnimation *animation{new QPropertyAnimation(target, property_name)};
- animation->setDuration(300);
+ // duration must be set to 0, otherwise the conductors will not be updated
+ animation->setDuration(0);
animation->setStartValue(start);
animation->setEndValue(end);
animation->setEasingCurve(QEasingCurve::OutQuad);
m_anim_group.addAnimation(animation);
}
+
+/**
+ * @brief MoveGraphicsItemCommand::connectConductors
+ * @param is_redo
+ */
+void MoveGraphicsItemCommand::updateConductors(bool is_redo)
+{
+ //Recalculate the path of 'conductors_to_move'
+ for (const auto &conductor : qAsConst(m_content.m_conductors_to_move)) {
+ conductor->updatePath();
+ if(conductor->textItem()->wasMovedByUser() == true){
+ if(is_redo)
+ conductor->textItem()->setPos(conductor->textItem()->pos() + m_movement);
+ else
+ conductor->textItem()->setPos(conductor->textItem()->pos() - m_movement);
+ }
+
+ }
+
+ // Recalculate the path of 'conductors_to_update'
+ for (const auto &conductor : qAsConst(m_content.m_conductors_to_update)) {
+ conductor->updatePath();
+ }
+}
diff --git a/sources/undocommand/movegraphicsitemcommand.h b/sources/undocommand/movegraphicsitemcommand.h
index 6b5722f59..0f3f7e3af 100644
--- a/sources/undocommand/movegraphicsitemcommand.h
+++ b/sources/undocommand/movegraphicsitemcommand.h
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2022 The QElectroTech Team
+ Copyright 2006-2025 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
@@ -49,6 +49,7 @@ class MoveGraphicsItemCommand : public QUndoCommand
private:
void move(const QPointF &movement);
+ void updateConductors(bool is_redo = false);
void setupAnimation(QObject *target,
const QByteArray &property_name,
const QVariant &start,
diff --git a/sources/utils/qetutils.cpp b/sources/utils/qetutils.cpp
index b724d8412..60934f9fd 100644
--- a/sources/utils/qetutils.cpp
+++ b/sources/utils/qetutils.cpp
@@ -132,3 +132,21 @@ bool QETUtils::sortBeginIntString(const QString &str_a, const QString &str_b)
return str_a -1) {
+ return;
+ }
+
+ auto px = font.pointSizeF()/72 * QFontMetrics{font}.fontDpi();
+ font.setPixelSize(qRound(px));
+}
diff --git a/sources/utils/qetutils.h b/sources/utils/qetutils.h
index 2e485ddef..0b09bef52 100644
--- a/sources/utils/qetutils.h
+++ b/sources/utils/qetutils.h
@@ -31,6 +31,7 @@ namespace QETUtils
QString marginsToString(const QMargins &margins);
QMargins marginsFromString(const QString &string);
qreal graphicsHandlerSize(QGraphicsItem *item);
+ void pixelSizedFont (QFont &font);
bool sortBeginIntString(const QString &str_a, const QString &str_b);
diff --git a/sources/xml/terminalstripitemxml.cpp b/sources/xml/terminalstripitemxml.cpp
index d10e946da..9a18e32c4 100644
--- a/sources/xml/terminalstripitemxml.cpp
+++ b/sources/xml/terminalstripitemxml.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2022 The QElectroTech Team
+ Copyright 2006-2025 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
diff --git a/sources/xml/terminalstripitemxml.h b/sources/xml/terminalstripitemxml.h
index a59d855d6..0a40ba403 100644
--- a/sources/xml/terminalstripitemxml.h
+++ b/sources/xml/terminalstripitemxml.h
@@ -1,5 +1,5 @@
/*
- Copyright 2006-2022 The QElectroTech Team
+ Copyright 2006-2025 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
diff --git a/sources/xml/terminalstriplayoutpatternxml.cpp b/sources/xml/terminalstriplayoutpatternxml.cpp
new file mode 100644
index 000000000..687dd5b53
--- /dev/null
+++ b/sources/xml/terminalstriplayoutpatternxml.cpp
@@ -0,0 +1,206 @@
+/*
+ Copyright 2006-2025 The QElectroTech Team
+ This file is part of QElectroTech.
+
+ QElectroTech 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 2 of the License, or
+ (at your option) any later version.
+
+ QElectroTech 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 QElectroTech. If not, see .
+*/
+#include "terminalstriplayoutpatternxml.h"
+
+#include "../TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.h"
+#include "../qetxml.h"
+#include "../svg/qetsvg.h"
+
+const QString LAYOUT_PATTERN_TAG_NAME { QStringLiteral("terminal_strip_layout_pattern") };
+const QString LAYOUTS_PATTERN_TAG_NAME { QStringLiteral("terminal_strip_layouts_pattern") };
+
+/**
+ * @brief TerminalStripLayoutPatternXml::toXml
+ * Save a vector of @class TerminalStripLayoutPattern into main xml element
+ * with tagg name 'terminal_strip_layouts_pattern' who itself embedded each single @class TerminalStripLayoutPattern
+ * into a xml element with tag name 'terminal_strip_layout_pattern' (layout without 'S' at the end)
+ * @param patterns
+ * @param document
+ * @return
+ */
+QDomElement TerminalStripLayoutPatternXml::toXml(const QVector > &patterns,
+ QDomDocument &document)
+{
+ auto dom_element = document.createElement(LAYOUTS_PATTERN_TAG_NAME);
+ for (const auto &pattern : patterns)
+ {
+ const auto child_ = toXml(pattern, document);
+ if (!child_.isNull()) {
+ dom_element.appendChild(child_);
+ }
+ }
+
+ return dom_element;
+}
+
+/**
+ * @brief TerminalStripLayoutPatternXml::fromXml
+ * Load a vector of @class TerminalStripLayoutPattern from a main xml element
+ * with tagg name 'terminal_strip_layouts_pattern' who itself have several child
+ * with tag name 'terminal_strip_layout_pattern' (layout without 'S' at the end) for every
+ * @class TerminalStripLayoutPattern to load
+ * @param element
+ * @return
+ */
+QVector > TerminalStripLayoutPatternXml::fromXml(const QDomElement &element)
+{
+ QVector > returned_vector;
+
+ for (const auto &dom_elmt : QETXML::subChild(element,
+ LAYOUTS_PATTERN_TAG_NAME,
+ LAYOUT_PATTERN_TAG_NAME))
+ {
+ auto layout_pattern = QSharedPointer::create();
+ fromXml(layout_pattern, dom_elmt);
+
+ returned_vector << layout_pattern;
+ }
+
+ return returned_vector;
+}
+
+/**
+ * @brief TerminalStripLayoutPatternXml::toXml
+ * Save a @class TerminalStripLayoutPattern to a xml element with tag name terminal_strip_layout_pattern
+ * @param pattern
+ * @param document
+ * @return
+ */
+QDomElement TerminalStripLayoutPatternXml::toXml(const QSharedPointer &pattern, QDomDocument &document)
+{
+ auto pattern_xml = document.createElement(LAYOUT_PATTERN_TAG_NAME);
+ if (!pattern.isNull()) {
+ //Write strip pattern attributes
+ pattern_xml.setAttribute(QStringLiteral("name"), pattern->m_name);
+ pattern_xml.setAttribute(QStringLiteral("uuid"), pattern->m_uuid.toString());
+
+ //Write header properties
+ auto header_xml = document.createElement(QStringLiteral("header"));
+ header_xml.appendChild(QETSVG::rectToElmt(pattern->m_header_rect, document));
+
+ auto header_text_xml = document.createElement(QStringLiteral("text"));
+ QETXML::orientationToAttribute(pattern->m_header_text_orientation, header_text_xml);
+ QETXML::alignmentToAttribute(pattern->headerTextAlignment(),header_text_xml);
+
+ //Write spacer properties
+ auto spacer_xml = document.createElement(QStringLiteral("spacer"));
+ spacer_xml.appendChild(QETSVG::rectToElmt(pattern->m_spacer_rect, document));
+
+ pattern_xml.appendChild(header_xml).appendChild(header_text_xml);
+ pattern_xml.appendChild(spacer_xml);
+
+ //Write terminals properties
+ auto terminals_xml = document.createElement(QStringLiteral("terminals"));
+ for (const auto &rect : pattern->m_terminal_rect) {
+ terminals_xml.appendChild(QETSVG::rectToElmt(rect, document));
+ }
+
+ auto terminals_text_xml = document.createElement(QStringLiteral("text"));
+ QETXML::orientationToAttribute(pattern->m_terminals_text_orientation, terminals_text_xml);
+ QETXML::alignmentToAttribute(pattern->terminalsTextAlignment(),terminals_text_xml);
+ QETSVG::yToAttribute(pattern->m_terminals_text_y, terminals_text_xml);
+ QETSVG::heightToAttribute(pattern->m_terminals_text_height, terminals_text_xml);
+ terminals_xml.appendChild(terminals_text_xml);
+
+ auto xref_text_xml = document.createElement(QStringLiteral("xref"));
+ QETXML::orientationToAttribute(pattern->m_xref_text_orientation, xref_text_xml);
+ QETXML::alignmentToAttribute(pattern->xrefTextAlignment(),xref_text_xml);
+ QETSVG::yToAttribute(pattern->m_xref_text_y, xref_text_xml);
+ QETSVG::heightToAttribute(pattern->m_xref_text_height, xref_text_xml);
+ terminals_xml.appendChild(xref_text_xml);
+
+ auto bridge_xml = document.createElement(QStringLiteral("bridges"));
+ QETSVG::rToAttribute(pattern->m_bridge_point_d/2, bridge_xml);
+ QVector points_vector;
+ for (const auto &y : pattern->m_bridge_point_y_offset) {
+ points_vector.append(QPointF{0,y});
+ }
+ QETSVG::pointsToAttribute(points_vector, bridge_xml);
+ terminals_xml.appendChild(bridge_xml);
+
+ pattern_xml.appendChild(terminals_xml);
+ }
+
+ return pattern_xml;
+}
+
+/**
+ * @brief TerminalStripLayoutPatternXml::fromXml
+ * LOad a @class TerminalStripLayoutPattern from a xml element with tag name terminal_strip_layout_pattern
+ * @param layout
+ * @param element
+ */
+void TerminalStripLayoutPatternXml::fromXml(QSharedPointer &layout, const QDomElement &element)
+{
+ if (element.tagName() != LAYOUT_PATTERN_TAG_NAME) return;
+ layout->m_name = element.attribute(QStringLiteral("name"), layout->m_name);
+ layout->m_uuid.fromString(element.attribute(QStringLiteral("uuid"), layout->m_uuid.toString()));
+
+ const auto header_xml = element.firstChildElement(QStringLiteral("header"));
+ if (!header_xml.isNull() && header_xml.hasAttribute(QStringLiteral("rect"))) {
+ layout->m_header_rect = QETSVG::rectFromElmt(header_xml);
+ }
+
+ if (const auto header_text_xml = header_xml.firstChildElement(QStringLiteral("text"));
+ !header_text_xml.isNull()) {
+ layout->m_header_text_orientation = QETXML::orientationFromAttribute(header_text_xml, layout->m_header_text_orientation);
+ layout->setHeaderTextAlignment(QETXML::alignmentFromAttribute(header_text_xml));
+ }
+
+ const auto spacer_xml = element.firstChildElement(QStringLiteral("spacer"));
+ if (const auto rect = QETSVG::rectFromElmt(spacer_xml);
+ !rect.isNull()) {
+ layout->m_spacer_rect = rect;
+ }
+
+ if (const auto terminals_xml = element.firstChildElement(QStringLiteral("terminals"));
+ !terminals_xml.isNull()) {
+ layout->m_terminal_rect.clear();
+ for (const auto &terminal_rect_xml : QETXML::directChild(terminals_xml, QStringLiteral("rect"))) {
+ layout->m_terminal_rect.append(QETSVG::rectFromElmt(terminal_rect_xml)) ;
+ }
+
+ if (const auto terminals_text_xml = terminals_xml.firstChildElement(QStringLiteral("text"));
+ !terminals_text_xml.isNull()) {
+ layout->m_terminals_text_orientation = QETXML::orientationFromAttribute(terminals_text_xml, layout->m_terminals_text_orientation);
+ layout->setTerminalsTextAlignment(QETXML::alignmentFromAttribute(terminals_text_xml));
+ layout->m_terminals_text_y = QETSVG::yFromAttribute(terminals_text_xml);
+ layout->m_terminals_text_height = QETSVG::heightFromAttribute(terminals_text_xml);
+ }
+
+ if (const auto xref_text_xml = terminals_xml.firstChildElement(QStringLiteral("xref"));
+ !xref_text_xml.isNull()) {
+ layout->m_xref_text_orientation = QETXML::orientationFromAttribute(xref_text_xml, layout->m_xref_text_orientation);
+ layout->setXrefTextAlignment(QETXML::alignmentFromAttribute(xref_text_xml));
+ layout->m_xref_text_y = QETSVG::yFromAttribute(xref_text_xml);
+ layout->m_xref_text_height = QETSVG::heightFromAttribute(xref_text_xml);
+ }
+
+ if (const auto bridge_xml = terminals_xml.firstChildElement(QStringLiteral("bridges"));
+ !bridge_xml.isNull()) {
+ layout->m_bridge_point_d = QETSVG::rFromAttribute(bridge_xml, 2.5)*2;
+ if (const auto points = QETSVG::pointsFromAttribute(bridge_xml);
+ points.size() == 4) {
+ layout->m_bridge_point_y_offset[0]= points[0].y();
+ layout->m_bridge_point_y_offset[1]= points[1].y();
+ layout->m_bridge_point_y_offset[2]= points[2].y();
+ layout->m_bridge_point_y_offset[3]= points[3].y();
+ }
+ }
+ }
+}
diff --git a/sources/xml/terminalstriplayoutpatternxml.h b/sources/xml/terminalstriplayoutpatternxml.h
new file mode 100644
index 000000000..df6dba87b
--- /dev/null
+++ b/sources/xml/terminalstriplayoutpatternxml.h
@@ -0,0 +1,41 @@
+/*
+ Copyright 2006-2025 The QElectroTech Team
+ This file is part of QElectroTech.
+
+ QElectroTech 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 2 of the License, or
+ (at your option) any later version.
+
+ QElectroTech 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 QElectroTech. If not, see .
+*/
+#ifndef TERMINALSTRIPLAYOUTPATTERNXML_H
+#define TERMINALSTRIPLAYOUTPATTERNXML_H
+
+#include
+#include
+
+class TerminalStripLayoutPattern;
+
+/**
+ * @brief The TerminalStripLayoutPatternXml class
+ * A class with static function used to save/restor a
+ * @class TerminalStripLayoutPattern to xml
+ */
+class TerminalStripLayoutPatternXml
+{
+ public:
+ static QDomElement toXml(const QVector> &patterns, QDomDocument &document);
+ static QVector> fromXml(const QDomElement &element);
+
+ static QDomElement toXml (const QSharedPointer &pattern, QDomDocument &document);
+ static void fromXml(QSharedPointer &layout, const QDomElement &element);
+};
+
+#endif // TERMINALSTRIPLAYOUTPATTERNXML_H
diff --git a/tests/catch/CMakeLists.txt b/tests/catch/CMakeLists.txt
index b6ab66bf0..5d39537fe 100644
--- a/tests/catch/CMakeLists.txt
+++ b/tests/catch/CMakeLists.txt
@@ -64,7 +64,7 @@ Include(FetchContent)
FetchContent_Declare(
Catch2
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
- GIT_TAG v2.13.1)
+ GIT_TAG v2.13.10)
FetchContent_MakeAvailable(Catch2)
diff --git a/tests/googletest/CMakeLists.txt b/tests/googletest/CMakeLists.txt
index d9a4ae750..bcc85b4de 100644
--- a/tests/googletest/CMakeLists.txt
+++ b/tests/googletest/CMakeLists.txt
@@ -64,7 +64,7 @@ Include(FetchContent)
FetchContent_Declare(
GTest
GIT_REPOSITORY https://github.com/google/googletest.git
- GIT_TAG release-1.10.0)
+ GIT_TAG v1.17.0)
FetchContent_MakeAvailable(GTest)