Compare commits

...

705 Commits

Author SHA1 Message Date
plc-user
411fb3c4dc Fix signal for ComboBox 2025-03-28 18:57:40 +01:00
plc-user
07a07a5719 Fix signal for ColorButton 2025-03-28 18:54:57 +01:00
Laurent Trinques
3913836137 Merge pull request #385 from plc-user/qt6-cmake
FIX broken signals in export-dialog
2025-03-13 11:06:54 +01:00
plc-user
242a601984 use "%" for string-concatenation
Qt-Docs says it's less memory-usage...
2025-03-12 16:55:47 +01:00
plc-user
635bb15faf remove unneeded Qt-version-checks 2025-03-12 16:48:52 +01:00
plc-user
2deb37d351 remove unneeded Qt-version-checks 2025-03-12 16:45:16 +01:00
plc-user
1124a567aa remove unneeded comments 2025-03-12 00:43:23 +01:00
plc-user
8e7120e923 fixed broken signals
and added some English comments
2025-03-12 00:40:35 +01:00
Laurent Trinques
0a9f62126b Merge pull request #380 from plc-user/qt6-cmake
added code for Qt6 to qetelementeditor.cpp
2025-03-06 13:09:03 +01:00
plc-user
c0864eced3 added code for Qt6 to qetelementeditor.cpp
and removed qDebug() - Output.
Seems to work for me but should be tested by someone else, too.
2025-03-06 09:55:21 +01:00
Laurent Trinques
e01e3d7838 Merge pull request #378 from elevatormind/no-kwidgetsaddons
No kwidgetsaddons
2025-03-04 14:23:42 +01:00
Magnus Hellströmer
0e85314a84 Removed kwidgetaddons from CMake 2025-03-03 23:25:34 +01:00
Magnus Hellströmer
80e404048c Added padding variables for ColorButton and ColorComboBoxDelegate 2025-03-03 23:24:28 +01:00
Magnus Hellströmer
0e5f37503c Small fixes
- Better call of QColorDialog::getColor in ColorButton (reflects new ColorComboBox class)
  - no CamelCase for variable
  - Typo
2025-03-03 23:19:23 +01:00
Magnus Hellströmer
f14f6c6a8d Replacement for KColorCombo 2025-03-03 23:11:51 +01:00
Magnus Hellströmer
b815244494 Replacement for KColorButton 2025-03-03 20:45:16 +01:00
elevatormind
01d018f8cf Merge branch 'qelectrotech:qt6-cmake' into qt6-cmake 2025-03-03 19:48:57 +01:00
Laurent Trinques
d7a15d6cb6 bordertitleblock: use same code for Qt5 & Qt6 for "numbering" rows 2025-03-02 10:35:16 +01:00
Laurent Trinques
a53a799da5 Fix crossXref with Qt6 thanks plc-user,
see:https://qelectrotech.org/forum/viewtopic.php?pid=21168#p21168
2025-03-01 15:48:42 +01:00
Laurent Trinques
d4972dc588 Merge pull request #371 from qelectrotech/master
Merge last commits on mastert to branch qt6-cmake
2025-02-28 13:46:46 +01:00
Laurent Trinques
e66061fdca Merge pull request #370 from plc-user/master
some small changes for selective move
2025-02-28 09:57:41 +01:00
plc-user
e2e84a56f7 limit movement to int-values to be able to re-position to original position 2025-02-28 07:40:59 +01:00
plc-user
565374f174 additional ControlModifier does not work here as expected 2025-02-28 07:36:53 +01:00
plc-user
7bdca47d8e use brackets to be more clear what is meant 2025-02-28 07:33:17 +01:00
Laurent Trinques
d1ce42a148 Fixed deprecated use of QAbstractPrintDialog::setEnabledOptions 2025-02-27 12:36:58 +01:00
Laurent Trinques
6b9837b244 Fix menclature tables are growing in width, when you reload them the
width increases.
2025-02-27 11:29:29 +01:00
Laurent Trinques
f0c954329f git submodule update --remote elements 2025-02-25 16:49:12 +01:00
Laurent Trinques
e99ad6b424 Merge pull request #369 from prescott66/patch-1
Added slovak translation to org.qelectrotech.qelectrotech.desktop
2025-02-25 12:53:10 +01:00
Dušan Kazik
74460a6645 Added slovak translation to org.qelectrotech.qelectrotech.desktop
Added slovak translation for app name and comment.
2025-02-25 09:20:04 +01:00
Laurent Trinques
231a1c919a git submodule update --remote elements 2025-02-22 10:31:24 +01:00
Laurent Trinques
19c9d614e8 Merge pull request #367 from plc-user/master
unify calls to "setRotation" for element-primitives again
2025-02-22 10:18:14 +01:00
plc-user
43386aa14f unify calls to "setRotation" for element-primitives 2025-02-22 09:30:15 +01:00
plc-user
181680e6f1 add English comments 2025-02-22 09:20:46 +01:00
Laurent Trinques
667d25899f Merge pull request #364 from elevatormind/conductor_texts
New variables for conductor text formulas
2025-02-21 17:13:18 +01:00
Laurent Trinques
c9b9165911 Merge pull request #365 from elevatormind/selective_move
Added option to only move dynamic texts
2025-02-21 17:12:54 +01:00
Laurent Trinques
adbbeca905 Typo 2025-02-21 16:17:57 +01:00
Laurent Trinques
f8b9edd938 Fix Symbol library panel, the texts don't show until you hover over them with the mouse.
Improve launch time
2025-02-21 15:47:18 +01:00
Laurent Trinques
99dfe6a50c Merge pull request #366 from elevatormind/qt6-cmake
Qt6 cmake
2025-02-21 15:36:54 +01:00
Magnus Hellströmer
78ee65a21b Added option to only move dynamic texts 2025-02-19 21:33:29 +01:00
Magnus Hellströmer
49ce6bc4b3 Update qet_be.ts to qet_nl_BE.ts 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
572d78912c Fix compiler warning 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
aa36bb35e1 Fix compiler warning 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
4e030943bc Fix compile warning 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
1c2d83d586 Fix compile error 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
1a24452e8b Bump ECM / KF6 versions 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
3f7192dc68 Rearraned and updated cmake-files 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
4ce8fcb0d4 Bump cmake minimum version 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
9fefc7aa2a Force Qt6 in cmake 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
c77eb98a15 Fixed broken mapped signal for RecentFiles 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
5973db00f7 Fixed deprecated use of QColor:setNamedColor() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
ee06a71e6f Fixed missing include 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
25f9f14b04 Fixed deprecated qAsConst() to std::as_const() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
4827b23116 Changed QtConcurrent::run() to QThreadPool::start() to fix compile warning 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
e332d3bf31 Fixed compile warnings about QVariant::canConvert() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
3c4a0ed2b4 Fixed narrowing warning qsizetype -> int 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
e8f8304b60 Fixed deprecated uses of QVariant 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
07118d7a11 Updated deprecated QString::count() -> length() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
373fcfb4ea Support for loading language .qm files as Qt resource 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
05dfd10952 Show full Qt version in cmake 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
a88d485051 Replaced BUILD_WITHOUT_KF5 to BUILD_WITHOUT_KF6 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
40abc3892c Fixed export project db (added SQLite3 in cmake) 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
27899c48a3 Fixed crash with db export disabled 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
4fe9687aca Added missing include 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
cfdad56d0e Added qsizetype cast fixing compile error 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
8ba96ac6e2 Added bool cast fixing compile error 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
dd521f13aa Added missing includes 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
6c5ff66067 Include correct header file for catch 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
0dc45f056e Fixed deprecated regex exactMatch() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
0b307abf34 Corrected overloaded qHash() from earlier commit 21fcf688ec3b8b82e89d1be5424b0aa4d356e1ab 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
9127937bee Added bool cast fixing compiler crash 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
d3f206a387 Removed obsolete QGIManager::manage/release(QVector) 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
8a4d7c6cf2 Fixed compiler warning for overloaded qHash() 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
bae85624a0 Bumped git-versions in cmake for catch and googletest 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
540a248d72 Bumped git-versions in cmake for pugixml and singleapplication 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
d07214ab92 Migrated from Qt5(Kf5 to Qt6/Kf6 in cmake-files 2025-02-19 21:32:21 +01:00
Magnus Hellströmer
68a2ddde18 New variables for conductor text formulas 2025-02-19 20:26:53 +01:00
Laurent Trinques
8c3343795a Merge pull request #362 from pkess/fix_typo
Fix typo widht to width
2025-02-19 15:54:59 +01:00
Peter Kessen
2097b24d37 Fix typo for variable 2025-02-18 20:14:51 +01:00
Peter Kessen
5351746dc7 Fix typo within settings entry 2025-02-18 20:13:10 +01:00
Laurent Trinques
1af3c5b852 Merge pull request #361 from plc-user/master
element-editor: add mirror and flip for "text"
2025-02-18 06:27:14 +01:00
plc-user
c2a2e5f5eb minor: whitespace and comments 2025-02-17 19:45:53 +01:00
plc-user
dc836248f0 element editor: add mirror and flip for “text”
Maybe not (yet) perfect, but it looks pretty good to me!

Why am I doing this to myself?
All this crap with fonts and stuff!
It's been crap for as long as I can remember.
2025-02-17 19:39:53 +01:00
Laurent Trinques
a3bf2e2800 minor for Swedish translation
Add translation for Imported elements in QET project widget
2025-02-17 16:00:46 +01:00
Laurent Trinques
83f960a983 Merge pull request #360 from elevatormind/lang_sv
Add Swedish translation
2025-02-17 15:42:25 +01:00
Laurent Trinques
c223121f00 git submodule update --remote elements 2025-02-17 15:30:42 +01:00
plc-user
0f647a5c38 fix: do not add "kindInformations" for thumbnail-elements 2025-02-17 09:48:51 +01:00
plc-user
67112bf8e5 fix typo in enum-entry and comments 2025-02-17 09:33:35 +01:00
Laurent Trinques
1b60f7c52a Merge pull request #359 from pkess/linux_installer
German text for launcher and debian package code style
2025-02-17 06:36:55 +01:00
Magnus Hellströmer
9a96eb914d Updated qet_sv.qm 2025-02-16 20:59:02 +01:00
Magnus Hellströmer
bf8723015a Update swedish translation 2025-02-16 20:54:15 +01:00
Magnus Hellströmer
82d7bbda68 Added swedish language 2025-02-16 20:54:15 +01:00
Peter Kessen
0df3ecb5f7 Edit german translation 2025-02-16 19:57:56 +01:00
Peter Kessen
1e27cac8c5 Remove trailing whitespace 2025-02-16 19:57:07 +01:00
Laurent Trinques
16dea9f3de Update Polish translation, thanks Paweł 2025-02-16 17:49:15 +01:00
Laurent Trinques
20e852cbaf Merge pull request #358 from plc-user/master
some more rotation, mirror and flip
2025-02-16 17:24:33 +01:00
plc-user
51225d5f59 element-editor: add rotation with smaller increments for "line", "polygon", "text" and "dynamic_text" with shortcut <Ctrl>+<Space> 2025-02-16 16:31:18 +01:00
plc-user
3fc5469aee element-editor: add mirror and flip for "dynamic_text" 2025-02-16 16:15:46 +01:00
plc-user
6fdc243552 fix indention - no code-change 2025-02-16 15:43:58 +01:00
plc-user
da109b1522 element-editor: add rotation-functions to "text" and "dynamic_text" 2025-02-16 15:42:33 +01:00
plc-user
2aeae1fe46 use Qt-functions to rotate lines and polygons 2025-02-16 15:28:15 +01:00
plc-user
e98ce4de1d add English comments 2025-02-16 10:02:19 +01:00
plc-user
da0951d5a0 fix typo in variable-name (mixture of French and English) 2025-02-15 20:36:21 +01:00
Laurent Trinques
0be9e2beae minor add qInfo-Text "SQLite version: " 2025-02-15 17:10:39 +01:00
Laurent Trinques
52946f9e3a Merge pull request #357 from plc-user/master
BugFix: Flip and Mirror of terminals
2025-02-15 09:35:10 +01:00
plc-user
007ce79cee BugFix: Flip and Mirror of terminals 2025-02-15 09:13:56 +01:00
Laurent Trinques
5aee30edee Merge pull request #356 from plc-user/master
element-editor: fix rotation and more
2025-02-15 08:21:44 +01:00
plc-user
b9a8dc0918 fix typo in translation 2025-02-14 20:57:30 +01:00
plc-user
bd3b39cea3 element-editor: fix rotation, add mirror, add flip for graphical primitives
Now that the problem with the translations of keyboard shortcuts has been resolved and rotation using the space bar works reliably in principle, I took a closer look at the rotation function itself in the element editor.

I noticed, for example, that arcs can be rotated at an angle of 15°. This doesn't really make sense, as the “arc” part doesn't have the “rotation” property. There is only width and height.
And somehow rotating arcs didn't work well: start- and span-angles weren't adjusted.

Lines and polygons can be rotated in 15° increments, which doesn't make much sense, if other parts that can only be rotated in 90° increments are selected at the same time.

To make a long story short:
I reworked the rotation functions of the graphical parts so that now all parts are rotated in 90° steps around the origin! This means that it is now possible to mark several parts and rotate them around the same point at the same time!

In addition, the functions for mirroring graphic parts at y-axis (shortcut "M") and flipping at x-axis (shortcut "F") have been implemented.

I have saved the text elements for later!
(or someone else)
2025-02-14 20:31:03 +01:00
plc-user
fc286cca22 fix one last hardcoded shortcut-translation 2025-02-14 19:52:39 +01:00
plc-user
4d5af028be menu: move "About QElectroTech" in Help-Menu to bottom
If the version number of QElectroTech is requested in the forum in case of error messages or anomalies, the Qt version used is very often stated because the entry “About QElectroTech” does not appear very prominently in the help menu: The entry “About Qt” is used much more frequently because it appears eye-catchingly as the lowest entry. However, specifying the Qt version is often not helpful for troubleshooting: We need the QET version!
That's why I'm moving the “About QElectroTech” entry to the bottom, so that it is easier to see and find!
2025-02-14 19:47:19 +01:00
Laurent Trinques
9afc97108b Merge pull request #355 from plc-user/master
minor: mostly typos
2025-02-14 17:39:43 +01:00
plc-user
a4a3733670 typos, whitespace and brackets 2025-02-14 16:59:23 +01:00
plc-user
3471140b64 fix typo in fuction-name (looked like a mixture of French and English) 2025-02-14 16:47:39 +01:00
Laurent Trinques
43f0107eb1 Revert "Try Clazy fix-its"
Segfault on old Qt versions!
This reverts commit dba7caed30.
2025-02-14 16:17:58 +01:00
Laurent Trinques
dba7caed30 Try Clazy fix-its
clazy is a compiler plugin which allows clang to understand Qt
semantics. You get more than 50 Qt related compiler warnings, ranging
from unneeded memory allocations to misusage of API, including fix-its
for automatic refactoring.

https://invent.kde.org/sdk/clazy
2025-02-14 15:52:23 +01:00
Laurent Trinques
adcf77e34a Replacing modules includes <QtConcurrent> with QtConcurrentRun and
QtConcurrentMap

Signed-off-by: Laurent Trinques <scorpio@qelectrotech.org>
2025-02-14 14:07:41 +01:00
Laurent Trinques
59236170b2 Merge pull request #354 from plc-user/master
a few translated shortcuts were still there ... fixed!
2025-02-13 08:14:09 +01:00
plc-user
3d82aff4e7 FIX: shortcut for rotation in element-editor was hardcoded in UI 2025-02-12 15:35:45 +01:00
plc-user
516eb9eb45 fixed English comments 2025-02-12 14:02:30 +01:00
plc-user
0b80d1b5b9 a few translated shortcuts were still there ... fixed! 2025-02-12 13:41:39 +01:00
Laurent Trinques
073e4080fd Merge pull request #353 from plc-user/master
FIX: some shortcuts do not work with language set to local
2025-02-11 18:23:32 +01:00
plc-user
b512aee2bf update language-files 2025-02-11 15:55:24 +01:00
plc-user
38f5547228 use "positive logic" for conditional compiling 2025-02-11 14:43:18 +01:00
plc-user
317c90c769 do not hardcode translations for shortcuts: let the system do it for you! 2025-02-11 14:36:15 +01:00
Laurent Trinques
f308ea6b93 Merge pull request #352 from plc-user/master
fix movement of element, when origin is outside of graphics
2025-02-11 12:54:37 +01:00
plc-user
4808b04a31 fix movement of element, when origin is outside of graphics
When saving an element it is checked, if the origin (0/0)
is inside the graphical parts. If outside, the element is
moved by integer values for x- and y-offset before saving.
Old calculation for offset could lead to "strange" new
values for positions.

Additionally: fix typos and English comments
2025-02-11 11:46:36 +01:00
Laurent Trinques
3a43fbfa61 Merge pull request #351 from plc-user/master
FIX copy-and-paste in element-editor: set paste-position to meaningful values
2025-02-11 06:41:40 +01:00
plc-user
29aee8e80c copy-and-paste: set paste-position to meaningful values 2025-02-10 18:33:49 +01:00
plc-user
717b257fa0 added English comments 2025-02-10 18:26:14 +01:00
plc-user
13f432571d comments: fixed typos and added English comments 2025-02-09 17:51:15 +01:00
Laurent Trinques
610f4d6dfa Merge pull request #350 from plc-user/master
some cleaning for element-file
2025-02-09 13:32:59 +01:00
plc-user
a20d02f5f0 element-editor: remove leading and trailing whitespace from author-info 2025-02-09 12:43:35 +01:00
plc-user
1fc33aa1ba element-editor: limit decimal places for sizes and positions to two, when saving file 2025-02-09 12:33:24 +01:00
plc-user
706eba6612 fix typos and whitespace 2025-02-09 12:25:09 +01:00
Laurent Trinques
f675ce3452 git submodule update --remote elements 2025-02-08 10:56:36 +01:00
Laurent Trinques
3ae47a714d Merge pull request #348 from plc-user/master
fix: properties in project-file
2025-02-08 10:33:37 +01:00
plc-user
58aae63616 sorted translations \“imported elements\” in sourcecode and added some for Qt6 2025-02-08 07:45:48 +01:00
plc-user
b8e4fca09f fix: remove empty elementInformation, but keep empty properties 2025-02-08 07:39:21 +01:00
Laurent Trinques
075289797a Merge pull request #347 from plc-user/master
translation: update German and English
2025-02-08 07:11:13 +01:00
plc-user
f26733f34e translation: update German and English 2025-02-07 20:47:16 +01:00
Laurent Trinques
ba9fea3fd1 Merge pull request #346 from plc-user/master
export: set maximum width / height according limitations in QPainter
2025-02-07 15:16:40 +01:00
plc-user
bbbf77597a export: set maximum width / height according limitations in QPainter 2025-02-07 11:34:05 +01:00
Laurent Trinques
1cf156c47a Merge pull request #345 from plc-user/master
export: set maximum width / height according specifications of export-type
2025-02-06 16:11:36 +01:00
plc-user
924d1c1b05 use "static const" - variables instead of multiple times values in source-code
use multiplication-sign "×" instead of asterisk "*" between widht and height
2025-02-06 15:16:19 +01:00
plc-user
33570ffceb export: set maximum width / height according specifications of export-type 2025-02-06 12:58:32 +01:00
Laurent Trinques
40b7aa999f git submodule update --remote elements 2025-02-06 07:18:42 +01:00
Laurent Trinques
c9ba7bee6c ExportDialog increase spinBox limit 10 000px to 100 000px
See: https://qelectrotech.org/forum/viewtopic.php?pid=21002#p21002
2025-02-06 07:12:56 +01:00
Laurent Trinques
7466793e71 Merge pull request #344 from plc-user/master
some clean-up for element-file and in code
2025-02-05 19:26:24 +01:00
plc-user
408481a023 some clean-up for "elementInformations" in element-file
- for some time now and for whatever reason, element-editor
  sometimes adds element-information without content –> do not
  save info-lines without any content
- sort element-information alphabetically by name in element-file
- use trimmed strings for element-information to remove leading
  and trailing whitestpace
2025-02-05 13:11:37 +01:00
plc-user
b0324bd6e8 fix typo 2025-02-05 12:58:49 +01:00
plc-user
812ac83ab6 NamesList: move while-loop into "else"-clause, to be more precise and added english text to comments 2025-02-05 12:57:50 +01:00
Laurent Trinques
d1c6fb7e3c Merge pull request #343 from plc-user/master
minor: typos, comments, whitespace, translation
2025-02-04 18:15:26 +01:00
plc-user
9dad6963cb minor: typos, comments, whitespace, translation 2025-02-04 13:48:35 +01:00
Laurent Trinques
28df44d1ba Merge pull request #342 from plc-user/master
Sort names in element-file by language-code
2025-02-04 12:56:03 +01:00
plc-user
25a81f24fa NamesList: Use ‘Qmap’ instead of ‘Qhash’
to automatically sort the names of an element by
language code before saving the element-file.
Added English comment in header-file.
2025-02-03 13:23:32 +01:00
plc-user
7a39e69a32 element-name: if no name is set, set to "en" / "NoName" (also adjusted comment) 2025-02-03 13:03:55 +01:00
Laurent Trinques
af33719995 Merge pull request #341 from plc-user/master
more precise Log-Text for search of "qet_tb_generator"
2025-02-02 15:48:48 +01:00
Laurent Trinques
4c12b3c679 Flatpak upgrade tkinter git to update to python 3.11 2025-02-02 15:16:53 +01:00
plc-user
e1dc978f97 more precise Log-Text for search of "qet_tb_generator" to avoid misunderstandings 2025-02-02 14:48:38 +01:00
Laurent Trinques
1b2d8061a5 Merge pull request #340 from plc-user/master
machine_info: add entry for QETApp::configDir() also for win
2025-02-02 13:34:42 +01:00
plc-user
b0f0a56a88 machine_info: add entry for QETApp::configDir() also for win
We use QETApp::configDir() to save configuration-files (*.json)
for creating BOM, nomenclature, etc. during runtime.
So it's interesting for win-users, too, which configDir is used.
2025-02-02 12:49:59 +01:00
Laurent Trinques
d6d38141c9 Merge pull request #339 from plc-user/master
remove dead code (local variables that were never used)
2025-02-02 12:24:19 +01:00
plc-user
331cecc05c remove dead code (local variables that were never used) 2025-02-02 12:16:28 +01:00
Laurent Trinques
de0fa1fa20 Merge pull request #338 from plc-user/master
minor changes
2025-02-01 12:49:43 +01:00
plc-user
1698e062ab remove dead code (local variables that were never used) 2025-02-01 08:52:07 +01:00
plc-user
3051c225bb minor: typos, witespace, comments 2025-02-01 08:49:12 +01:00
Laurent Trinques
ffef9aaea5 Merge pull request #337 from Bisku/de_translation
Update of qet_de
2025-01-31 15:52:37 +01:00
Bisku
9fc270c8a8 Aktualisierung 2025-01-30
Aktualisierung auf aktuelle Version
2025-01-31 14:41:10 +01:00
Laurent Trinques
2c8797415c Merge pull request #335 from plc-user/master
rewrite code for executing “qet_tb_generator” plugin
2025-01-30 10:20:24 +01:00
plc-user
8162da1515 reorder search-paths and added currentPath() 2025-01-30 08:30:11 +01:00
plc-user
3cadc9275e improve readability 2025-01-30 07:25:30 +01:00
plc-user
a459029f0d simplify code even more... 2025-01-30 00:15:09 +01:00
plc-user
9dda9f890f close the process in any case 2025-01-29 22:27:56 +01:00
plc-user
9be2ed604e moved "#endif" to always close process and adjusted qInfo-Text 2025-01-29 22:15:36 +01:00
plc-user
a450680f6e rewrite code for executing “qet_tb_generator” plugin
Now it's better readable and maintainable up to the moment
we have our own internal Terminal-Manager for productive use.
Additionally added the storage location “dataDir()/binary”,
so that the new structure for the separation of
configuration and data can be properly kept
2025-01-29 21:57:38 +01:00
Laurent Trinques
22e6188bb6 Merge pull request #333 from plc-user/master
corrected a few places where QETApp::documentDir() should also be used
2025-01-29 14:38:25 +01:00
Laurent Trinques
9d83d3180a Merge pull request #334 from zultron/zultron/2025-01-29_Fix_snap_qet_tb_generator
build-aux/snap/snapcraft.yaml:  python3.8 -> 3.10
2025-01-29 13:31:46 +01:00
John Morris
09c87cf811 build-aux/snap/snapcraft.yaml: python3.8 -> 3.10
Fix traceback when selecting "Project" menu "Launch the terminal block
creation plugin" item:

    Traceback (most recent call last):
      File "/snap/qelectrotech/1973/bin/qet_tb_generator", line 33, in <module>
        sys.exit(load_entry_point('qet-tb-generator==1.3.1', 'console_scripts', 'qet_tb_generator')())
      File "/snap/qelectrotech/1973/bin/qet_tb_generator", line 25, in importlib_load_entry_point
        return next(matches).load()
      File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
        module = import_module(match.group('module'))
      File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
      File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
      File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 883, in exec_module
      File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
      File "/snap/qelectrotech/1973/lib/python3.10/site-packages/src/main.py", line 98, in <module>
        import src.PySimpleGUI as sg
      File "/snap/qelectrotech/1973/lib/python3.10/site-packages/src/PySimpleGUI.py", line 95, in <module>
        import tkinter as tk
    ModuleNotFoundError: No module named 'tkinter'
2025-01-29 00:22:17 -06:00
plc-user
bdee8e3e36 set default search-path of non-standard locations of collections and titleblocks (common, company and user) also to QETApp::documentsDir() 2025-01-28 19:01:32 +01:00
plc-user
30a6221e45 remove unused function 2025-01-28 18:56:16 +01:00
plc-user
9f8287206b fix: "dxf2elmt" and "QET_ElementScaler" also read imported files from QETApp::documentDir() by default 2025-01-28 18:44:19 +01:00
Laurent Trinques
bb770ae4f1 Merge pull request #332 from plc-user/master
add commandline-parameter "--data-dir"
2025-01-28 15:04:47 +01:00
plc-user
d971da5ac7 add commandline-parameter "--data-dir" 2025-01-27 21:48:36 +01:00
Laurent Trinques
e9d2c13630 Merge pull request #331 from plc-user/master
machine_info: fix element-count and make static text a bit shorter
2025-01-27 17:58:22 +01:00
plc-user
c01549f315 machine_info: write configured directories to log\n(may have been changed with commandline-parameters) 2025-01-27 17:38:06 +01:00
plc-user
39e287f60d machine_info: fix element-count and make static text a bit shorter 2025-01-27 17:04:26 +01:00
Laurent Trinques
11e3f91029 Merge pull request #330 from plc-user/master
formatting / whitespace - unify declarations
2025-01-26 14:45:36 +01:00
Laurent Trinques
1ac324242a Polish 2025-01-26 14:44:47 +01:00
plc-user
940ae0c34a formatting / whitespace - unify declarations 2025-01-26 14:29:52 +01:00
Laurent Trinques
7a19756f13 Polish 2025-01-26 14:27:02 +01:00
Laurent Trinques
3b24bd25c7 Merge pull request #329 from plc-user/master
Set default-location for projects to documents-dir.
2025-01-26 12:43:00 +01:00
Laurent Trinques
a73452bf6d Polish 2025-01-26 12:31:10 +01:00
Laurent Trinques
24165ee8ee Machine info ; try to Count *elmt Files in alls collections
(include subfolders)
2025-01-26 12:16:46 +01:00
plc-user
4c7cc9a110 adjust comments 2025-01-26 11:55:52 +01:00
plc-user
79f894a327 Set default-location for projects to documents-dir.
All export files that are derived from the project (BOM,
nomenclature, etc.) are saved in the same directory by default.
In this context, the standard directories have been grouped
together in qetapp.cpp / qetapp.h so that only one place needs
to be searched for in case of any adjustments.
2025-01-26 11:32:46 +01:00
Laurent Trinques
f26e936ea9 Polish 2025-01-26 10:48:50 +01:00
Laurent Trinques
1ddfe1d433 Polish 2025-01-26 08:43:07 +01:00
Laurent Trinques
194edbd799 Machine info : try to fix FTFS under Windows 2025-01-25 20:29:11 +01:00
Laurent Trinques
162c402102 Minor 2025-01-25 20:09:31 +01:00
Laurent Trinques
c6427cbfc1 Fix previuois commit 2025-01-25 19:54:41 +01:00
Laurent Trinques
c4b6939ed6 machine_info.cpp: Minor 2025-01-25 19:37:39 +01:00
Laurent Trinques
2436daa16f machine_info.cpp: Minor 2025-01-25 19:03:33 +01:00
Laurent Trinques
4050e8351e machine_info.cpp: Minor 2025-01-25 14:23:51 +01:00
Laurent Trinques
d6f119742d machine_info.cpp: Minor 2025-01-25 14:15:30 +01:00
Laurent Trinques
3e4f3def3e machine_info.cpp: add more informations about OS language and country 2025-01-25 14:00:57 +01:00
Laurent Trinques
4aff7d1a1d Merge pull request #328 from plc-user/master
machine_info.cpp: add explaining text for directory-list
2025-01-25 07:01:18 +01:00
plc-user
d451bd4df5 machine_info.cpp: add explaining text for directory-list 2025-01-24 21:19:45 +01:00
Laurent Trinques
2cc5de6f7c Merge pull request #327 from plc-user/master
set config- and data-dir to system-specific paths
2025-01-24 13:48:11 +01:00
plc-user
661530030a Update machine_info.cpp
second try to resolve PR-conflict
2025-01-24 13:28:52 +01:00
plc-user
620aa665f2 Update machine_info.cpp
try to resolve PR-conflict
2025-01-24 13:25:57 +01:00
Laurent Trinques
8f23a3d94d Improve logs in machine info 2025-01-24 11:49:53 +01:00
Laurent Trinques
c343df3fc9 Minor 2025-01-24 11:12:36 +01:00
plc-user
d7ac2af4d6 use QETApp::dataDir() instead of QStamdardPaths 2025-01-24 08:35:03 +01:00
plc-user
ec7ba05ec1 adjust info-text 2025-01-24 07:19:36 +01:00
plc-user
600cba6a8f update comment 2025-01-24 07:10:36 +01:00
plc-user
4221bb84fb create "AppDataLocation" if not present 2025-01-24 07:02:57 +01:00
plc-user
b6d29fbbf0 update comment 2025-01-24 06:56:04 +01:00
plc-user
635af67100 "writableLocation" is a QString 2025-01-23 20:20:17 +01:00
plc-user
ba9cd71816 set config- and data-dir to system-specific paths 2025-01-23 18:47:10 +01:00
Laurent Trinques
b19fbd2522 Minor 2025-01-23 17:25:36 +01:00
Laurent Trinques
dc403e5e8f Machine info: add new informations about config 2025-01-23 16:34:48 +01:00
Laurent Trinques
be96da650c Maichine info: add new QStandardPaths 2025-01-23 12:35:03 +01:00
Laurent Trinques
cf9b07aeb5 Update qet_cs.ts binary 2025-01-16 08:22:17 +01:00
Laurent Trinques
6aa2c3c7be Merge pull request #326 from pafri/patch-1
Update qet_cs.ts
2025-01-16 08:19:59 +01:00
pafri
17788dc432 Update qet_cs.ts
I've updated the translation of the Czech localization file. Please commit it.

Greetings.
2025-01-15 19:49:47 +01:00
Laurent Trinques
9bfde721bf Update pugixml to v1.15 2025-01-12 16:39:33 +01:00
Laurent Trinques
9964eee202 Merge pull request #324 from plc-user/master
update German translation
2025-01-09 11:49:53 +01:00
Laurent Trinques
03d31986b7 Update README.md 2025-01-09 05:23:56 +01:00
plc-user
33ce130296 update German translation 2025-01-08 16:17:52 +01:00
Laurent Trinques
e21536d184 git submodule update --remote elements 2025-01-05 14:09:04 +01:00
Laurent Trinques
ffba440c6e Rename (be) translation to Belgium-Flemish nl_BE 2025-01-05 13:55:48 +01:00
Laurent Trinques
ad997605ec Rename (be) translation to Belgium-Flemish nl_BE 2025-01-05 13:17:59 +01:00
Laurent Trinques
e2eace06d3 Merge pull request #323 from plc-user/master
fix copyright-year
2025-01-05 07:30:10 +01:00
plc-user
ed8728c45a fix copyright-year 2025-01-04 17:25:20 +01:00
Laurent Trinques
77bfe84a4c One year 2025-01-04 13:37:40 +01:00
Laurent Trinques
e053acb065 Add binary pt_BR translation 2025-01-03 06:50:24 +01:00
Laurent Trinques
b5d57086bc Merge pull request #322 from gleissonjoaquim3/master
PT-BR language update
2025-01-03 06:05:12 +01:00
gleissonjoaquim3
b456bedaa3 lang/qet_pt_BR.ts
PT-BR language update
2025-01-03 01:33:13 -03:00
Laurent Trinques
db18095cfb Merge pull request #319 from ChuckNr11/master
Change Sorting of ElementInfo ComboBox
2025-01-01 09:01:48 +01:00
Achim
3438ba9ab3 composite text of report element corrected
In the ElementEditor, incorrect variables were displayed for
CompositeText in ReportElements.  This is corrected here
2024-12-31 21:58:42 +01:00
Laurent Trinques
1078496bb1 Merge pull request #320 from plc-user/master
Fix: Only scroll diagram-view, when moved text leaves visible area
2024-12-31 16:04:26 +01:00
plc-user
711353bb58 Fix whitespace 2024-12-31 16:01:47 +01:00
plc-user
dd7955e50e Fix: Only scroll diagram-view, when moved text leaves visible area 2024-12-31 15:52:17 +01:00
Achim
7a617e72bd a few small corrections 2024-12-31 08:40:56 +01:00
Achim
e73aa3b84d ComboBox change sorting
alphabetical sorting in the ComboBox changed according to the order in
the elementInfoKeys list
2024-12-31 08:40:03 +01:00
Achim
8e0c3f4252 german language file adapted 2024-12-31 08:32:41 +01:00
Laurent Trinques
27474b0822 Refresh translation binary 2024-12-27 15:00:44 +01:00
Laurent Trinques
d6dcc85157 Update qet_be.ts 2024-12-27 14:59:06 +01:00
Laurent Trinques
b2dc6ba738 Add be-nl translation, thanks Ronny 2024-12-27 14:16:31 +01:00
Laurent Trinques
31ed09f185 Revert "Try to fix https://github.com/qelectrotech/qelectrotech-source-mirror/"
This reverts commit 3992c60c45.
2024-12-22 16:17:32 +01:00
Laurent Trinques
3992c60c45 Try to fix https://github.com/qelectrotech/qelectrotech-source-mirror/
pull/314
2024-12-22 14:25:30 +01:00
Laurent Trinques
fef351df8b Typo 2024-12-22 08:44:19 +01:00
Laurent Trinques
fa322af060 Merge pull request #317 from qelectrotech/revert-314-master
Revert "ElementEditor elmt_info_cb sorting changed"
2024-12-21 13:22:10 +01:00
Laurent Trinques
34cc26a325 Revert "ElementEditor elmt_info_cb sorting changed" 2024-12-21 12:59:43 +01:00
Laurent Trinques
ba14c6112e Merge pull request #316 from plc-user/master
Fix typo and some whitespace
2024-12-19 16:22:45 +01:00
Laurent Trinques
cb8256bd48 Add de binary translation, thanks ChuckNr11 for update translation 2024-12-19 10:52:13 +01:00
Laurent Trinques
3dd512b587 Merge pull request #314 from ChuckNr11/master
ElementEditor elmt_info_cb sorting changed
2024-12-19 10:41:58 +01:00
Laurent Trinques
31c0267cd5 Merge pull request #315 from plc-user/master
Fix missing company-titleblocks in properties-dialog
2024-12-19 09:58:37 +01:00
plc-user
88b2955b00 Fix typo and some whitespace 2024-12-18 16:48:11 +01:00
plc-user
46378ca2a7 Fix missing company-titleblocks in properties-dialog 2024-12-18 15:18:34 +01:00
Achim
c7481011e8 german language file adapted 2024-12-16 16:01:37 +01:00
Achim
15d9708c46 a few small corrections 2024-12-16 16:00:50 +01:00
Achim
3b32daf15d ComboBox change sorting
alphabetical sorting in the ComboBox changed according to the order in
the elementInfoKeys list
2024-12-16 15:55:16 +01:00
ChuckNr11
0a658d5d61 Merge branch 'qelectrotech:master' into master 2024-12-15 22:17:14 +01:00
Laurent Trinques
a140c5ad39 Update CMakeLists.txt
Some checks failed
Publish Edge Snap / publish_amd64 (push) Failing after 15s
2024-12-15 15:05:23 +01:00
Laurent Trinques
4894284520 Fix segfault due to calling method of uninitialized object, thanks
ladmanj

https://github.com/qelectrotech/qelectrotech-source-mirror/issues/311
2024-12-15 14:41:34 +01:00
Laurent Trinques
efc8745bc7 Update packaging_script_AppImage.sh 2024-12-15 09:35:26 +01:00
Laurent Trinques
406af16e94 Update org.qelectrotech.QElectroTech.json 2024-12-15 09:32:16 +01:00
Laurent Trinques
e3e48d3966 Fix snapcraft.yaml
Some checks failed
Publish Edge Snap / publish_amd64 (push) Failing after 14s
2024-12-14 16:09:07 +01:00
Laurent Trinques
0e646aed0b Update translations_stat.pl
Some checks failed
Publish Edge Snap / publish_amd64 (push) Failing after 16s
2024-12-14 14:25:35 +01:00
Laurent Trinques
52d56c18a2 Try to fix icon on Wayland 2024-12-14 13:31:42 +01:00
Laurent Trinques
d3f132adc6 Try to fix icon on Wayland 2024-12-14 13:28:17 +01:00
Achim
7b50f10749 ElementEditor elmt_info_cb sorting changed
alphabetical sorting in the ComboBox changed according to the order in
the elementInfoKeys list
2024-12-08 19:36:22 +01:00
Laurent Trinques
64bb2308d8 git submodule update --remote elements
Some checks failed
Publish Edge Snap / publish_amd64 (push) Failing after 15s
2024-12-07 17:05:23 +01:00
Laurent Trinques
dd3cee5d8e Merge pull request #313 from plc-user/master
Some checks failed
Publish Edge Snap / publish_amd64 (push) Failing after 15s
fix typos and whitespace
2024-11-24 08:15:23 +01:00
plc-user
6dcb6ebcb7 fix typos and whitespace 2024-11-23 21:17:39 +01:00
Laurent Trinques
a9f5e2945b Update qetmainwindow.cpp
Some checks failed
Publish Edge Snap / publish_amd64 (push) Failing after 21s
2024-11-23 16:01:39 +01:00
Laurent Trinques
732d317e81 Update qetmainwindow.cpp
Fix download url
2024-11-23 13:17:57 +01:00
Laurent Trinques
2b77964881 git submodule update --remote elements
Some checks failed
Publish Edge Snap / publish_amd64 (push) Failing after 17s
2024-11-17 12:00:00 +01:00
Laurent Trinques
5702ed3d04 Merge pull request #312 from Arusekk/dark-mode-collections
Force light mode in collections like projects
2024-11-17 11:24:07 +01:00
Arkadiusz Kozdra
a2c1c5515a Force light mode in collections like projects 2024-11-16 10:03:29 +01:00
Laurent Trinques
8b66709ea3 Update en, fr translations 2024-11-03 14:59:37 +01:00
Laurent Trinques
e6d995c190 Update *ts files 2024-11-03 14:42:35 +01:00
Laurent Trinques
c1706cb055 Add new variables to elementInfoKeys
aux1, aux2, aux3, aux4
See:
https://qelectrotech.org/forum/viewtopic.php?pid=20558#p20558
2024-11-03 14:40:24 +01:00
Laurent Trinques
fe3ffd890b Update snapcraft.yaml 2024-10-31 11:15:50 +01:00
Laurent Trinques
8b5a4cea0d Update translations *ts files 2024-10-18 16:37:29 +02:00
Laurent Trinques
ca48684b39 Update Polish translation, thanks Pawel 2024-10-13 14:28:27 +02:00
Laurent Trinques
c4fd1efb4f Minor 2024-10-13 10:02:49 +02:00
Laurent Trinques
fc0dcb6ab0 Improve message box 2024-10-13 09:55:24 +02:00
Laurent Trinques
e02ad585a9 Minor 2024-10-10 11:42:37 +02:00
Laurent Trinques
75cd943dbd Update *TS files 2024-10-10 11:06:28 +02:00
Laurent Trinques
e6d3121a32 Uniformise MessageBox
Add QObjet for translate box message
2024-10-10 10:57:09 +02:00
Laurent Trinques
429726f463 Merge pull request #310 from plc-user/master
About QET: improvements in usability
2024-10-08 16:30:40 +02:00
plc-user
b9c9d0e31f About-Dialog - Log: Scroll to most recent log-entry 2024-10-08 12:48:02 +02:00
plc-user
7918cbb7ab remove unneeded #include 2024-10-08 12:21:45 +02:00
plc-user
1454a8d4e7 About-Dialog - Log: Show most recent log file by default 2024-10-08 12:10:10 +02:00
Laurent Trinques
35018ba314 Merge pull request #308 from plc-user/master
use MessageBox to inform user about additional info when importing scaled element
2024-10-06 16:35:14 +02:00
plc-user
3bf4c852c9 use MessageBox to inform user about additional info when importing scaled element 2024-10-06 16:15:08 +02:00
Laurent Trinques
a118c33f80 add messageBox to inform user when dxf2elmt can't convert DXF file 2024-10-06 14:30:31 +02:00
Laurent Trinques
326387895a Update qetdiagrameditor.cpp 2024-10-06 06:29:24 +02:00
Laurent Trinques
566e7f7004 Update qetdiagrameditor.cpp 2024-10-06 06:18:48 +02:00
Laurent Trinques
625e673385 Update qetdiagrameditor.cpp 2024-10-05 14:34:20 +02:00
Laurent Trinques
1863329ca0 Typo 2024-10-05 13:47:08 +02:00
Laurent Trinques
e83424459c Try to fix false positive message box warning when launching process-
>startDetached("qet_tb_generator")
Launch program "qet_tb_generator" by QET only when an project was open
2024-10-05 13:41:20 +02:00
Laurent Trinques
59253019ff Update snapcraft.yaml 2024-09-30 06:13:24 +02:00
Laurent Trinques
c66b873631 Update qelectrotech-launch 2024-09-29 15:21:20 +02:00
Laurent Trinques
b2a999cec5 Update snapcraft.yaml 2024-09-29 14:38:39 +02:00
Laurent Trinques
f1cb63cf0c Snap elementeditor: remove old plugin DXFtoQET 2024-09-29 14:37:25 +02:00
Laurent Trinques
4138b8998c qetelementeditor: remove old plugin DXFtoQET 2024-09-29 14:33:14 +02:00
Laurent Trinques
24929861ba Improve 2024-09-29 13:11:40 +02:00
Laurent Trinques
fcd2f68f68 dxftoelmt: add Print standard error and filepath to the log file 2024-09-29 12:54:47 +02:00
Laurent Trinques
f0b0af9a76 git submodule update --remote elements 2024-09-27 16:22:47 +02:00
Laurent Trinques
6a7f24a2af git submodule update --remote elements 2024-08-29 11:34:02 +02:00
Laurent Trinques
59e06a4087 Update Polish translation, thanks Pawel 2024-08-28 13:38:17 +02:00
Laurent Trinques
3738c79ec6 Merge pull request #304 from plc-user/master
make text for missing software "dxf2elmt" translatable
2024-08-21 09:09:43 +02:00
Laurent Trinques
4871aae59d revert Try to improve Unable to run the app on OSX 2024-08-20 18:55:47 +02:00
plc-user
8649d21298 fix French translation 2024-08-20 16:46:10 +02:00
plc-user
de41f29e6b make text for missing software "dxf2elmt" translatable 2024-08-20 16:31:21 +02:00
Laurent Trinques
f1a8c00028 Update *TS files 2024-08-20 12:43:36 +02:00
Laurent Trinques
e4f5e8c68a Merge pull request #303 from plc-user/master
QET_ElementScaler: fix error for Qt 5.9 and added mirroring
2024-08-20 12:38:01 +02:00
plc-user
1649e8d28b QET_ElementScaler: fix for "cancel" 2024-08-20 11:48:41 +02:00
plc-user
5e3ca46133 QET_ElementScaler: fix error for Qt 5.9 and added mirroring 2024-08-20 11:38:29 +02:00
Laurent Trinques
a162f158ad Update *Ts files 2024-08-20 00:51:31 +02:00
Laurent Trinques
6aebbfeaa7 Merge pull request #302 from plc-user/master
integrate "QET_ElementScaler" as external software
2024-08-20 00:34:07 +02:00
plc-user
5d725f6d55 fix typo 2024-08-19 09:48:11 +02:00
plc-user
85d10fc0e6 integrate "QET_ElementScaler" as external software 2024-08-19 09:19:28 +02:00
Laurent Trinques
1baf9db799 Typo 2024-08-07 12:42:39 +02:00
Laurent Trinques
32c0e04c56 Try to improve Unable to run the app on OSX
https://qelectrotech.org/bugtracker/view.php?id=290
2024-08-07 09:13:14 +02:00
Laurent Trinques
57b5819f07 Revert 2024-07-28 01:54:27 +02:00
Laurent Trinques
7c5e0135a6 Add to drag and drop the multiple selection in collections
See:https://qelectrotech.org/forum/viewtopic.php?pid=20125#p20125
2024-07-27 16:37:39 +02:00
Laurent Trinques
7d8734e192 Update README.md 2024-07-22 12:33:37 +02:00
Laurent Trinques
30184bdd06 Merge pull request #300 from plc-user/master
move code into else-clause to avoid possible crashes
2024-07-15 14:04:58 +02:00
plc-user
1062d217f0 move code into else-clause to avoid possible crashes 2024-07-15 00:01:20 +02:00
Laurent Trinques
6cad599664 git submodule update --remote elements 2024-07-06 08:19:19 +02:00
Laurent Trinques
cbd309ec5a
Fix :
Add element1_linked element2_linked informations to terminal-name
connected in qet-file
2024-06-30 15:02:42 +02:00
Laurent Trinques
23c4ba2a3e Fix segfault in previous commit 2024-06-21 17:48:57 +02:00
Laurent Trinques
dd03f0eece Add elements informations to terminal-name connected in qet-file 2024-06-21 15:28:57 +02:00
Laurent Trinques
491b8ce64c git submodule update --remote elements 2024-06-19 06:00:27 +02:00
Laurent Trinques
2d8dd2b480 git submodule update --remote elements 2024-06-17 06:41:57 +02:00
Laurent Trinques
fda314d585 Merge pull request #297 from plc-user/master
add terminal-names to connection in qet-file
2024-06-17 06:21:17 +02:00
plc-user
f9073ca5fb add terminal-names to connection in qet-file 2024-06-16 15:53:09 +02:00
Laurent Trinques
36da291be6 Merge pull request #296 from plc-user/master
fix: editing SpinBoxes with keyboard lose focus
2024-06-09 15:59:24 +02:00
plc-user
4da78939d0 fix: editing SpinBoxes with keyboard lose focus 2024-06-09 15:26:18 +02:00
Laurent Trinques
a942f42927 git submodule update --remote elements 2024-06-05 17:05:31 +02:00
Laurent Trinques
e9e2ea5b0e Try to fix bug #307 2024-06-02 17:02:53 +02:00
Laurent Trinques
701265e393 Revert 2024-06-01 12:39:59 +02:00
Laurent Trinques
073763d9bf Try to fix bug #307 2024-06-01 12:27:26 +02:00
Laurent Trinques
ca7dc28ecf Merge pull request #295 from joseyspain/master
Spanish lang update
2024-05-20 06:11:57 +02:00
Josey
a70cc75504 Spanish lang update
Hi, more spanish updates. Regards, Josey
2024-05-19 21:05:36 +02:00
Laurent Trinques
6cc297def1 Merge pull request #294 from joseyspain/master
More spanish translations.Josey
2024-05-14 07:33:23 +02:00
Josey
1baf9125dc More spanish translations.Josey
More spanish translations. Josey
2024-05-13 21:28:08 +02:00
Laurent Trinques
78bae2dc60 Merge pull request #293 from plc-user/master
update German and English translations
2024-05-13 06:11:58 +02:00
plc-user
d0a10ef9af modified accelerators in English translation to avoid doubles... 2024-05-12 12:00:09 +02:00
plc-user
c6bc23addc update German translations 2024-05-12 11:56:22 +02:00
Laurent Trinques
9a7da28fc5 Add spanish translation, thanks Josey 2024-05-12 07:49:17 +02:00
Laurent Trinques
dd7f295f5c Add spanish translation, thanks Josey 2024-05-11 19:16:18 +02:00
Laurent Trinques
774b604b50 Minor 2024-05-08 20:08:16 +02:00
Laurent Trinques
e36df6f7d2 git submodule update --remote elements 2024-05-08 19:36:53 +02:00
Laurent Trinques
9076d9da80 Update TS files 2024-05-08 19:35:15 +02:00
Laurent Trinques
c7d6312997 Try to fix bug #303 2024-05-08 19:18:48 +02:00
Laurent Trinques
5492cd3f71 Update org.qelectrotech.QElectroTech.json 2024-05-08 14:06:12 +02:00
Laurent Trinques
9b4bbfbf0d Merge pull request #292 from plc-user/master
hide SVG background checkbox in print preferences
2024-05-06 20:25:37 +02:00
plc-user
b20456d0d6 hide SVG background checkbox in print preferences 2024-05-06 11:21:42 +02:00
Laurent Trinques
69338962bc revert Update snapcraft.yaml 2024-05-05 20:46:37 +02:00
Laurent Trinques
78005f812a Update snapcraft.yaml 2024-05-05 16:30:12 +02:00
Laurent Trinques
3479b98242 Update snapcraft.yaml 2024-05-05 16:02:41 +02:00
Laurent Trinques
f4f28b83bd git submodule update --remote elements 2024-05-05 05:56:25 +02:00
Laurent Trinques
4c8e7f4856 git submodule update --remote elements 2024-05-03 15:54:33 +02:00
Laurent Trinques
ba1123cf73 Merge pull request #291 from plc-user/master
fixed indentations of the remaining *.cpp/*.h files
2024-05-03 08:59:48 +02:00
plc-user
b3ac3c82af fixed indentations of the remaining *.cpp/*.h files 2024-05-02 08:39:27 +02:00
Laurent Trinques
e9448be986 Update README.md 2024-05-01 13:15:54 +02:00
Laurent Trinques
f72a2545bd Update LICENSE 2024-05-01 13:15:06 +02:00
Laurent Trinques
206a48a15f Merge pull request #289 from plc-user/master
correct more indentations / whitespace
2024-04-24 18:59:36 +02:00
plc-user
f33ea64b99 correct more indentations / whitespace (too many tabs) 2024-04-24 18:21:12 +02:00
plc-user
0d44933432 correct more indentations / whitespace 2024-04-24 18:02:00 +02:00
plc-user
fa68d545d0 correct more indentations / whitespace 2024-04-24 14:14:40 +02:00
Laurent Trinques
171f2eab4e git submodule update --remote elements 2024-04-21 12:45:50 +02:00
Laurent Trinques
ce86e18664 git submodule update --remote elements 2024-04-14 13:39:02 +02:00
Laurent Trinques
17030aaa80 Update packaging_script_Flatpak.sh 2024-04-11 15:57:13 +02:00
Laurent Trinques
09b1c0905e Update packaging_script_AppImage.sh 2024-04-11 15:56:13 +02:00
Laurent Trinques
b453832d46 Update packaging_script_Debian_Ubuntu_Windows.sh 2024-04-11 15:54:48 +02:00
Laurent Trinques
109efa03d2 Update MacQetDeploy.sh 2024-04-11 15:53:19 +02:00
Laurent Trinques
99a8b5f46d Update MacQetDeploy_arm64.sh 2024-04-11 15:51:51 +02:00
Laurent Trinques
d8b7fc3642 Merge pull request #288 from plc-user/master
update German and English translations
2024-04-10 15:32:49 +02:00
plc-user
5f7f72f292 update German and English translations 2024-04-10 15:21:48 +02:00
Laurent Trinques
7e6befdf0a Merge pull request #286 from plc-user/master
some minor changes
2024-04-10 12:33:09 +02:00
plc-user
4c52c8c9d0 correct indentations / whitespace 2024-04-10 10:28:58 +02:00
plc-user
4da6465318 add Help in Project-Setting / AutoNum / elements 2024-04-09 12:49:44 +02:00
plc-user
4c7d42251c correct some indention / whitespace 2024-04-07 22:53:51 +02:00
plc-user
6dac8e2005 correct some indention / whitespace 2024-04-07 22:39:33 +02:00
plc-user
15b625021c fix warnings: "control reaches end of non-void function" 2024-04-07 15:17:04 +02:00
plc-user
f4c880dc9f fix indention to get rid of warnings: "if/else does not guard" 2024-04-07 14:46:40 +02:00
Laurent Trinques
f343395da0 Disable menu-entry for show grid, when no project is loaded 2024-04-07 11:13:39 +02:00
Laurent Trinques
6d8e9f51cd Merge pull request #285 from plc-user/master
correct comments
2024-04-07 11:00:04 +02:00
plc-user
ef66350b30 correct comments 2024-04-07 10:55:28 +02:00
plc-user
f74616d2e4 correct comments 2024-04-07 10:42:37 +02:00
Laurent Trinques
8ce47848c2 Disable menu-entry for terminalBlock plugin, when no project is loaded 2024-04-05 12:59:55 +02:00
Laurent Trinques
d7b83140ab git submodule update --remote elements 2024-04-03 06:16:31 +02:00
Laurent Trinques
2263c798c7 Merge pull request #284 from plc-user/master
FIX SegFault: Disable menu-entry for DB-export when no project loaded
2024-04-02 12:24:36 +02:00
plc-user
cad7fa1ae7 FIX SegFault: Disable menu-entry for DB-export, when no project is loaded 2024-04-02 00:32:34 +02:00
Laurent Trinques
3a02be3f0e git submodule update --remote elements 2024-04-01 13:45:49 +02:00
Laurent Trinques
e73cf633ce 2023->2024 2024-03-29 10:09:48 +01:00
Laurent Trinques
21944b6739 Merge pull request #282 from plc-user/master
changed some remaining "pt_br" to "pt_BR"
2024-03-29 05:17:43 +01:00
plc-user
d54a8b9369 added sanity-check for 5-letter-language; adjusted comments 2024-03-28 19:40:56 +01:00
plc-user
3f796fea4b added translation to "pt_BR" 2024-03-28 17:57:12 +01:00
plc-user
73f7d44dcf changed some remaining "pt_br" to "pt_BR" 2024-03-28 17:43:15 +01:00
Laurent Trinques
c0390a4bd3 Try to fix bug #274 #278 2024-03-28 15:49:17 +01:00
Laurent Trinques
acb7a4cc4c Try to fix bug #274 #278 2024-03-28 15:45:29 +01:00
Laurent Trinques
28135a77db Try to fix bug #274 #278 2024-03-28 15:41:31 +01:00
Laurent Trinques
1b5df9733a git submodule update --remote elements 2024-03-28 15:39:52 +01:00
Laurent Trinques
c88d2b45cc Try to fix bug #274 #278
https://github.com/qelectrotech/qelectrotech-source-mirror/issues/274
2024-03-28 15:16:11 +01:00
Laurent Trinques
c4cae24ba7 Update *TS files 2024-03-28 13:24:06 +01:00
Laurent Trinques
6f22d5d37a Merge pull request #281 from plc-user/master
add option "transparent background" in SVG-export
2024-03-28 12:49:27 +01:00
plc-user
a7a072b977 corrected English translation 2024-03-28 11:23:37 +01:00
plc-user
90fa934976 corrected German and English translations 2024-03-28 10:35:33 +01:00
plc-user
4cfe658ff0 corrected English translations 2024-03-28 10:30:26 +01:00
plc-user
b55623bfc4 added German and English translations (CheckBox SVG-background) 2024-03-28 10:19:37 +01:00
plc-user
ec3952237f simplify setting of alpha-value for SVG-background 2024-03-28 09:32:55 +01:00
plc-user
2043fc2700 fix: add alpha-channel for SVG-background 2024-03-27 20:20:37 +01:00
plc-user
4de379d884 fix: no hardcoded colors for SVG-background 2024-03-27 20:13:35 +01:00
plc-user
2e379a3024 fix: specified colors for filled and transparent SVG 2024-03-27 19:23:19 +01:00
plc-user
21d293a928 fix: add CheckBox-value "SVG-transparency" to constructor 2024-03-27 15:30:02 +01:00
plc-user
a8aa772321 fix: save setting of CheckBox "SVG-transparency" 2024-03-27 15:15:53 +01:00
plc-user
cc20c218d8 add option "transparent background" in SVG-export 2024-03-27 14:50:26 +01:00
Laurent Trinques
a2beabd559 Update *TS files 2024-03-16 16:46:35 +01:00
Laurent Trinques
0109f3bc23 Minor: 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.
2024-03-16 16:15:23 +01:00
Laurent Trinques
e4b6b2b180 Merge pull request #280 from plc-user/master
Fix sizes
2024-03-14 09:31:58 +01:00
plc-user
06a6e5e5f4 fix font-size of graphical elements "input" 2024-03-14 08:55:59 +01:00
plc-user
5df77291fe fix size of SVG-export 2024-03-14 08:51:53 +01:00
Laurent Trinques
8da2f980cd git submodule update --remote elements 2024-03-11 09:29:57 +01:00
Laurent Trinques
8aaa596ff2 git submodule update --remote elements 2024-03-09 17:46:43 +01:00
Laurent Trinques
3c8d612742 The Elements Collection progress bar adds the number value of all the
elements counted.
2024-02-23 12:39:23 +01:00
Laurent Trinques
667e5eccf4 New Element Wizard add Company Collection in build Step 1 tree_view 2024-02-20 13:24:25 +01:00
joshua
ff3b497da2 Element editor : minor fix
In the part list widget, the terminal name is empty if terminal haven't
got name.
Now "terminal" is always displayed and if the terminal have a name the
name is appended to "terminal".
Example :
if the terminal name is 24 then the the part list widget show "terminal
: 24"
2024-02-15 22:04:11 +01:00
Laurent Trinques
7fe4765bff Update NL translations, thanks Dik 2023-12-25 17:24:10 +01:00
Laurent Trinques
c956e60ad0 Remove wrong translation files 2023-12-22 11:05:57 +01:00
Laurent Trinques
f44abb12d7 git submodule update --remote elements
revert PR 8 & 9
2023-12-21 15:48:36 +01:00
Laurent Trinques
bd3eacd1d6 git submodule update --remote elements 2023-12-21 13:04:43 +01:00
Laurent Trinques
3e0545f6b5 Update NL translations, thanks Dik 2023-12-21 07:36:33 +01:00
Laurent Trinques
c0466c0d45 git submodule update --remote elements 2023-12-20 13:08:14 +01:00
Laurent Trinques
f62b0fc812 Update French translations 2023-12-19 10:25:17 +01:00
Laurent Trinques
a3dc317246 Merge pull request #277 from plc-user/master
added folder "company-titleblocks" (incl. language-files)
2023-12-16 11:58:40 +01:00
plc-user
f12b11bee3 added folder "company-titleblocks" \(incl. language-files\) 2023-12-16 09:32:44 +01:00
Laurent Trinques
a4495d50d1 Merge pull request #276 from plc-user/master
update translations: de, en, nl
2023-12-13 13:31:20 +01:00
plc-user
e0b0caaf14 update translations: de, en, nl 2023-12-13 12:11:13 +01:00
Laurent Trinques
ae9e2eb678 Minor Fix En translation 2023-12-13 09:57:19 +01:00
Laurent Trinques
9a2bee851c Merge pull request #275 from plc-user/master
fix: set default "company-element-dir"
2023-12-12 09:25:18 +01:00
plc-user
3d8ad98ef2 fix: set default "company-element-dir" 2023-12-12 09:03:48 +01:00
Laurent Trinques
439463ab98 git submodule update --remote elements 2023-12-11 09:58:11 +01:00
Laurent Trinques
f7114fb0bb Update *TS files 2023-12-11 09:54:31 +01:00
Laurent Trinques
5190c0e929 Merge pull request #272 from plc-user/master
added "company-collection" as second user-collection
2023-12-11 09:43:26 +01:00
Laurent Trinques
e6aeaf6799 Merge pull request #273 from De-Backer/master
Fix Cmake build
2023-12-11 09:05:43 +01:00
Simon De Backer
d35b1623a4 Fix Cmake build
When creating new files.
Add the new files to: "cmake/qet_compilation_vars.cmake".

So that Cmake stays up to date.

thank you.
2023-12-10 22:58:31 +01:00
plc-user
2471547f70 reverted unwanted change 2023-12-10 20:18:17 +01:00
plc-user
4ca76b9993 fix: path-setting for company-collection 2023-12-10 18:00:06 +01:00
plc-user
74d022328e reverted some unwanted changes 2023-12-09 13:50:03 +01:00
plc-user
72092300ed added icons for "company-collection" 2023-12-09 12:02:52 +01:00
plc-user
f519499a66 added a second user-collection 2023-12-09 12:02:04 +01:00
Laurent Trinques
457aeb6883 Merge pull request #269 from plc-user/master
corrected german texts for "line-style"
2023-12-02 22:17:05 +01:00
plc-user
92b1e6c728 corrected german texts for "line-style" 2023-12-01 11:53:40 +01:00
Laurent Trinques
3d6ab1b050 Minor 2023-11-20 22:24:36 +01:00
Laurent Trinques
76798341b4 git submodule update --remote elements 2023-11-20 10:19:07 +01:00
Laurent Trinques
b6485353f1 Update publish-edge-snap.yml 2023-11-17 13:53:57 +01:00
Laurent Trinques
ffb2d9c63c git submodule update --remote elements 2023-11-15 16:48:24 +01:00
Laurent Trinques
55f7a2cb85 git submodule update --remote elements 2023-11-15 10:26:46 +01:00
Laurent Trinques
2ae3d3d5ae Update snapcraft.yaml 2023-11-13 10:33:16 +01:00
Laurent Trinques
4d50136146 Update packaging_script_AppImage.sh 2023-11-10 15:00:45 +01:00
Laurent Trinques
8b64343c91 Update packaging_script_AppImage.sh 2023-11-10 14:31:27 +01:00
Laurent Trinques
5e763bc8d2 Update packaging_script_AppImage.sh 2023-11-10 14:29:21 +01:00
Laurent Trinques
7447a7fd44 Update README.md 2023-11-09 20:47:54 +01:00
Laurent Trinques
eeb6107ec7 Update README.md 2023-11-09 20:35:11 +01:00
Laurent Trinques
4d60836851 Update README.md 2023-11-09 20:34:45 +01:00
Laurent Trinques
9f2dbfa39a Update *TS files 2023-11-09 13:57:35 +01:00
Laurent Trinques
a9f6583189 Fix URL 2023-11-09 13:46:45 +01:00
Laurent Trinques
9f8abed4b8 git submodule update --remote elements 2023-11-08 14:11:36 +01:00
Laurent Trinques
29ebc6000b Fix Cmake files 2023-11-08 13:38:55 +01:00
Laurent Trinques
663068e688 Update publish-edge-snap.yml 2023-11-07 13:11:31 +01:00
Laurent Trinques
b7fc8834a2 Fix bug 293: Automatic conductor numbering does not work 2023-11-07 08:04:16 +01:00
Laurent Trinques
902a976cc3 Change weighting of second conductor color
See: https://qelectrotech.org/bugtracker/view.php?id=292
On old project you replace in text editor
dash-size="10" by dash-size="5"
2023-11-05 16:09:48 +01:00
Laurent Trinques
489bfe1a7f Delete very old 32 bits NSIS 2 script 2023-10-28 14:32:57 +02:00
Laurent Trinques
9fceb6f000 Update QET64.nsi
Fix old URL in help links
2023-10-28 14:28:43 +02:00
Laurent Trinques
1a4fcbd274 Update qelectrotech.pro 2023-10-21 00:33:16 +02:00
Laurent Trinques
2c67b831bb Update qelectrotech.pro 2023-10-21 00:30:38 +02:00
Laurent Trinques
ae31b8270c Update .gitmodules 2023-10-20 19:30:50 +02:00
Laurent Trinques
75d2e7c148 Update qelectrotech.pro
Try to detect OSX arch
2023-10-20 19:22:17 +02:00
joshua
fbcab7c770 Fix : new conductor have text without variable replaced
For a new conductor with the text set from the default conductor text
defined in the folio properties, and this text contain variables, in
this case the variables are not replaced.
This commit fix it.
2023-10-19 21:59:05 +02:00
Laurent Trinques
083b1d8500 git submodule update --remote https://github.com/qelectrotech/qelectrotech-elements 2023-10-19 16:38:13 +02:00
Laurent Trinques
0a4c6e7d00 Minor 2023-10-19 16:13:44 +02:00
Laurent Trinques
a8df33d1fd Add submodule qelectrotech-elements 2023-10-19 16:03:22 +02:00
Laurent Trinques
8579e117ee Update README.md 2023-10-19 10:02:30 +02:00
joshua
471f87690c Remove unused signal 2023-10-17 23:12:05 +02:00
joshua
27dcd5ef00 Improve last commit
Remove setter function : void BorderTitleBlock::setTitle(const QString
&title)
Remove singal diagramTitleChanged from BorderTitleBlock and use instead
the signal informationChanged.
2023-10-17 22:46:04 +02:00
joshua
75746be0d8 remove unnecessary setters 2023-10-17 22:13:30 +02:00
joshua
8955ca2c82 Improve commit 73c0848fcd 2023-10-17 21:50:37 +02:00
joshua
107c59d680 diagram.cpp : remove unused #include 2023-10-16 22:31:47 +02:00
joshua
73c0848fcd Fix : conductor don't display well user defined variable as conductor text
see : https://qelectrotech.org/forum/viewtopic.php?pid=18835#p18835
2023-10-16 22:24:18 +02:00
Laurent Trinques
4ce67bb532 Update packaging_script_Flatpak.sh 2023-10-16 18:04:17 +02:00
Laurent Trinques
b29c8b8a1d Update packaging_script_Debian_Ubuntu_Windows.sh 2023-10-16 18:03:47 +02:00
Laurent Trinques
da82fff011 Update packaging_script_AppImage.sh 2023-10-16 18:03:19 +02:00
Laurent Trinques
6224c1160e Update MacQetDeploy_arm64.sh 2023-10-16 18:02:54 +02:00
Laurent Trinques
5955ff3d83 Update MacQetDeploy.sh 2023-10-16 17:57:38 +02:00
Laurent Trinques
5856d3e22a Update MacQetDeploy_arm64.sh 2023-10-16 17:33:38 +02:00
Laurent Trinques
1eca1f7d74 Update MacQetDeploy.sh 2023-10-16 17:32:58 +02:00
Laurent Trinques
809575e2b4 Update packaging_script_Debian_Ubuntu_Windows.sh 2023-10-16 17:30:43 +02:00
Laurent Trinques
c43a40a455 Update packaging_script_AppImage.sh 2023-10-16 17:29:45 +02:00
Laurent Trinques
9c68414165 Fix FTBFS 2023-10-16 17:17:48 +02:00
Laurent Trinques
be94f39087 Fix FTBFS 2023-10-16 17:03:00 +02:00
Laurent Trinques
eb2e45a66d Init submodule's
using git submodule instead of copy paste code from other repos
start pugixml form https://github.com/zeux/pugixml.git
start SingleApplication from https://github.com/itay-grudev/SingleApplication.git
2023-10-16 16:48:04 +02:00
Laurent Trinques
9840c18ed1 Update ELEMENTS.LICENSE 2023-10-16 16:12:37 +02:00
Laurent Trinques
b5a6c9d189 Update ELEMENTS.LICENSE 2023-10-16 16:11:43 +02:00
Laurent Trinques
3febbcfd8c Update LICENSE 2023-10-16 16:10:56 +02:00
Laurent Trinques
8f3d031383 Update README.md 2023-10-16 16:08:55 +02:00
Laurent Trinques
251f5aee5c Update org.qelectrotech.QElectroTech.json 2023-10-16 09:32:10 +02:00
Laurent Trinques
92e2f18d3c Update org.qelectrotech.QElectroTech.json 2023-10-16 09:12:48 +02:00
Laurent Trinques
9d2088c5e5 Update SingleApplication to v3.5.1 version 2023-10-15 14:47:30 +02:00
Laurent Trinques
c8ad8f2ba4 Update pugixml to 1.14 version 2023-10-15 14:44:08 +02:00
Laurent Trinques
7a222dc207 Update MacQetDeploy.sh 2023-10-13 19:33:18 +02:00
Laurent Trinques
233897550b Update MacQetDeploy_arm64.sh 2023-10-13 19:26:57 +02:00
Laurent Trinques
60833cb0d6 Update MacQetDeploy_arm64.sh
Typo
2023-10-13 19:25:32 +02:00
Laurent Trinques
6803ac42be Update MacQetDeploy_arm64.sh
Force MacOSX12.3.sdk
2023-10-13 19:24:28 +02:00
Laurent Trinques
13b9ae55b9 Update MacQetDeploy_arm64.sh 2023-10-13 11:20:17 +02:00
Laurent Trinques
71db1a1db5 Update MacQetDeploy.sh 2023-10-13 11:16:42 +02:00
Laurent Trinques
905a2aa570 Update MacQetDeploy.sh 2023-10-13 10:48:42 +02:00
Laurent Trinques
976877a59e Merge pull request #268 from Murmele/TooManyParts
Too many parts
2023-10-13 09:39:24 +02:00
Laurent Trinques
4d5a235887 Update snapcraft.yaml 2023-10-13 09:13:47 +02:00
Martin Marmsoler
8bc4053d35 fix compilation 2023-10-12 21:37:04 +02:00
Martin Marmsoler
e51ddbaa42 Give the user a possibility to set the maximum number of parts during import on an dxf file. Because sometimes the dxf file can contain more than 200 elements and the user is deleting some elements afterwards 2023-10-12 20:46:09 +02:00
Laurent Trinques
0cfde21758 Update MacQetDeploy.sh 2023-10-12 12:52:50 +02:00
Laurent Trinques
52ced12ab1 Update MacQetDeploy_arm64.sh 2023-10-12 12:49:08 +02:00
Laurent Trinques
dbe8f503dd Update packaging_script_Debian_Ubuntu_Windows.sh 2023-10-12 12:46:14 +02:00
Laurent Trinques
1f8c34491e Update packaging_script_Flatpak.sh 2023-10-12 12:43:50 +02:00
Laurent Trinques
0780f6627f Update Info.plist 2023-10-01 06:45:31 +02:00
Laurent Trinques
f161fecb02 Update Info.plist 2023-09-30 15:23:46 +02:00
Laurent Trinques
05b8392812 Fix chinese unicode character map, thanks Eric 2023-09-27 09:52:53 +02:00
Laurent Trinques
6be82ed4e9 Update en & fr translation 2023-09-26 14:16:29 +02:00
Laurent Trinques
bcbfdf10ae Update *TS files 2023-09-26 13:58:47 +02:00
Laurent Trinques
7543cc4122 Updated Czech translation of GUI, thanks Pavel 2023-09-26 08:35:37 +02:00
Laurent Trinques
e7ad6c4f3d Update README.md 2023-09-20 20:30:41 +02:00
Laurent Trinques
52a314b116 Update README.md 2023-09-20 20:29:13 +02:00
Laurent Trinques
0f1b1c9b5e Update Doxyfile 2023-09-20 19:30:14 +02:00
Laurent Trinques
103ad993c0 Merge pull request #267 from qelectrotech/terminal_strip
Merge Terminal strip to master
2023-09-20 08:29:23 +02:00
joshua
258bfd7957 terminal strip Layout editor add help preview button 2023-09-20 08:25:58 +02:00
joshua
b422d9c6c5 Demo terminal strip : add 4 level terminal strip 2023-09-20 08:24:12 +02:00
Laurent Trinques
d508ecb26b Update README.md 2023-09-19 22:10:52 +02:00
Laurent Trinques
fbe07c129f Update README.md 2023-09-19 22:07:39 +02:00
Laurent Trinques
0a7964209a Merge pull request #266 from qelectrotech/terminal_strip
Terminal strip
2023-09-19 15:30:06 +02:00
joshua
12b7c7c47c Terminal strip layout editor : add preview of terminal strip layout 2023-09-19 15:23:29 +02:00
Laurent Trinques
6811388fc2 Update README.md 2023-09-13 14:08:23 +02:00
Laurent Trinques
a53b1b0462 Update README.md 2023-09-13 14:07:43 +02:00
Laurent Trinques
0b5237e90d Update README.md 2023-09-13 14:06:26 +02:00
Laurent Trinques
c6bb1ae4ad Update README.md 2023-09-13 14:04:17 +02:00
Laurent Trinques
7829669b07 Update snapcraft.yaml
change Environment variables 
SNAPCRAFT_*→ CRAFT_*
2023-09-06 18:35:42 +02:00
Laurent Trinques
02d31874ae Update snapcraft.yaml 2023-09-06 17:49:52 +02:00
Laurent Trinques
525ce6124d Update snapcraft.yaml
replace 'snapcraftctl' with 'craftctl' to 
migrate from core20 to core22
2023-09-06 17:34:07 +02:00
Laurent Trinques
f2ef554290 Update snapcraft.yaml
change to kf5-5-108-qt-5-15-10-core22-sdk
2023-09-06 16:28:57 +02:00
Laurent Trinques
92604d5d65 Update publish-edge-snap.yml 2023-09-06 12:46:24 +02:00
Laurent Trinques
e2f5b007a9 Update publish-edge-snap.yml 2023-09-06 12:26:29 +02:00
Laurent Trinques
16afd275d7 Update publish-edge-snap.yml 2023-09-06 09:34:50 +02:00
Laurent Trinques
1d159f8772 Update publish-edge-snap.yml 2023-09-05 17:23:50 +02:00
Laurent Trinques
f25e72c069 Update publish-edge-snap.yml 2023-09-05 17:20:56 +02:00
Laurent Trinques
c0f29bbfe5 Update publish-edge-snap.yml 2023-09-05 15:37:21 +02:00
Laurent Trinques
660707bf28 Update snapcraft.yaml 2023-09-05 15:06:47 +02:00
Laurent Trinques
6423dfe3cc Update snapcraft.yaml 2023-09-05 14:43:11 +02:00
Laurent Trinques
1f75953648 Update snapcraft.yaml 2023-09-05 14:17:41 +02:00
Laurent Trinques
920274acc1 Update snapcraft.yaml 2023-09-05 14:15:44 +02:00
Laurent Trinques
9ba24337f9 Update snapcraft.yaml 2023-09-05 14:12:46 +02:00
Laurent Trinques
55297efab9 Update snapcraft.yaml 2023-09-05 14:10:08 +02:00
Laurent Trinques
fe6814c65f Update snapcraft.yaml 2023-09-05 14:05:00 +02:00
Laurent Trinques
5289fc7527 Update snapcraft.yaml 2023-09-05 14:03:01 +02:00
Laurent Trinques
341bfa5d10 Update snapcraft.yaml 2023-09-05 13:38:13 +02:00
Laurent Trinques
8433fbeec2 Update snapcraft.yaml 2023-09-05 13:30:07 +02:00
Laurent Trinques
219d17840b Update snapcraft.yaml 2023-09-05 12:59:02 +02:00
Laurent Trinques
2154461b1d Update snapcraft.yaml 2023-09-05 11:53:55 +02:00
Laurent Trinques
e8c876c88e Update snapcraft.yaml 2023-09-05 10:51:50 +02:00
Laurent Trinques
e6abff81bb Update snapcraft.yaml 2023-09-05 10:34:04 +02:00
Laurent Trinques
6ec41f7ceb Update snapcraft.yaml 2023-09-05 10:27:43 +02:00
Laurent Trinques
4b28b1b38a Update publish-edge-snap.yml
Try to fix Error: The process '/usr/bin/sg' failed with exit code 2
2023-09-05 10:07:33 +02:00
Laurent Trinques
18301b6ce4 Merge pull request #264 from kamikazzyyyy/new-elements
Added new symbols
2023-09-05 09:48:15 +02:00
Baptiste HADJAB
6920b2febd Added new symbols
New symbols:
phoenix_contact
johnson_controls
sofrel
2023-09-05 08:59:34 +02:00
Laurent Trinques
0e233d6783 Update chine data QChar 2023-08-28 06:15:57 +02:00
Laurent Trinques
888c25ec02 Add Chinese switch 2023-08-27 12:36:08 +02:00
Laurent Trinques
b9cd8288fc Update Chinese translation, thanks Eric Wang 2023-08-23 10:04:20 +02:00
joshua
8ca1e0487e Add demo terminal strip class
Not available for user now.
2023-06-28 21:56:03 +02:00
plc-user
171ee5d2ae fixed and scaled Siemens front-views 2023-06-19 06:08:19 +02:00
plc-user
cafa58df73 fixed and scaled MDT front-views 2023-06-19 06:08:19 +02:00
plc-user
137d02ae43 scaled General Electric front-views 2023-06-19 06:08:19 +02:00
plc-user
856172db91 scaled and corrected Hager front-views 2023-06-19 06:08:19 +02:00
plc-user
02ad9349a7 scaled ABB front-views 2023-06-19 06:08:19 +02:00
plc-user
5240b30f81 re-sorted elements 2023-06-19 06:08:19 +02:00
plc-user
668a9848e8 re-sorted elements 2023-06-19 06:08:19 +02:00
plc-user
eb4dc48563 removed empty folder 2023-06-19 06:08:19 +02:00
Laurent Trinques
8241041c1a Add new example project 2023-06-19 06:06:11 +02:00
plc-user
c5ffff76ee removed empty directories 2023-06-14 09:07:57 +02:00
plc-user
411d8d73f7 fixed some terminal-positions to whole numbers (many left\!) 2023-06-14 09:07:57 +02:00
plc-user
7a3989e065 corrections, new terminals and new sub-dir "discontinued" 2023-06-13 09:00:13 +02:00
Laurent Trinques
08e8409ce0 Add qet_it.qm 2023-05-22 05:45:40 +02:00
clabacchio
753abff183 Fixed some italian translations 2023-05-22 05:44:38 +02:00
joshua
48f9ef7632 Add AbstractTerminalStrip class to be used by TerminalStripDrawer class 2023-05-15 22:22:12 +02:00
Laurent Trinques
4e6ea06d0d Resore qetshapeitem::polygon contextMenuEvent
reverted by commit: 0a8376c189
see:
https://qelectrotech.org/bugtracker/view.php?id=220
and
https://qelectrotech.org/forum/viewtopic.php?pid=18204#p18204
2023-05-13 18:12:28 +02:00
Laurent Trinques
1748280b80 Try to fix Github action to build snap 2023-05-10 16:54:02 +02:00
Laurent Trinques
2a1d3ae1f1 Try to fix Github action to build snap 2023-05-10 10:20:38 +02:00
Laurent Trinques
3cd124f348 Node.js 12 actions are deprecated. update the following actions to use Node.js 16 2023-05-10 10:09:59 +02:00
Laurent Trinques
1cc6a42fd8 Add new weidmuller elements, thanks KevinarCZ 2023-05-09 09:26:19 +02:00
Laurent Trinques
de89997c4e Improve changeover contact view in list mode 2023-04-28 16:43:14 +02:00
Laurent Trinques
c989437982 Add new GCE elements 2023-04-25 10:55:19 +02:00
joshua
247b98da41 Fix minor bug : conductor text is not updated when folio id is used
See https://qelectrotech.org/forum/viewtopic.php?pid=18157#p18157
2023-04-17 22:09:18 +02:00
Laurent Trinques
31b648c2a0 MacQetDeploy_arm64.sh script add staple to the app 2023-04-11 16:59:41 +02:00
Laurent Trinques
a7590558b9 Add new arduino sensors, thanks KevinarCZ 2023-04-02 14:19:32 +02:00
Laurent
5cbb444c0a macOS fix: add Move diagram item with the keyboard arrow 2023-03-29 13:10:50 +02:00
Laurent
6919369a92 MacQetDeploy_arm64.sh add Enable hardened runtime flag to fix notarization
Add process to Upload a macOS app to be notarized and validate before upload to QET download servers
2023-03-21 14:18:33 +01:00
Laurent Trinques
6d178b324c MacQetDeploy_arm64.sh add examples in bundle 2023-03-20 14:54:15 +01:00
laurent
ea08c588db Add new MacOS arm64 build script 2023-03-20 13:37:03 +01:00
joshua
752fe032e7 Draw strong line for better sepration between terminal 2023-03-19 19:19:53 +01:00
Laurent Trinques
9e04432597 Minor 2023-03-14 10:44:07 +01:00
Laurent Trinques
a67add6c0c Add new arduino sensors, thanks KevinarCZ 2023-03-14 10:37:18 +01:00
plc-user
a6be1c8004 translations and corrected elements 2023-03-12 16:28:20 +01:00
plc-user
3f550cbbb6 translations and corrected elements 2023-03-12 16:28:20 +01:00
plc-user
9d88abeac2 translations and corrected elements 2023-03-12 16:28:19 +01:00
plc-user
c60f04da2f corrected filename and translations 2023-03-12 16:28:19 +01:00
plc-user
1d1776441d German translations and corrected directory-name 2023-03-12 16:28:19 +01:00
plc-user
fec9def35b some German translations and Element-Corrections 2023-03-12 13:42:18 +01:00
joshua
45b8cb34f3 Fix minor gui wrong behavior 2023-03-10 20:19:12 +01:00
THGSCST
0edc3a083f PT-BR Language small fixes 2023-03-03 06:47:46 +01:00
THGSCST
b0324c6654 PT-BR Titleblocks
Added pt_br attribute to titleblocks templates
2023-03-03 06:47:46 +01:00
THGSCST
55263b5b8d PT-BR Language update
Correction of spelling errors, inclusion of missing texts and adequacy of Brazilian technical terms.
2023-03-03 06:47:46 +01:00
joshua
03094e1328 Fix wrong display in widget used to link folio report 2023-03-01 19:33:26 +01:00
Laurent Trinques
32e9ee9f36 Try to fix FTBS on not c++17 system 2023-02-27 10:42:13 +01:00
Laurent Trinques
047462f226 Fix macOS Deprecated synonym for Q_OS_DARWIN 2023-02-25 14:28:02 +01:00
joshua
ec3ac92b5e Fix minor bug
When two shapes item have line and filling color and the dock widget
used for edit the current selection is visible, switching selection
between the two shapes, the last selected shape filling color change
and become the filling color of the previous shape.
2023-02-24 19:08:10 +01:00
Laurent Trinques
78644a3524 macOS update python PATH to launch qet_tb_generator to python 3.11 2023-02-22 15:40:38 +01:00
joshua
470e4a059b Add widget to edit terminal strip item layout
The widget is available in the project properties editor.
WIP
2023-02-21 21:44:28 +01:00
Laurent Trinques
c53f5fbc66 Add save as shortcut in qetdiagrameditor 2023-02-16 06:10:17 +01:00
Laurent Trinques
8857b1c731 Update hungarian translation, thanks Gabor 2023-02-12 22:25:00 +01:00
Paweł Śmiech
25e93bde56 Update polish translation 2023-02-06 16:42:56 +01:00
Laurent Trinques
6e60842d69 Improve numbering of the elements symbols for pneumatic, thanks Vbxler 2023-02-05 20:27:46 +01:00
Laurent Trinques
3d3ebc99fd Update * TS files, only add simplified Chinese code is zh-cn 2023-02-02 06:34:29 +01:00
joshua
ec5cda10db Minor : improve first and last segment position of conducteur 2023-01-31 23:13:05 +01:00
dlee99
8298f56b7e modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2023-01-30 22:30:58 +01:00
Laurent Trinques
08b0bde0d7 Add Siemens 6es5090-8ma01.elmt, thanks LievenC 2023-01-30 13:57:51 +01:00
Laurent Trinques
7023b7033f Improve 20 logic elements, thanks Vbxier 2023-01-28 14:38:41 +01:00
joshua
092b18cefd Fix wrong calculation of the bounding rect of an arc 2023-01-27 19:39:53 +01:00
Laurent Trinques
45e3e92022 Update translations binary files 2023-01-25 15:43:07 +01:00
Laurent Trinques
bfa349406d Refresh packaging_script_AppImage.sh scripts 2023-01-25 13:31:42 +01:00
Laurent Trinques
921f9109f8 Refresh packaging_script_Flatpak.sh 2023-01-25 12:57:12 +01:00
Laurent Trinques
7db9430b3c Refresh MacQetDeploy.sh scripts 2023-01-25 12:27:25 +01:00
Laurent Trinques
ede9e7f063 Minor clean in packaging_script_Debian_Ubuntu_Windows.sh scripts 2023-01-25 12:03:12 +01:00
Laurent Trinques
0f06f90516 Refresh packaging_script_Debian_Ubuntu_Windows.sh example scripts 2023-01-25 11:56:50 +01:00
dlee99
e18c7117c5 modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2023-01-24 22:53:18 +01:00
Laurent Trinques
845bd38d88 Refresh splash image size 2023-01-24 17:59:47 +01:00
Laurent Trinques
c287182d4b MacQetDeploy.sh change the method for version package naming 2023-01-24 17:38:07 +01:00
Laurent Trinques
ae493f16c6 Update splash image 2023-01-24 07:28:32 +01:00
Remi Collet
880bd8f7bd Only display git revision when available 2023-01-23 16:39:03 +01:00
plc-user
15282292c9 fixed hotspots and decimals of logic-elements 2023-01-22 05:24:06 +01:00
plc-user
9a80760c71 fixed typo again 2023-01-22 05:24:06 +01:00
plc-user
a833da45b5 simplified element / corrected terminal-positions 2023-01-22 05:24:06 +01:00
plc-user
14d7ceca1a added some German phrases 2023-01-22 05:24:06 +01:00
plc-user
c03a079b89 added German part to "INSTALL" 2023-01-22 05:24:06 +01:00
plc-user
4870b070f6 added German part to Elements-Licence 2023-01-22 05:24:06 +01:00
plc-user
1671b4ca58 corrected line-numbers to original 2023-01-22 05:24:06 +01:00
plc-user
d45b84d242 some translations and whitespace-fixing 2023-01-22 05:24:06 +01:00
Laurent Trinques
be43afaf78 Update *TS file 2023-01-21 17:15:42 +01:00
Laurent Trinques
77920280c7 Add Git Revision in aboutqetdialog 2023-01-21 14:46:34 +01:00
joshua
a0970b37b9 Improve and simplify the use of versions 2023-01-19 20:18:21 +01:00
plc-user
ad4e263198 German translations (including binary file) 2023-01-14 17:48:53 +01:00
plc-user
3f27b0d007 some more German translations
left some "unfinished": maybe we'll find even better translations in the future
2023-01-14 11:18:29 +01:00
plc-user
6bbf9d30b2 small modifications and translations 2023-01-14 11:18:29 +01:00
dlee99
86487b392b modified: lang/qet_nl.qm
modified:   lang/qet_nl.ts
2023-01-13 23:50:12 +01:00
Laurent Trinques
cfc5bbc6bb Force Plc-user patch 2023-01-13 18:28:58 +01:00
plc-user
53eaa2a81d more German translations 2023-01-13 18:25:34 +01:00
plc-user
9f1164a174 some German translations 2023-01-13 18:25:34 +01:00
Remi Collet
fece536b55 avoid false warning for project created by qet >= 0.100 2023-01-13 13:42:50 +01:00
Laurent Trinques
51a4cd3982 Update *TS files 2023-01-13 10:56:58 +01:00
Laurent Trinques
9f7754c3bc Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2023-01-13 10:48:24 +01:00
Laurent Trinques
28878ed53c Fix previous translations 2023-01-13 10:47:52 +01:00
Laurent Trinques
43cd9f98cb Update *TS files and add EN + FR translations 2023-01-13 09:44:31 +01:00
Laurent Trinques
289175b775 Minor 2023-01-13 09:32:05 +01:00
Laurent Trinques
45ec061cf1 Improves the warning message box when the version of the project to load
differs from the version used.
Added information about the version of the launched project and the
version currently in use.
2023-01-13 09:28:05 +01:00
Remi Collet
1be93fa581 fix comment 2023-01-12 18:24:58 +01:00
Remi Collet
812a262b63 move decl close to usage 2023-01-12 18:24:58 +01:00
Remi Collet
038d2d7033 use QVersionNumber and switch to "list of int" standard 2023-01-12 18:24:58 +01:00
Remi Collet
19d867f6a4 fix segfault on load cancelled 2023-01-12 16:56:02 +01:00
Laurent Trinques
2180805637 Update README.md 2023-01-09 12:32:32 +01:00
joshua
d3223c8ca4 Merge branch 'master' into terminal_strip
* master:
  Fix crash
  Change displayed version on master
  avoid WARNING: mime_xml.path is not defined
  Update changelog
2023-01-08 16:30:59 +01:00
joshua
b1f6b1823a Fix crash 2023-01-08 16:20:13 +01:00
Laurent Trinques
1e2bdc203b Change displayed version on master 2023-01-06 15:28:32 +01:00
Remi Collet
f75f6d3f3f avoid WARNING: mime_xml.path is not defined 2023-01-06 14:07:35 +01:00
joshua
f07e4319d3 Fix ftbfs 2023-01-05 19:20:41 +01:00
Laurent Trinques
d5f0a7932a Update changelog 2023-01-05 10:17:25 +01:00
joshua
4da7f6cd13 TerminalStripLayoutPattern is now shared
TerminalStripLayoutPattern class is now a shared pointer between all
terminal strip item.
QETProject have now a new class : ProjectPropertiesHandler
the goal of this class is to manage every kind of properties used in the
project, this class will be strongly used in future.
2023-01-04 22:40:18 +01:00
joshua
c6739b5bec Fix ftbfs on macOS 2023-01-03 22:30:13 +01:00
Laurent Trinques
cc7e185d59 Merge branch 'master' of ssh://git.tuxfamily.org/gitroot/qet/qet 2023-01-03 01:47:09 +01:00
Laurent Trinques
60ceab8a32 Add unicode HEX codes from a string in Ukranian: "Імпортовані
елементи"
Refresh namesListForIntegrationCategory
2023-01-02 20:13:42 +01:00
joshua
539e0a7a49 Merge branch 'terminal_strip'
* terminal_strip:
  Terminal strip item can saved / loaded to .qet file
  See previous commit...
  Move terminal strip drawer class in is own file
  Fix wrong use of QStringLiteral and QLatin1String
  Double click a TerminalStripItem open the editor
  Minor change about checkable QAction of QetDiagramEditor
  Minor : corrects a minor aesthetic defect when unbridge terminals
  Revamp code
  Add and move terminal strip item are now managed by undo command
  TerminalStripItem : Draw terminal bridge
  Terminal strip item can be added to diagram
  Minor : add QGIUtility namespace
2023-01-02 19:40:08 +01:00
joshua
f54bea713e Terminal strip item can saved / loaded to .qet file 2022-12-21 19:18:49 +01:00
joshua
f41b5a4ed4 See previous commit...
Je suis une tête de linotte
2022-12-02 19:39:56 +01:00
joshua
1f99a40f1b Move terminal strip drawer class in is own file 2022-12-02 19:35:17 +01:00
joshua
d23a5bbdc7 Fix wrong use of QStringLiteral and QLatin1String 2022-12-02 18:26:56 +01:00
joshua
81640015e5 Double click a TerminalStripItem open the editor 2022-12-02 18:12:47 +01:00
joshua
a18cd2461f Minor change about checkable QAction of QetDiagramEditor 2022-11-14 21:51:14 +01:00
joshua
aca3b8ad1e Minor : corrects a minor aesthetic defect when unbridge terminals 2022-11-14 21:10:38 +01:00
joshua
9e1ef8c42f Revamp code
-Move MoveElementsCommand class from diagramcommands file to
movegraphicsitemcommand file.
-Rename the to class MoveGraphicsItemCommand.
-Minor code change to make it more modern.
2022-11-08 22:06:50 +01:00
joshua
7fede2277f Add and move terminal strip item are now managed by undo command 2022-11-08 19:20:32 +01:00
joshua
21de926367 TerminalStripItem : Draw terminal bridge 2022-10-23 19:30:58 +02:00
joshua
ff80453f2c Terminal strip item can be added to diagram
Initial commit about graphics item of a terminal strip, Work in
progress.
2022-08-27 21:24:25 +02:00
joshua
d9a0b03e23 Minor : add QGIUtility namespace 2022-07-15 20:48:06 +02:00
10098 changed files with 94040 additions and 638383 deletions

View File

@@ -9,7 +9,9 @@ jobs:
publish_amd64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Checkout submodules
run: git submodule update --init --recursive
- uses: snapcore/action-build@v1
id: build
- uses: snapcore/action-publish@v1
@@ -17,4 +19,4 @@ jobs:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }}
with:
snap: ${{ steps.build.outputs.snap }}
release: edge
release: stable

10
.gitmodules vendored Normal file
View File

@@ -0,0 +1,10 @@
[submodule "pugixml"]
path = pugixml
url = https://github.com/zeux/pugixml.git
[submodule "SingleApplication"]
path = SingleApplication
url = https://github.com/itay-grudev/SingleApplication.git
[submodule "elements"]
path = elements
url = https://github.com/qelectrotech/qelectrotech-elements.git

View File

@@ -16,7 +16,7 @@
include(cmake/hoto_update_cmake_message.cmake)
cmake_minimum_required(VERSION 3.14...3.19 FATAL_ERROR)
cmake_minimum_required(VERSION 3.21.1 FATAL_ERROR)
project(qelectrotech
VERSION 0.9.0
@@ -27,6 +27,13 @@ project(qelectrotech
include(cmake/copyright_message.cmake)
set(QET_DIR ${PROJECT_SOURCE_DIR})
include(cmake/qet_compilation_vars.cmake)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS ${QET_COMPONENTS})
qt_standard_project_setup()
# Add sub directories
option(PACKAGE_TESTS "Build the tests" ON)
@@ -43,42 +50,17 @@ include(cmake/git_last_commit_sha.cmake)
include(cmake/fetch_kdeaddons.cmake)
include(cmake/fetch_singleapplication.cmake)
include(cmake/fetch_pugixml.cmake)
include(cmake/qet_compilation_vars.cmake)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
SET(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(
QT
NAMES
Qt6
Qt5
COMPONENTS
${QET_COMPONENTS}
REQUIRED
)
find_package(
Qt${QT_VERSION_MAJOR}
COMPONENTS
${QET_COMPONENTS}
REQUIRED)
set(CMAKE_AUTOUIC_SEARCH_PATHS ${QET_DIR}/sources/ui)
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${QET_DIR}/lang")
qt5_add_translation(QM_FILES ${TS_FILES})
# als laatse
include(cmake/define_definitions.cmake)
add_executable(
qt_add_executable(
${PROJECT_NAME}
${QET_RES_FILES}
${QET_SRC_FILES}
@@ -86,13 +68,24 @@ add_executable(
${QET_DIR}/qelectrotech.qrc
)
if(QMFILES_AS_RESOURCE)
qt_add_translations(${PROJECT_NAME} TS_FILES ${TS_FILES} RESOURCE_PREFIX "/lang")
else()
qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${QET_DIR}/lang")
qt_add_translation(QM_FILES ${TS_FILES})
endif()
find_package(SQLite3 REQUIRED)
target_link_libraries(
${PROJECT_NAME}
PUBLIC
PRIVATE
pugixml::pugixml
SingleApplication::SingleApplication
${KF5_PRIVATE_LIBRARIES}
SQLite::SQLite3
${KF6_PRIVATE_LIBRARIES}
${QET_PRIVATE_LIBRARIES}
)
@@ -125,7 +118,7 @@ target_include_directories(
${QET_DIR}/sources/NameList
${QET_DIR}/sources/NameList/ui
${QET_DIR}/sources/utils
${QET_DIR}/sources/pugixml
${QET_DIR}/pugixml/src
${QET_DIR}/sources/dataBase
${QET_DIR}/sources/dataBase/ui
${QET_DIR}/sources/factory/ui
@@ -146,9 +139,10 @@ install(DIRECTORY elements DESTINATION share/qelectrotech)
install(DIRECTORY examples DESTINATION share/qelectrotech)
install(DIRECTORY titleblocks DESTINATION share/qelectrotech)
install(FILES LICENSE ELEMENTS.LICENSE CREDIT README ChangeLog DESTINATION share/doc/qelectrotech)
install(FILES misc/qelectrotech.desktop DESTINATION share/applications)
install(FILES misc/org.qelectrotech.qelectrotech.desktop DESTINATION share/applications)
install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages)
install(FILES misc/qelectrotech.appdata.xml DESTINATION ${QET_APPDATA_PATH})
install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH})
if(NOT QMFILES_AS_RESOURCE)
install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH})
endif()
endif()

View File

@@ -1,3 +1,54 @@
====== ChangeLog from 0.8 to 0.9 ======
*Diagram editor :
Improved QElectroTech speed (launch qet, open project, function)
A drop-down list has been added to the toolbar to change the size of the resize handles.
*Element Editor:
The "keep visual rotation" property of element texts is editable from the element editor.
Thanks to the work of antonioaja it is now possible to import a dxf directly from the element editor in a completely transparent way for the user.
In the background QElectroTech uses the dxf2elmt software. https://qelectrotech.org/forum/viewtopic.php?id=2265 https://github.com/antonioaja/dxf2elmt
Improved responsiveness when multiple shapes are selected or deleted, especially when working on a large converted DXF element.
https://qelectrotech.org/forum/viewtopic.php?pid=16612#p16612
*Other:
Add a "side project" tab in the "about" window.
In the general QElectroTech configuration, a drop down list allows to choose the scaling method for hdpi screens.
Allow open polygons (i.e. polylines) when saving in dxf format.
https://qelectrotech.org/forum/viewtopic.php?pid=16611#p16611
Added 'Other' option for slave device contact type.
https://github.com/qelectrotech/qelectrotech-source-mirror/pull/222
https://qelectrotech.org/forum/viewtopic.php?id=2264
*Logs:
Added a QElapsedTimer to calculate the time used to reload the item collection.
Improved QElapsedTimer to calculate the time used to reload the item collection in seconds instead of ms.
Added Linux pc.gpu.RAM information, but requires mesa-utils dependency on the Linux OS.
Added information about mounted disk volumes.
Added CPU architecture for which Qt was compiled in the aboutqetdialog widget and in the logs.
Added MSVC support to MachineInfo.
Added RAM information on Windows of available RAM.
Added QElectroTech version to the log file.
* Elements collection :
Improve collection 8274 elements in 1097 categories (i.e. 9371 files).
* macOS :
Fix sqlite3 database export on macOS, now I use macports with Digikam scripts instead off Homebrew Package Manager.
See: https://invent.kde.org/graphics/digikam/-/tree/master/project/bundles/macports
*Bug fix:
see: https://git.tuxfamily.org/qet/qet.git/log/?h=0.8.1
====== ChangeLog from 0.7 to 0.8 ======

View File

@@ -38,7 +38,7 @@ PROJECT_NAME = QElectroTech
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = " 0.8-dev"
PROJECT_NUMBER = " 0.100.0-dev"
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

View File

@@ -4,6 +4,10 @@ without any warranty of fitness for your purpose or working.
The usage, the modification and the integration of the elements into electric
diagrams is allowed without any condition, whatever the final license of the
diagrams is.
Permission is not granted to use this software or any of the associated files
as sample data for the purposes of building machine learning models.
If you redistribute all or a part of the QElectroTech collection, with or
without any modification, out of an electric diagram, you must respect the
conditions of the CC-BY license:
@@ -19,6 +23,9 @@ fonctionne.
L'utilisation, la modification et l'intégration des éléments dans des schémas
électriques est autorisée sans condition, quelle que soit la licence finale des
schémas.
L'autorisation n'est pas accordée pour utiliser ce logiciel ou l'un des fichiers associés
comme exemples de données aux fins de création de modèles dapprentissage automatique.
Si vous redistribuez tout ou partie de la collection QElectroTech, avec ou sans
modification, en dehors d'un schéma électrique, vous devrez respecter les
conditions de la licence CC-BY :
@@ -27,6 +34,23 @@ disponible en ligne http://creativecommons.org/licenses/by/3.0/ ou par
courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco,
California 94105, USA.
[de]
Die mit QElectroTech zur Verfügung gestellte Sammlung von Elementen wird ohne
Gewährleistung der Eignung für einen bestimmten Zweck oder der Funktions-
fähigkeit zur Verfügung gestellt.
Die Verwendung, Modifikation und Integration der Elemente in elektrische
Schaltpläne ist uneingeschränkt erlaubt, unabhängig von der endgültigen Lizenz
der Schaltpläne.
Wenn Sie die gesamte QElectroTech-Sammlung oder Teile davon, mit oder ohne
Modifikationen, aus einem Schaltplan weitergeben, müssen Sie die Bedingungen
der CC-BY-Lizenz einhalten.
Dieses Werk steht unter einer Creative Commons Attribution 3.0 Lizenz.
Eine Kopie dieser Lizenz finden Sie unter:
http://creativecommons.org/licenses/by/3.0/
oder senden Sie einen Brief an:
Creative Commons, 171 Second Street, Suite 300,
San Francisco, Kalifornien, 94105, USA.
[ru]
Коллекция элементов, поставляемая вместе с QElectroTech, поставляется "как есть"
и без каких-либо гарантий пригодности для той или иной цели или работы.

11
INSTALL
View File

@@ -20,6 +20,17 @@ $ make
# umask 0022
# make install
[de]
Abhängigkeiten:
libQt5 (Pakete libqt5*)
cupsys-bsd zum Drucken
Kompilieren:
$ qmake (qmake-qt5 für Debian-basierende Systeme)
$ make
# umask 0022
# make install
[ru]
Зависимости:
libQt5 (пакет libqt5*)

View File

@@ -7,6 +7,7 @@
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your

2
README
View File

@@ -8,7 +8,7 @@ QET utilise le format XML pour ses éléments et ses schémas et inclut un édit
[de]
QElectroTech ist eine Qt5 Software, um Schaltpläne zu erstellen.
QET benutzt das XML Format für seine Bauteile und seine Projekte, und beinhaltet einen Schaltplaneditor, einen Bauteileditor sowie einen Zeichnungskopfeditor.
QET benutzt das XML Format für seine Bauteile und seine Projekte, und beinhaltet einen Schaltplaneditor, einen Bauteileditor sowie einen Schriftfeldeditor.
[ru]

View File

@@ -15,10 +15,10 @@ The main goal of the developers is to provide a libre, easy to use and effective
### Version
The current stable version is 0.80 and was released on 2021.02.21.
The current stable version is 0.90 and was released on 2023.01.06.
Once it has been officially released, the stable version is always frozen and is no longer developed.
New functionalities, bug and issue fixings are further made in the development version (currently 0.9), which can also be [downloaded](https://qelectrotech.org/download.html).
New functionalities, bug and issue fixings are further made in the development version (currently 0.100), which can also be [downloaded](https://qelectrotech.org/download.php).
Users who want to test and take benefits from the last software implementations should use the development version. But... use it at your own risk, since things are sometimes broken or only partially implemented until they are done!
@@ -27,13 +27,15 @@ Users who want to test and take benefits from the last software implementations
The software is licensed under [GNU/GPL](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html).
You are free to use, copy, modify and redistribute it under the terms of the license.
Like many other open source software, QElectroTech is provided as is, without any warranty.
### Development / technical choices
The development follows the classical way of free and open source software: the source code, written by a community of users, is freely accessible.
If you are reading this on Github, be aware that this is an hourly synced mirror. Our real code repository [is located here](https://git.tuxfamily.org/qet/qet.git/).
* Get sources and sub-modules
```txt
git clone --recursive https://github.com/qelectrotech/qelectrotech-source-mirror.git
```
Here are the technical choices made for the software development:
@@ -41,11 +43,13 @@ Here are the technical choices made for the software development:
* Libraries: Qt 5.x
* [KF5 Framework](https://github.com/KDE)
[Cmake](https://cmake.org/install/)
[kcoreaddons](https://github.com/KDE/kcoreaddons)
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons).
[kcoreaddons](https://github.com/KDE/kcoreaddons/tree/kf5)
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons/tree/kf5).
* Coding language: [C++](https://en.wikipedia.org/wiki/C%2B%2B)
* GUI translations: [Qt Linguist](http://doc.qt.io/qt-5/qtlinguist-index.html)
* Version control: [GIT](https://git.tuxfamily.org/qet/qet.git/)
* Version control: [GIT](https://github.com/qelectrotech/qelectrotech-source-mirror.git)
* Doxygen documentation :[Doxygen](https://download.qelectrotech.org/qet/doxygen/html/)
* QtCreator qch doxygen :[QElectroTech.qch](https://download.qelectrotech.org/qet/doxygen/)
* File format for projects, elements and titleblocks: [XML](http://www.w3schools.com/xml/xml_whatis.asp)
* Main development platform: [GNU/Linux](http://getgnulinux.org/en/linux/)
* Targeted platforms: Windows, GNU/Linux, Mac OS X, BSDs
@@ -73,12 +77,12 @@ Take advantage of the modern GUI
Toolbars and panels can be enabled/disabled, moved and displayed the way you want to work.
Panels can be stacked on each other (as tabs) or docked on the sides (as docks) or completely separated from the main window (as windows).
The GUI can fit to small or big screens, and even to multi-display configurations.
![](https://download.tuxfamily.org/qet/images-features/0030.png "GUI overview")
![](https://download.qelectrotech.org/qet/images-features/0030.png "GUI overview")
The GUI of QElectroTech is translated in 19 languages.
The GUI of QElectroTech is translated in 25 languages.
You only need to restart the application for the new selected language to take effect.
![](https://download.tuxfamily.org/qet/images-features/0040.png "Lang menu")
![](https://download.qelectrotech.org/qet/images-features/0040.png "Lang menu")
Create technical documentation in professional quality
@@ -87,56 +91,56 @@ You can set vertical and horizontal headers (printed rulers) individually on and
Titlebocks can be created and edited with the embedded titleblock editor to perfectly suit your needs.
Custom variables can be defined to display the informations you wish in the titleblock.
![](https://download.tuxfamily.org/qet/images-features/0055.png "Titleblock editor")
![](https://download.qelectrotech.org/qet/images-features/0055.png "Titleblock editor")
With only 2 mouse clicks you can add a full automatic generated table of content.
Changes in the documentation are updated on the fly.
![](https://download.tuxfamily.org/qet/images-features/0060.png "Table of content")
![](https://download.qelectrotech.org/qet/images-features/0060.png "Table of content")
Choose from more than 7.000 symbols...
Choose from more than 8.200 symbols...
The embedded QET collection contains a rich library of electric, logic, pneumatic, hydraulic and fluid symbols.
The library grows at every new release thanks to an active user community.
![](https://download.tuxfamily.org/qet/images-features/0070.png "Collections")
![](https://download.qelectrotech.org/qet/images-features/0070.png "Collections")
...or create your own collection
The embedded element editor is a nice tool to create your own elements (symbols or anything else).
Your own elements are stored in the user collection.
![](https://download.tuxfamily.org/qet/images-features/0080.png "Element editor")
![](https://download.qelectrotech.org/qet/images-features/0080.png "Element editor")
Quickly find what you need
All collections can quickly be searched with the integrated search engine.
Furthermore, the search request can be restricted to the folder of your choice.
![](https://download.tuxfamily.org/qet/images-features/0090.png "Search engine")
![](https://download.qelectrotech.org/qet/images-features/0090.png "Search engine")
Easily draw complex schematics
To add an element on the drawing area, it only needs a drag & drop from the collection panel.
![](https://download.tuxfamily.org/qet/images-features/0102.png "Drag and drop")
![](https://download.qelectrotech.org/qet/images-features/0102.png "Drag and drop")
Elements are automatically connected if they are aligned, or connected from point to point by pulling a conductor with the mouse.
![](https://download.tuxfamily.org/qet/images-features/0105.png "Conductor connections")
![](https://download.qelectrotech.org/qet/images-features/0105.png "Conductor connections")
The path of every conductor can be modified by moving its handles with the mouse.
![](https://download.tuxfamily.org/qet/images-features/0107.png "Conductor handles")
![](https://download.qelectrotech.org/qet/images-features/0107.png "Conductor handles")
And of course, you can accurately zoom with the mouse wheel over the drawing area to catch the smallest details.
Link elements together to create cross references
Several types of element can be linked together to display a cross reference text.
All types of cross references are automatically updated on the fly, you don't need to think about them if you make changes.
![](https://download.tuxfamily.org/qet/images-features/0112.png "Cross ref elements")
![](https://download.qelectrotech.org/qet/images-features/0112.png "Cross ref elements")
To speed up your work, linkable elements are easily searched and shown.
![](https://download.tuxfamily.org/qet/images-features/0115.png "Cross ref search")
![](https://download.qelectrotech.org/qet/images-features/0115.png "Cross ref search")
Export informations to a parts list
Informations of all elements in the project can be exported to a .csv file that can be read and edited by any spreadsheet application.
![](https://download.tuxfamily.org/qet/images-features/0122.png "Element informations")
![](https://download.qelectrotech.org/qet/images-features/0122.png "Element informations")
This way, you can make your own parts list or bill of material using the full power of a spreadsheet program.
![](https://download.tuxfamily.org/qet/images-features/0125.png "Spreadsheet")
![](https://download.qelectrotech.org/qet/images-features/0125.png "Spreadsheet")
Print to pdf and/or export your work to images
Your whole documentation or only selected parts of it can be printed to a real printer or to a pdf file.
@@ -161,7 +165,7 @@ The nomenclature is presented in the form of a configurable table separated into
- Display: the size and position of the table, the margins between text and the table cell, the alignment of the text in the cells and the font. The configuration of the table headers and the table itself are separate.
- Content: the information to display in the table and the order in which it should be displayed.
![](https://download.tuxfamily.org/qet/images_depeche_linuxfr/08/dialogue_nomenclature.png "nomenclature dialogue")
![](https://download.qelectrotech.org/qet/images_depeche_linuxfr/08/dialogue_nomenclature.png "nomenclature dialogue")
In order to speed up the establishment of a nomenclature, it is possible to export / import the display and content configurations separately. This is the "Configuration" part that can be seen in the photos above.
@@ -180,7 +184,7 @@ Finally two buttons are available in the property panel:
- "Apply geometry to all tables linked to this one": applies the three properties mentioned above to all linked tables in order to save time and maintain aesthetic consistency.
And to finish a table
![](https://download.tuxfamily.org/qet/images_depeche_linuxfr/08/tableau.png "table")
![](https://download.qelectrotech.org/qet/images_depeche_linuxfr/08/tableau.png "table")
Summary
@@ -219,7 +223,7 @@ Nowadays, QET is not only used by many individuals, teachers and students but al
If you love QElectroTech, you can help developers to buy new hardware to test
and implement new features. Thanks in advance for your generous donations.
For more information, look at [Paypal](https://www.paypal.com/donate/?token=rqf80cP0Ck1F2jn4Y46G7tIPv9bq7x0crXkwt3GZ6OZYG6ihJYi8lZxmmQ8itsFwMUdd1G&country.x=GB&locale.x=GB)
For more information, look at [Paypal](https://www.paypal.com/donate/?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC&ssrt=1694606609672)

1
SingleApplication Submodule

Submodule SingleApplication added at 8c48163c4d

View File

@@ -1,320 +0,0 @@
Changelog
=========
If by accident I have forgotten to credit someone in the CHANGELOG, email me and I will fix it.
__3.3.4__
---------
* Fix compilation under Qt 6.2+ and stricter Qt compile settings. - _Christoph Cullmann_
__3.3.3__
---------
* Support for Qt 6.3+ - Fixed deprecated `QCryptographicHash::addData()` that will only support `QByteArrayView` going further. - _Moody Liu_
__3.3.2__
---------
* Fixed crash caused by sending a `writeAck` on a removed connection. - _Nicolas Werner_
__3.3.1__
---------
* Added support for _AppImage_ dynamic executable paths. - _Michael Klein_
__3.3.0__
---------
* Fixed message fragmentation issue causing crashes and incorrectly / inconsistently received messages. - _Nils Jeisecke_
__3.2.0__
---------
* Added support for Qt 6 - _Jonas Kvinge_
* Fixed warning in `Qt 5.9` with `min`/`max` functions on Windows - _Nick Korotysh_
* Fix return value of connectToPrimary() when connect is successful - _Jonas Kvinge_
* Fix build issue with MinGW GCC pedantic mode - _Iakov Kirilenko_
* Fixed conversion from `int` to `quint32` and Clang Tidy warnings - _Hennadii Chernyshchyk_
__3.1.5__
---------
* Improved library stability in edge cases and very rapid process initialisation
* Fixed Bug where the shared memory block may have been modified without a lock
* Fixed Bug causing `instanceStarted()` to not get emitted when a second instance
has been started before the primary has initiated it's `QLocalServer`.
__3.1.4__
---------
* Officially supporting and build-testing against Qt 5.15
* Fixed an MSVC C4996 warning that suggests using `strncpy_s`.
_Hennadii Chernyshchyk_
__3.1.3.1__
---------
* CMake build system improvements
* Fixed Clang Tidy warnings
_Hennadii Chernyshchyk_
__3.1.3__
---------
* Improved `CMakeLists.txt`
_Hennadii Chernyshchyk_
__3.1.2__
---------
* Fix a crash when exiting an application on Android and iOS
_Emeric Grange_
__3.1.1a__
----------
* Added currentUser() method that returns the user the current instance is running as.
_Leander Schulten_
__3.1.0a__
----------
* Added primaryUser() method that returns the user the primary instance is running as.
__3.0.19__
----------
* Fixed code warning for depricated functions in Qt 5.10 related to `QTime` and `qrand()`.
_Hennadii Chernyshchyk_
_Anton Filimonov_
_Jonas Kvinge_
__3.0.18__
----------
* Fallback to standard QApplication class on iOS and Android systems where
the library is not supported.
* Added Build CI tests to verify the library builds successfully on Linux, Windows and MacOS across multiple Qt versions.
_Anton Filimonov_
__3.0.17__
----------
* Fixed compilation warning/error caused by `geteuid()` on unix based systems.
_Iakov Kirilenko_
* Added CMake support
_Hennadii Chernyshchyk_
__3.0.16__
----------
* Use geteuid and getpwuid to get username on Unix, fallback to environment variable.
_Jonas Kvinge_
__3.0.15__
----------
* Bug Fix: sendMessage() might return false even though data was actually written.
_Jonas Kvinge_
__3.0.14__
----------
* Fixed uninitialised variables in the `SingleApplicationPrivate` constructor.
__3.0.13a__
----------
* Process socket events asynchronously
* Fix undefined variable error on Windows
_Francis Giraldeau_
__3.0.12a__
----------
* Removed signal handling.
__3.0.11a__
----------
* Fixed bug where the message sent by the second process was not received
correctly when the message is sent immediately following a connection.
_Francis Giraldeau_
* Refactored code and implemented shared memory block consistency checks
via `qChecksum()` (CRC-16).
* Explicit `qWarning` and `qCritical` when the library is unable to initialise
correctly.
__3.0.10__
----------
* Removed C style casts and eliminated all clang warnings. Fixed `instanceId`
reading from only one byte in the message deserialization. Cleaned up
serialization code using `QDataStream`. Changed connection type to use
`quint8 enum` rather than `char`.
* Renamed `SingleAppConnectionType` to `ConnectionType`. Added initialization
values to all `ConnectionType` enum cases.
_Jedidiah Buck McCready_
__3.0.9__
---------
* Added SingleApplicationPrivate::primaryPid() as a solution to allow
bringing the primary window of an application to the foreground on
Windows.
_Eelco van Dam from Peacs BV_
__3.0.8__
---------
* Bug fix - changed QApplication::instance() to QCoreApplication::instance()
_Evgeniy Bazhenov_
__3.0.7a__
----------
* Fixed compilation error with Mingw32 in MXE thanks to Vitaly Tonkacheyev.
* Removed QMutex used for thread safe behaviour. The implementation now uses
QCoreApplication::instance() to get an instance to SingleApplication for
memory deallocation.
__3.0.6a__
----------
* Reverted GetUserName API usage on Windows. Fixed bug with missing library.
* Fixed bug in the Calculator example, preventing it's window to be raised
on Windows.
Special thanks to Charles Gunawan.
__3.0.5a__
----------
* Fixed a memory leak in the SingleApplicationPrivate destructor.
_Sergei Moiseev_
__3.0.4a__
----------
* Fixed shadow and uninitialised variable warnings.
_Paul Walmsley_
__3.0.3a__
----------
* Removed Microsoft Windows specific code for getting username due to
multiple problems and compiler differences on Windows platforms. On
Windows the shared memory block in User mode now includes the user's
home path (which contains the user's username).
* Explicitly getting absolute path of the user's home directory as on Unix
a relative path (`~`) may be returned.
__3.0.2a__
----------
* Fixed bug on Windows when username containing wide characters causes the
library to crash.
_Le Liu_
__3.0.1a__
----------
* Allows the application path and version to be excluded from the server name
hash. The following flags were added for this purpose:
* `SingleApplication::Mode::ExcludeAppVersion`
* `SingleApplication::Mode::ExcludeAppPath`
* Allow a non elevated process to connect to a local server created by an
elevated process run by the same user on Windows
* Fixes a problem with upper case letters in paths on Windows
_Le Liu_
__v3.0a__
---------
* Deprecated secondary instances count.
* Added a sendMessage() method to send a message to the primary instance.
* Added a receivedMessage() signal, emitted when a message is received from a
secondary instance.
* The SingleApplication constructor's third parameter is now a bool
specifying if the current instance should be allowed to run as a secondary
instance if there is already a primary instance.
* The SingleApplication constructor accept a fourth parameter specifying if
the SingleApplication block should be User-wide or System-wide.
* SingleApplication no longer relies on `applicationName` and
`organizationName` to be set. It instead concatenates all of the following
data and computes a `SHA256` hash which is used as the key of the
`QSharedMemory` block and the `QLocalServer`. Since at least
`applicationFilePath` is always present there is no need to explicitly set
any of the following prior to initialising `SingleApplication`.
* `QCoreApplication::applicationName`
* `QCoreApplication::applicationVersion`
* `QCoreApplication::applicationFilePath`
* `QCoreApplication::organizationName`
* `QCoreApplication::organizationDomain`
* User name or home directory path if in User mode
* The primary instance is no longer notified when a secondary instance had
been started by default. A `Mode` flag for this feature exists.
* Added `instanceNumber()` which represents a unique identifier for each
secondary instance started. When called from the primary instance will
return `0`.
__v2.4__
--------
* Stability improvements
* Support for secondary instances.
* The library now recovers safely after the primary process has crashed
and the shared memory had not been deleted.
__v2.3__
--------
* Improved pimpl design and inheritance safety.
_Vladislav Pyatnichenko_
__v2.2__
--------
* The `QAPPLICATION_CLASS` macro can now be defined in the file including the
Single Application header or with a `DEFINES+=` statement in the project file.
__v2.1__
--------
* A race condition can no longer occur when starting two processes nearly
simultaneously.
Fix issue [#3](https://github.com/itay-grudev/SingleApplication/issues/3)
__v2.0__
--------
* SingleApplication is now being passed a reference to `argc` instead of a
copy.
Fix issue [#1](https://github.com/itay-grudev/SingleApplication/issues/1)
* Improved documentation.

View File

@@ -1,50 +0,0 @@
cmake_minimum_required(VERSION 3.12.0)
project(SingleApplication LANGUAGES CXX)
set(CMAKE_AUTOMOC ON)
add_library(${PROJECT_NAME} STATIC
singleapplication.cpp
singleapplication_p.cpp
)
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
if(NOT QT_DEFAULT_MAJOR_VERSION)
set(QT_DEFAULT_MAJOR_VERSION 5 CACHE STRING "Qt version to use (5 or 6), defaults to 5")
endif()
# Find dependencies
set(QT_COMPONENTS Core Network)
set(QT_LIBRARIES Qt${QT_DEFAULT_MAJOR_VERSION}::Core Qt${QT_DEFAULT_MAJOR_VERSION}::Network)
if(QAPPLICATION_CLASS STREQUAL QApplication)
list(APPEND QT_COMPONENTS Widgets)
list(APPEND QT_LIBRARIES Qt${QT_DEFAULT_MAJOR_VERSION}::Widgets)
elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication)
list(APPEND QT_COMPONENTS Gui)
list(APPEND QT_LIBRARIES Qt${QT_DEFAULT_MAJOR_VERSION}::Gui)
else()
set(QAPPLICATION_CLASS QCoreApplication)
endif()
find_package(Qt${QT_DEFAULT_MAJOR_VERSION} COMPONENTS ${QT_COMPONENTS} REQUIRED)
target_link_libraries(${PROJECT_NAME} PUBLIC ${QT_LIBRARIES})
if(WIN32)
target_link_libraries(${PROJECT_NAME} PRIVATE advapi32)
endif()
target_compile_definitions(${PROJECT_NAME} PUBLIC QAPPLICATION_CLASS=${QAPPLICATION_CLASS})
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_definitions(${PROJECT_NAME} PRIVATE
QT_NO_CAST_TO_ASCII
QT_NO_CAST_FROM_ASCII
QT_NO_URL_CAST_FROM_STRING
QT_NO_CAST_FROM_BYTEARRAY
QT_USE_QSTRINGBUILDER
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
QT_NO_KEYWORDS
QT_NO_FOREACH
)

View File

@@ -1,24 +0,0 @@
The MIT License (MIT)
Copyright (c) Itay Grudev 2015 - 2020
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Note: Some of the examples include code not distributed under the terms of the
MIT License.

View File

@@ -1,305 +0,0 @@
SingleApplication
=================
[![CI](https://github.com/itay-grudev/SingleApplication/workflows/CI:%20Build%20Test/badge.svg)](https://github.com/itay-grudev/SingleApplication/actions)
This is a replacement of the QtSingleApplication for `Qt5` and `Qt6`.
Keeps the Primary Instance of your Application and kills each subsequent
instances. It can (if enabled) spawn secondary (non-related to the primary)
instances and can send data to the primary instance from secondary instances.
Usage
-----
The `SingleApplication` class inherits from whatever `Q[Core|Gui]Application`
class you specify via the `QAPPLICATION_CLASS` macro (`QCoreApplication` is the
default). Further usage is similar to the use of the `Q[Core|Gui]Application`
classes.
You can use the library as if you use any other `QCoreApplication` derived
class:
```cpp
#include <QApplication>
#include <SingleApplication.h>
int main( int argc, char* argv[] )
{
SingleApplication app( argc, argv );
return app.exec();
}
```
To include the library files I would recommend that you add it as a git
submodule to your project. Here is how:
```bash
git submodule add https://github.com/itay-grudev/SingleApplication.git singleapplication
```
**Qmake:**
Then include the `singleapplication.pri` file in your `.pro` project file.
```qmake
include(singleapplication/singleapplication.pri)
DEFINES += QAPPLICATION_CLASS=QApplication
```
**CMake:**
Then include the subdirectory in your `CMakeLists.txt` project file.
```cmake
set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication")
add_subdirectory(src/third-party/singleapplication)
target_link_libraries(${PROJECT_NAME} SingleApplication::SingleApplication)
```
The library sets up a `QLocalServer` and a `QSharedMemory` block. The first
instance of your Application is your Primary Instance. It would check if the
shared memory block exists and if not it will start a `QLocalServer` and listen
for connections. Each subsequent instance of your application would check if the
shared memory block exists and if it does, it will connect to the QLocalServer
to notify the primary instance that a new instance had been started, after which
it would terminate with status code `0`. In the Primary Instance
`SingleApplication` would emit the `instanceStarted()` signal upon detecting
that a new instance had been started.
The library uses `stdlib` to terminate the program with the `exit()` function.
Also don't forget to specify which `QCoreApplication` class your app is using if it
is not `QCoreApplication` as in examples above.
The `Instance Started` signal
-----------------------------
The SingleApplication class implements a `instanceStarted()` signal. You can
bind to that signal to raise your application's window when a new instance had
been started, for example.
```cpp
// window is a QWindow instance
QObject::connect(
&app,
&SingleApplication::instanceStarted,
&window,
&QWindow::raise
);
```
Using `SingleApplication::instance()` is a neat way to get the
`SingleApplication` instance for binding to it's signals anywhere in your
program.
__Note:__ On Windows the ability to bring the application windows to the
foreground is restricted. See [Windows specific implementations](Windows.md)
for a workaround and an example implementation.
Secondary Instances
-------------------
If you want to be able to launch additional Secondary Instances (not related to
your Primary Instance) you have to enable that with the third parameter of the
`SingleApplication` constructor. The default is `false` meaning no Secondary
Instances. Here is an example of how you would start a Secondary Instance send
a message with the command line arguments to the primary instance and then shut
down.
```cpp
int main(int argc, char *argv[])
{
SingleApplication app( argc, argv, true );
if( app.isSecondary() ) {
app.sendMessage( app.arguments().join(' ')).toUtf8() );
app.exit( 0 );
}
return app.exec();
}
```
*__Note:__ A secondary instance won't cause the emission of the
`instanceStarted()` signal by default. See `SingleApplication::Mode` for more
details.*
You can check whether your instance is a primary or secondary with the following
methods:
```cpp
app.isPrimary();
// or
app.isSecondary();
```
*__Note:__ If your Primary Instance is terminated a newly launched instance
will replace the Primary one even if the Secondary flag has been set.*
Examples
--------
There are three examples provided in this repository:
* Basic example that prevents a secondary instance from starting [`examples/basic`](https://github.com/itay-grudev/SingleApplication/tree/master/examples/basic)
* An example of a graphical application raising it's parent window [`examples/calculator`](https://github.com/itay-grudev/SingleApplication/tree/master/examples/calculator)
* A console application sending the primary instance it's command line parameters [`examples/sending_arguments`](https://github.com/itay-grudev/SingleApplication/tree/master/examples/sending_arguments)
API
---
### Members
```cpp
SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 100, QString userData = QString() )
```
Depending on whether `allowSecondary` is set, this constructor may terminate
your app if there is already a primary instance running. Additional `Options`
can be specified to set whether the SingleApplication block should work
user-wide or system-wide. Additionally the `Mode::SecondaryNotification` may be
used to notify the primary instance whenever a secondary instance had been
started (disabled by default). `timeout` specifies the maximum time in
milliseconds to wait for blocking operations. Setting `userData` provides additional data that will isolate this instance from other instances that do not have the same (or any) user data set.
*__Note:__ `argc` and `argv` may be changed as Qt removes arguments that it
recognizes.*
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
and the secondary instance.*
*__Note:__ Operating system can restrict the shared memory blocks to the same
user, in which case the User/System modes will have no effect and the block will
be user wide.*
---
```cpp
bool SingleApplication::sendMessage( QByteArray message, int timeout = 100 )
```
Sends `message` to the Primary Instance. Uses `timeout` as a the maximum timeout
in milliseconds for blocking functions. Returns `true` if the message has been sent
successfully. If the message can't be sent or the function timeouts - returns `false`.
---
```cpp
bool SingleApplication::isPrimary()
```
Returns if the instance is the primary instance.
---
```cpp
bool SingleApplication::isSecondary()
```
Returns if the instance is a secondary instance.
---
```cpp
quint32 SingleApplication::instanceId()
```
Returns a unique identifier for the current instance.
---
```cpp
qint64 SingleApplication::primaryPid()
```
Returns the process ID (PID) of the primary instance.
---
```cpp
QString SingleApplication::primaryUser()
```
Returns the username the primary instance is running as.
---
```cpp
QString SingleApplication::currentUser()
```
Returns the username the current instance is running as.
### Signals
```cpp
void SingleApplication::instanceStarted()
```
Triggered whenever a new instance had been started, except for secondary
instances if the `Mode::SecondaryNotification` flag is not specified.
---
```cpp
void SingleApplication::receivedMessage( quint32 instanceId, QByteArray message )
```
Triggered whenever there is a message received from a secondary instance.
---
### Flags
```cpp
enum SingleApplication::Mode
```
* `Mode::User` - The SingleApplication block should apply user wide. This adds
user specific data to the key used for the shared memory and server name.
This is the default functionality.
* `Mode::System` The SingleApplication block applies system-wide.
* `Mode::SecondaryNotification` Whether to trigger `instanceStarted()` even
whenever secondary instances are started.
* `Mode::ExcludeAppPath` Excludes the application path from the server name
(and memory block) hash.
* `Mode::ExcludeAppVersion` Excludes the application version from the server
name (and memory block) hash.
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
and the secondary instance.*
*__Note:__ Operating system can restrict the shared memory blocks to the same
user, in which case the User/System modes will have no effect and the block will
be user wide.*
---
Versioning
----------
Each major version introduces either very significant changes or is not
backwards compatible with the previous version. Minor versions only add
additional features, bug fixes or performance improvements and are backwards
compatible with the previous release. See [`CHANGELOG.md`](CHANGELOG.md) for
more details.
Implementation
--------------
The library is implemented with a QSharedMemory block which is thread safe and
guarantees a race condition will not occur. It also uses a QLocalSocket to
notify the main process that a new instance had been spawned and thus invoke the
`instanceStarted()` signal and for messaging the primary instance.
Additionally the library can recover from being forcefully killed on *nix
systems and will reset the memory block given that there are no other
instances running.
License
-------
This library and it's supporting documentation are released under
`The MIT License (MIT)` with the exception of the Qt calculator examples which
is distributed under the BSD license.

View File

@@ -1 +0,0 @@
#include "singleapplication.h"

View File

@@ -1,46 +0,0 @@
Windows Specific Implementations
================================
Setting the foreground window
-----------------------------
In the `instanceStarted()` example in the `README` we demonstrated how an
application can bring it's primary instance window whenever a second copy
of the application is started.
On Windows the ability to bring the application windows to the foreground is
restricted, see [`AllowSetForegroundWindow()`][AllowSetForegroundWindow] for more
details.
The background process (the primary instance) can bring its windows to the
foreground if it is allowed by the current foreground process (the secondary
instance). To bypass this `SingleApplication` must be initialized with the
`allowSecondary` parameter set to `true` and the `options` parameter must
include `Mode::SecondaryNotification`, See `SingleApplication::Mode` for more
details.
Here is an example:
```cpp
if( app.isSecondary() ) {
// This API requires LIBS += User32.lib to be added to the project
AllowSetForegroundWindow( DWORD( app.primaryPid() ) );
}
if( app.isPrimary() ) {
QObject::connect(
&app,
&SingleApplication::instanceStarted,
this,
&App::instanceStarted
);
}
```
```cpp
void App::instanceStarted() {
QApplication::setActiveWindow( [window/widget to set to the foreground] );
}
```
[AllowSetForegroundWindow]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632668.aspx

View File

@@ -1,12 +0,0 @@
cmake_minimum_required(VERSION 3.7.0)
project(basic LANGUAGES CXX)
# SingleApplication base class
set(QAPPLICATION_CLASS QCoreApplication)
add_subdirectory(../.. SingleApplication)
add_executable(basic main.cpp)
target_link_libraries(${PROJECT_NAME} SingleApplication::SingleApplication)

View File

@@ -1,5 +0,0 @@
# Single Application implementation
include(../../singleapplication.pri)
DEFINES += QAPPLICATION_CLASS=QCoreApplication
SOURCES += main.cpp

View File

@@ -1,10 +0,0 @@
#include <singleapplication.h>
int main(int argc, char *argv[])
{
SingleApplication app( argc, argv );
qWarning() << "Started a new instance";
return app.exec();
}

View File

@@ -1,21 +0,0 @@
cmake_minimum_required(VERSION 3.7.0)
project(calculator LANGUAGES CXX)
set(CMAKE_AUTOMOC ON)
# SingleApplication base class
set(QAPPLICATION_CLASS QApplication)
add_subdirectory(../.. SingleApplication)
find_package(Qt${QT_DEFAULT_MAJOR_VERSION} COMPONENTS Core REQUIRED)
add_executable(${PROJECT_NAME}
button.h
calculator.h
button.cpp
calculator.cpp
main.cpp
)
target_link_libraries(${PROJECT_NAME} SingleApplication::SingleApplication)

View File

@@ -1,73 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** BSD License Usage
** Alternatively, you may use this file under the terms of the BSD license
** as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QtWidgets>
#include "button.h"
//! [0]
Button::Button(const QString &text, QWidget *parent)
: QToolButton(parent)
{
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
setText(text);
}
//! [0]
//! [1]
QSize Button::sizeHint() const
//! [1] //! [2]
{
QSize size = QToolButton::sizeHint();
size.rheight() += 20;
size.rwidth() = qMax(size.width(), size.height());
return size;
}
//! [2]

View File

@@ -1,68 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** BSD License Usage
** Alternatively, you may use this file under the terms of the BSD license
** as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef BUTTON_H
#define BUTTON_H
#include <QToolButton>
//! [0]
class Button : public QToolButton
{
Q_OBJECT
public:
explicit Button(const QString &text, QWidget *parent = 0);
QSize sizeHint() const Q_DECL_OVERRIDE;
};
//! [0]
#endif

View File

@@ -1,406 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** BSD License Usage
** Alternatively, you may use this file under the terms of the BSD license
** as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QtWidgets>
#include <cmath>
#include "button.h"
#include "calculator.h"
//! [0]
Calculator::Calculator(QWidget *parent)
: QWidget(parent)
{
sumInMemory = 0.0;
sumSoFar = 0.0;
factorSoFar = 0.0;
waitingForOperand = true;
//! [0]
//! [1]
display = new QLineEdit("0");
//! [1] //! [2]
display->setReadOnly(true);
display->setAlignment(Qt::AlignRight);
display->setMaxLength(15);
QFont font = display->font();
font.setPointSize(font.pointSize() + 8);
display->setFont(font);
//! [2]
//! [4]
for (int i = 0; i < NumDigitButtons; ++i) {
digitButtons[i] = createButton(QString::number(i), SLOT(digitClicked()));
}
Button *pointButton = createButton(".", SLOT(pointClicked()));
Button *changeSignButton = createButton("\302\261", SLOT(changeSignClicked()));
Button *backspaceButton = createButton("Backspace", SLOT(backspaceClicked()));
Button *clearButton = createButton("Clear", SLOT(clear()));
Button *clearAllButton = createButton("Clear All", SLOT(clearAll()));
Button *clearMemoryButton = createButton("MC", SLOT(clearMemory()));
Button *readMemoryButton = createButton("MR", SLOT(readMemory()));
Button *setMemoryButton = createButton("MS", SLOT(setMemory()));
Button *addToMemoryButton = createButton("M+", SLOT(addToMemory()));
Button *divisionButton = createButton("\303\267", SLOT(multiplicativeOperatorClicked()));
Button *timesButton = createButton("\303\227", SLOT(multiplicativeOperatorClicked()));
Button *minusButton = createButton("-", SLOT(additiveOperatorClicked()));
Button *plusButton = createButton("+", SLOT(additiveOperatorClicked()));
Button *squareRootButton = createButton("Sqrt", SLOT(unaryOperatorClicked()));
Button *powerButton = createButton("x\302\262", SLOT(unaryOperatorClicked()));
Button *reciprocalButton = createButton("1/x", SLOT(unaryOperatorClicked()));
Button *equalButton = createButton("=", SLOT(equalClicked()));
//! [4]
//! [5]
QGridLayout *mainLayout = new QGridLayout;
//! [5] //! [6]
mainLayout->setSizeConstraint(QLayout::SetFixedSize);
mainLayout->addWidget(display, 0, 0, 1, 6);
mainLayout->addWidget(backspaceButton, 1, 0, 1, 2);
mainLayout->addWidget(clearButton, 1, 2, 1, 2);
mainLayout->addWidget(clearAllButton, 1, 4, 1, 2);
mainLayout->addWidget(clearMemoryButton, 2, 0);
mainLayout->addWidget(readMemoryButton, 3, 0);
mainLayout->addWidget(setMemoryButton, 4, 0);
mainLayout->addWidget(addToMemoryButton, 5, 0);
for (int i = 1; i < NumDigitButtons; ++i) {
int row = ((9 - i) / 3) + 2;
int column = ((i - 1) % 3) + 1;
mainLayout->addWidget(digitButtons[i], row, column);
}
mainLayout->addWidget(digitButtons[0], 5, 1);
mainLayout->addWidget(pointButton, 5, 2);
mainLayout->addWidget(changeSignButton, 5, 3);
mainLayout->addWidget(divisionButton, 2, 4);
mainLayout->addWidget(timesButton, 3, 4);
mainLayout->addWidget(minusButton, 4, 4);
mainLayout->addWidget(plusButton, 5, 4);
mainLayout->addWidget(squareRootButton, 2, 5);
mainLayout->addWidget(powerButton, 3, 5);
mainLayout->addWidget(reciprocalButton, 4, 5);
mainLayout->addWidget(equalButton, 5, 5);
setLayout(mainLayout);
setWindowTitle("Calculator");
}
//! [6]
//! [7]
void Calculator::digitClicked()
{
Button *clickedButton = qobject_cast<Button *>(sender());
int digitValue = clickedButton->text().toInt();
if (display->text() == "0" && digitValue == 0.0)
return;
if (waitingForOperand) {
display->clear();
waitingForOperand = false;
}
display->setText(display->text() + QString::number(digitValue));
}
//! [7]
//! [8]
void Calculator::unaryOperatorClicked()
//! [8] //! [9]
{
Button *clickedButton = qobject_cast<Button *>(sender());
QString clickedOperator = clickedButton->text();
double operand = display->text().toDouble();
double result = 0.0;
if (clickedOperator == "Sqrt") {
if (operand < 0.0) {
abortOperation();
return;
}
result = std::sqrt(operand);
} else if (clickedOperator == "x\302\262") {
result = std::pow(operand, 2.0);
} else if (clickedOperator == "1/x") {
if (operand == 0.0) {
abortOperation();
return;
}
result = 1.0 / operand;
}
display->setText(QString::number(result));
waitingForOperand = true;
}
//! [9]
//! [10]
void Calculator::additiveOperatorClicked()
//! [10] //! [11]
{
Button *clickedButton = qobject_cast<Button *>(sender());
QString clickedOperator = clickedButton->text();
double operand = display->text().toDouble();
//! [11] //! [12]
if (!pendingMultiplicativeOperator.isEmpty()) {
//! [12] //! [13]
if (!calculate(operand, pendingMultiplicativeOperator)) {
abortOperation();
return;
}
display->setText(QString::number(factorSoFar));
operand = factorSoFar;
factorSoFar = 0.0;
pendingMultiplicativeOperator.clear();
}
//! [13] //! [14]
if (!pendingAdditiveOperator.isEmpty()) {
//! [14] //! [15]
if (!calculate(operand, pendingAdditiveOperator)) {
abortOperation();
return;
}
display->setText(QString::number(sumSoFar));
} else {
sumSoFar = operand;
}
//! [15] //! [16]
pendingAdditiveOperator = clickedOperator;
//! [16] //! [17]
waitingForOperand = true;
}
//! [17]
//! [18]
void Calculator::multiplicativeOperatorClicked()
{
Button *clickedButton = qobject_cast<Button *>(sender());
QString clickedOperator = clickedButton->text();
double operand = display->text().toDouble();
if (!pendingMultiplicativeOperator.isEmpty()) {
if (!calculate(operand, pendingMultiplicativeOperator)) {
abortOperation();
return;
}
display->setText(QString::number(factorSoFar));
} else {
factorSoFar = operand;
}
pendingMultiplicativeOperator = clickedOperator;
waitingForOperand = true;
}
//! [18]
//! [20]
void Calculator::equalClicked()
{
double operand = display->text().toDouble();
if (!pendingMultiplicativeOperator.isEmpty()) {
if (!calculate(operand, pendingMultiplicativeOperator)) {
abortOperation();
return;
}
operand = factorSoFar;
factorSoFar = 0.0;
pendingMultiplicativeOperator.clear();
}
if (!pendingAdditiveOperator.isEmpty()) {
if (!calculate(operand, pendingAdditiveOperator)) {
abortOperation();
return;
}
pendingAdditiveOperator.clear();
} else {
sumSoFar = operand;
}
display->setText(QString::number(sumSoFar));
sumSoFar = 0.0;
waitingForOperand = true;
}
//! [20]
//! [22]
void Calculator::pointClicked()
{
if (waitingForOperand)
display->setText("0");
if (!display->text().contains('.'))
display->setText(display->text() + ".");
waitingForOperand = false;
}
//! [22]
//! [24]
void Calculator::changeSignClicked()
{
QString text = display->text();
double value = text.toDouble();
if (value > 0.0) {
text.prepend("-");
} else if (value < 0.0) {
text.remove(0, 1);
}
display->setText(text);
}
//! [24]
//! [26]
void Calculator::backspaceClicked()
{
if (waitingForOperand)
return;
QString text = display->text();
text.chop(1);
if (text.isEmpty()) {
text = "0";
waitingForOperand = true;
}
display->setText(text);
}
//! [26]
//! [28]
void Calculator::clear()
{
if (waitingForOperand)
return;
display->setText("0");
waitingForOperand = true;
}
//! [28]
//! [30]
void Calculator::clearAll()
{
sumSoFar = 0.0;
factorSoFar = 0.0;
pendingAdditiveOperator.clear();
pendingMultiplicativeOperator.clear();
display->setText("0");
waitingForOperand = true;
}
//! [30]
//! [32]
void Calculator::clearMemory()
{
sumInMemory = 0.0;
}
void Calculator::readMemory()
{
display->setText(QString::number(sumInMemory));
waitingForOperand = true;
}
void Calculator::setMemory()
{
equalClicked();
sumInMemory = display->text().toDouble();
}
void Calculator::addToMemory()
{
equalClicked();
sumInMemory += display->text().toDouble();
}
//! [32]
//! [34]
Button *Calculator::createButton(const QString &text, const char *member)
{
Button *button = new Button(text);
connect(button, SIGNAL(clicked()), this, member);
return button;
}
//! [34]
//! [36]
void Calculator::abortOperation()
{
clearAll();
display->setText("####");
}
//! [36]
//! [38]
bool Calculator::calculate(double rightOperand, const QString &pendingOperator)
{
if (pendingOperator == "+") {
sumSoFar += rightOperand;
} else if (pendingOperator == "-") {
sumSoFar -= rightOperand;
} else if (pendingOperator == "\303\227") {
factorSoFar *= rightOperand;
} else if (pendingOperator == "\303\267") {
if (rightOperand == 0.0)
return false;
factorSoFar /= rightOperand;
}
return true;
}
//! [38]

View File

@@ -1,117 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** BSD License Usage
** Alternatively, you may use this file under the terms of the BSD license
** as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef CALCULATOR_H
#define CALCULATOR_H
#include <QWidget>
QT_BEGIN_NAMESPACE
class QLineEdit;
QT_END_NAMESPACE
class Button;
//! [0]
class Calculator : public QWidget
{
Q_OBJECT
public:
Calculator(QWidget *parent = 0);
private slots:
void digitClicked();
void unaryOperatorClicked();
void additiveOperatorClicked();
void multiplicativeOperatorClicked();
void equalClicked();
void pointClicked();
void changeSignClicked();
void backspaceClicked();
void clear();
void clearAll();
void clearMemory();
void readMemory();
void setMemory();
void addToMemory();
//! [0]
//! [1]
private:
//! [1] //! [2]
Button *createButton(const QString &text, const char *member);
void abortOperation();
bool calculate(double rightOperand, const QString &pendingOperator);
//! [2]
//! [3]
double sumInMemory;
//! [3] //! [4]
double sumSoFar;
//! [4] //! [5]
double factorSoFar;
//! [5] //! [6]
QString pendingAdditiveOperator;
//! [6] //! [7]
QString pendingMultiplicativeOperator;
//! [7] //! [8]
bool waitingForOperand;
//! [8]
//! [9]
QLineEdit *display;
//! [9] //! [10]
enum { NumDigitButtons = 10 };
Button *digitButtons[NumDigitButtons];
};
//! [10]
#endif

View File

@@ -1,11 +0,0 @@
QT += widgets
HEADERS = button.h \
calculator.h
SOURCES = button.cpp \
calculator.cpp \
main.cpp
# Single Application implementation
include(../../singleapplication.pri)
DEFINES += QAPPLICATION_CLASS=QApplication

View File

@@ -1,71 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** BSD License Usage
** Alternatively, you may use this file under the terms of the BSD license
** as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of The Qt Company Ltd nor the names of its
** contributors may be used to endorse or promote products derived
** from this software without specific prior written permission.
**
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QApplication>
#include <singleapplication.h>
#include "calculator.h"
int main(int argc, char *argv[])
{
SingleApplication app(argc, argv);
Calculator calc;
QObject::connect( &app, &SingleApplication::instanceStarted, [ &calc ]() {
calc.raise();
calc.activateWindow();
});
calc.show();
return app.exec();
}

View File

@@ -1,20 +0,0 @@
cmake_minimum_required(VERSION 3.7.0)
project(sending_arguments LANGUAGES CXX)
set(CMAKE_AUTOMOC ON)
# SingleApplication base class
set(QAPPLICATION_CLASS QCoreApplication)
add_subdirectory(../.. SingleApplication)
find_package(Qt${QT_DEFAULT_MAJOR_VERSION} COMPONENTS Core REQUIRED)
add_executable(${PROJECT_NAME}
main.cpp
messagereceiver.cpp
messagereceiver.h
main.cpp
)
target_link_libraries(${PROJECT_NAME} SingleApplication::SingleApplication)

View File

@@ -1,28 +0,0 @@
#include <singleapplication.h>
#include "messagereceiver.h"
int main(int argc, char *argv[])
{
// Allow secondary instances
SingleApplication app( argc, argv, true );
MessageReceiver msgReceiver;
// If this is a secondary instance
if( app.isSecondary() ) {
app.sendMessage( app.arguments().join(' ').toUtf8() );
qDebug() << "App already running.";
qDebug() << "Primary instance PID: " << app.primaryPid();
qDebug() << "Primary instance user: " << app.primaryUser();
return 0;
} else {
QObject::connect(
&app,
&SingleApplication::receivedMessage,
&msgReceiver,
&MessageReceiver::receivedMessage
);
}
return app.exec();
}

View File

@@ -1,12 +0,0 @@
#include <QDebug>
#include "messagereceiver.h"
MessageReceiver::MessageReceiver(QObject *parent) : QObject(parent)
{
}
void MessageReceiver::receivedMessage(int instanceId, QByteArray message)
{
qDebug() << "Received message from instance: " << instanceId;
qDebug() << "Message Text: " << message;
}

View File

@@ -1,15 +0,0 @@
#ifndef MESSAGERECEIVER_H
#define MESSAGERECEIVER_H
#include <QObject>
class MessageReceiver : public QObject
{
Q_OBJECT
public:
explicit MessageReceiver(QObject *parent = 0);
public slots:
void receivedMessage( int instanceId, QByteArray message );
};
#endif // MESSAGERECEIVER_H

View File

@@ -1,9 +0,0 @@
# Single Application implementation
include(../../singleapplication.pri)
DEFINES += QAPPLICATION_CLASS=QCoreApplication
SOURCES += main.cpp \
messagereceiver.cpp
HEADERS += \
messagereceiver.h

View File

@@ -1,271 +0,0 @@
// The MIT License (MIT)
//
// Copyright (c) Itay Grudev 2015 - 2020
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#include <QtCore/QElapsedTimer>
#include <QtCore/QByteArray>
#include <QtCore/QSharedMemory>
#include "singleapplication.h"
#include "singleapplication_p.h"
/**
* @brief Constructor. Checks and fires up LocalServer or closes the program
* if another instance already exists
* @param argc
* @param argv
* @param allowSecondary Whether to enable secondary instance support
* @param options Optional flags to toggle specific behaviour
* @param timeout Maximum time blocking functions are allowed during app load
*/
SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary, Options options, int timeout, const QString &userData )
: app_t( argc, argv ), d_ptr( new SingleApplicationPrivate( this ) )
{
Q_D( SingleApplication );
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
// On Android and iOS since the library is not supported fallback to
// standard QApplication behaviour by simply returning at this point.
qWarning() << "SingleApplication is not supported on Android and iOS systems.";
return;
#endif
// Store the current mode of the program
d->options = options;
// Add any unique user data
if ( ! userData.isEmpty() )
d->addAppData( userData );
// Generating an application ID used for identifying the shared memory
// block and QLocalServer
d->genBlockServerName();
// To mitigate QSharedMemory issues with large amount of processes
// attempting to attach at the same time
SingleApplicationPrivate::randomSleep();
#ifdef Q_OS_UNIX
// By explicitly attaching it and then deleting it we make sure that the
// memory is deleted even after the process has crashed on Unix.
d->memory = new QSharedMemory( d->blockServerName );
d->memory->attach();
delete d->memory;
#endif
// Guarantee thread safe behaviour with a shared memory block.
d->memory = new QSharedMemory( d->blockServerName );
// Create a shared memory block
if( d->memory->create( sizeof( InstancesInfo ) )){
// Initialize the shared memory block
if( ! d->memory->lock() ){
qCritical() << "SingleApplication: Unable to lock memory block after create.";
abortSafely();
}
d->initializeMemoryBlock();
} else {
if( d->memory->error() == QSharedMemory::AlreadyExists ){
// Attempt to attach to the memory segment
if( ! d->memory->attach() ){
qCritical() << "SingleApplication: Unable to attach to shared memory block.";
abortSafely();
}
if( ! d->memory->lock() ){
qCritical() << "SingleApplication: Unable to lock memory block after attach.";
abortSafely();
}
} else {
qCritical() << "SingleApplication: Unable to create block.";
abortSafely();
}
}
auto *inst = static_cast<InstancesInfo*>( d->memory->data() );
QElapsedTimer time;
time.start();
// Make sure the shared memory block is initialised and in consistent state
while( true ){
// If the shared memory block's checksum is valid continue
if( d->blockChecksum() == inst->checksum ) break;
// If more than 5s have elapsed, assume the primary instance crashed and
// assume it's position
if( time.elapsed() > 5000 ){
qWarning() << "SingleApplication: Shared memory block has been in an inconsistent state from more than 5s. Assuming primary instance failure.";
d->initializeMemoryBlock();
}
// Otherwise wait for a random period and try again. The random sleep here
// limits the probability of a collision between two racing apps and
// allows the app to initialise faster
if( ! d->memory->unlock() ){
qDebug() << "SingleApplication: Unable to unlock memory for random wait.";
qDebug() << d->memory->errorString();
}
SingleApplicationPrivate::randomSleep();
if( ! d->memory->lock() ){
qCritical() << "SingleApplication: Unable to lock memory after random wait.";
abortSafely();
}
}
if( inst->primary == false ){
d->startPrimary();
if( ! d->memory->unlock() ){
qDebug() << "SingleApplication: Unable to unlock memory after primary start.";
qDebug() << d->memory->errorString();
}
return;
}
// Check if another instance can be started
if( allowSecondary ){
d->startSecondary();
if( d->options & Mode::SecondaryNotification ){
d->connectToPrimary( timeout, SingleApplicationPrivate::SecondaryInstance );
}
if( ! d->memory->unlock() ){
qDebug() << "SingleApplication: Unable to unlock memory after secondary start.";
qDebug() << d->memory->errorString();
}
return;
}
if( ! d->memory->unlock() ){
qDebug() << "SingleApplication: Unable to unlock memory at end of execution.";
qDebug() << d->memory->errorString();
}
d->connectToPrimary( timeout, SingleApplicationPrivate::NewInstance );
delete d;
::exit( EXIT_SUCCESS );
}
SingleApplication::~SingleApplication()
{
Q_D( SingleApplication );
delete d;
}
/**
* Checks if the current application instance is primary.
* @return Returns true if the instance is primary, false otherwise.
*/
bool SingleApplication::isPrimary() const
{
Q_D( const SingleApplication );
return d->server != nullptr;
}
/**
* Checks if the current application instance is secondary.
* @return Returns true if the instance is secondary, false otherwise.
*/
bool SingleApplication::isSecondary() const
{
Q_D( const SingleApplication );
return d->server == nullptr;
}
/**
* Allows you to identify an instance by returning unique consecutive instance
* ids. It is reset when the first (primary) instance of your app starts and
* only incremented afterwards.
* @return Returns a unique instance id.
*/
quint32 SingleApplication::instanceId() const
{
Q_D( const SingleApplication );
return d->instanceNumber;
}
/**
* Returns the OS PID (Process Identifier) of the process running the primary
* instance. Especially useful when SingleApplication is coupled with OS.
* specific APIs.
* @return Returns the primary instance PID.
*/
qint64 SingleApplication::primaryPid() const
{
Q_D( const SingleApplication );
return d->primaryPid();
}
/**
* Returns the username the primary instance is running as.
* @return Returns the username the primary instance is running as.
*/
QString SingleApplication::primaryUser() const
{
Q_D( const SingleApplication );
return d->primaryUser();
}
/**
* Returns the username the current instance is running as.
* @return Returns the username the current instance is running as.
*/
QString SingleApplication::currentUser() const
{
return SingleApplicationPrivate::getUsername();
}
/**
* Sends message to the Primary Instance.
* @param message The message to send.
* @param timeout the maximum timeout in milliseconds for blocking functions.
* @return true if the message was sent successfully, false otherwise.
*/
bool SingleApplication::sendMessage( const QByteArray &message, int timeout )
{
Q_D( SingleApplication );
// Nobody to connect to
if( isPrimary() ) return false;
// Make sure the socket is connected
if( ! d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect ) )
return false;
return d->writeConfirmedMessage( timeout, message );
}
/**
* Cleans up the shared memory block and exits with a failure.
* This function halts program execution.
*/
void SingleApplication::abortSafely()
{
Q_D( SingleApplication );
qCritical() << "SingleApplication: " << d->memory->error() << d->memory->errorString();
delete d;
::exit( EXIT_FAILURE );
}
QStringList SingleApplication::userData() const
{
Q_D( const SingleApplication );
return d->appData();
}

View File

@@ -1,154 +0,0 @@
// The MIT License (MIT)
//
// Copyright (c) Itay Grudev 2015 - 2018
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
#ifndef SINGLE_APPLICATION_H
#define SINGLE_APPLICATION_H
#include <QtCore/QtGlobal>
#include <QtNetwork/QLocalSocket>
#ifndef QAPPLICATION_CLASS
#define QAPPLICATION_CLASS QCoreApplication
#endif
#include QT_STRINGIFY(QAPPLICATION_CLASS)
class SingleApplicationPrivate;
/**
* @brief The SingleApplication class handles multiple instances of the same
* Application
* @see QCoreApplication
*/
class SingleApplication : public QAPPLICATION_CLASS
{
Q_OBJECT
using app_t = QAPPLICATION_CLASS;
public:
/**
* @brief Mode of operation of SingleApplication.
* Whether the block should be user-wide or system-wide and whether the
* primary instance should be notified when a secondary instance had been
* started.
* @note Operating system can restrict the shared memory blocks to the same
* user, in which case the User/System modes will have no effect and the
* block will be user wide.
* @enum
*/
enum Mode {
User = 1 << 0,
System = 1 << 1,
SecondaryNotification = 1 << 2,
ExcludeAppVersion = 1 << 3,
ExcludeAppPath = 1 << 4
};
Q_DECLARE_FLAGS(Options, Mode)
/**
* @brief Intitializes a SingleApplication instance with argc command line
* arguments in argv
* @arg {int &} argc - Number of arguments in argv
* @arg {const char *[]} argv - Supplied command line arguments
* @arg {bool} allowSecondary - Whether to start the instance as secondary
* if there is already a primary instance.
* @arg {Mode} mode - Whether for the SingleApplication block to be applied
* User wide or System wide.
* @arg {int} timeout - Timeout to wait in milliseconds.
* @note argc and argv may be changed as Qt removes arguments that it
* recognizes
* @note Mode::SecondaryNotification only works if set on both the primary
* instance and the secondary instance.
* @note The timeout is just a hint for the maximum time of blocking
* operations. It does not guarantee that the SingleApplication
* initialisation will be completed in given time, though is a good hint.
* Usually 4*timeout would be the worst case (fail) scenario.
* @see See the corresponding QAPPLICATION_CLASS constructor for reference
*/
explicit SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 1000, const QString &userData = {} );
~SingleApplication() override;
/**
* @brief Returns if the instance is the primary instance
* @returns {bool}
*/
bool isPrimary() const;
/**
* @brief Returns if the instance is a secondary instance
* @returns {bool}
*/
bool isSecondary() const;
/**
* @brief Returns a unique identifier for the current instance
* @returns {qint32}
*/
quint32 instanceId() const;
/**
* @brief Returns the process ID (PID) of the primary instance
* @returns {qint64}
*/
qint64 primaryPid() const;
/**
* @brief Returns the username of the user running the primary instance
* @returns {QString}
*/
QString primaryUser() const;
/**
* @brief Returns the username of the current user
* @returns {QString}
*/
QString currentUser() const;
/**
* @brief Sends a message to the primary instance. Returns true on success.
* @param {int} timeout - Timeout for connecting
* @returns {bool}
* @note sendMessage() will return false if invoked from the primary
* instance.
*/
bool sendMessage( const QByteArray &message, int timeout = 100 );
/**
* @brief Get the set user data.
* @returns {QStringList}
*/
QStringList userData() const;
Q_SIGNALS:
void instanceStarted();
void receivedMessage( quint32 instanceId, QByteArray message );
private:
SingleApplicationPrivate *d_ptr;
Q_DECLARE_PRIVATE(SingleApplication)
void abortSafely();
};
Q_DECLARE_OPERATORS_FOR_FLAGS(SingleApplication::Options)
#endif // SINGLE_APPLICATION_H

View File

@@ -1,20 +0,0 @@
QT += core network
CONFIG += c++11
HEADERS += $$PWD/SingleApplication \
$$PWD/singleapplication.h \
$$PWD/singleapplication_p.h
SOURCES += $$PWD/singleapplication.cpp \
$$PWD/singleapplication_p.cpp
INCLUDEPATH += $$PWD
win32 {
msvc:LIBS += Advapi32.lib
gcc:LIBS += -ladvapi32
}
DISTFILES += \
$$PWD/README.md \
$$PWD/CHANGELOG.md \
$$PWD/Windows.md

View File

@@ -1,544 +0,0 @@
// The MIT License (MIT)
//
// Copyright (c) Itay Grudev 2015 - 2020
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
// W A R N I N G !!!
// -----------------
//
// This file is not part of the SingleApplication API. It is used purely as an
// implementation detail. This header file may change from version to
// version without notice, or may even be removed.
//
#include <cstdlib>
#include <cstddef>
#include <QtCore/QDir>
#include <QtCore/QThread>
#include <QtCore/QByteArray>
#include <QtCore/QDataStream>
#include <QtCore/QElapsedTimer>
#include <QtCore/QCryptographicHash>
#include <QtNetwork/QLocalServer>
#include <QtNetwork/QLocalSocket>
#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
#include <QtCore/QRandomGenerator>
#else
#include <QtCore/QDateTime>
#endif
#include "singleapplication.h"
#include "singleapplication_p.h"
#ifdef Q_OS_UNIX
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#endif
#ifdef Q_OS_WIN
#ifndef NOMINMAX
#define NOMINMAX 1
#endif
#include <windows.h>
#include <lmcons.h>
#endif
SingleApplicationPrivate::SingleApplicationPrivate( SingleApplication *q_ptr )
: q_ptr( q_ptr )
{
server = nullptr;
socket = nullptr;
memory = nullptr;
instanceNumber = 0;
}
SingleApplicationPrivate::~SingleApplicationPrivate()
{
if( socket != nullptr ){
socket->close();
delete socket;
}
if( memory != nullptr ){
memory->lock();
auto *inst = static_cast<InstancesInfo*>(memory->data());
if( server != nullptr ){
server->close();
delete server;
inst->primary = false;
inst->primaryPid = -1;
inst->primaryUser[0] = '\0';
inst->checksum = blockChecksum();
}
memory->unlock();
delete memory;
}
}
QString SingleApplicationPrivate::getUsername()
{
#ifdef Q_OS_WIN
wchar_t username[UNLEN + 1];
// Specifies size of the buffer on input
DWORD usernameLength = UNLEN + 1;
if( GetUserNameW( username, &usernameLength ) )
return QString::fromWCharArray( username );
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0)
return QString::fromLocal8Bit( qgetenv( "USERNAME" ) );
#else
return qEnvironmentVariable( "USERNAME" );
#endif
#endif
#ifdef Q_OS_UNIX
QString username;
uid_t uid = geteuid();
struct passwd *pw = getpwuid( uid );
if( pw )
username = QString::fromLocal8Bit( pw->pw_name );
if ( username.isEmpty() ){
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0)
username = QString::fromLocal8Bit( qgetenv( "USER" ) );
#else
username = qEnvironmentVariable( "USER" );
#endif
}
return username;
#endif
}
void SingleApplicationPrivate::genBlockServerName()
{
QCryptographicHash appData( QCryptographicHash::Sha256 );
#if QT_VERSION < QT_VERSION_CHECK(6, 3, 0)
appData.addData( "SingleApplication", 17 );
#else
appData.addData( QByteArrayView{"SingleApplication"} );
#endif
appData.addData( SingleApplication::app_t::applicationName().toUtf8() );
appData.addData( SingleApplication::app_t::organizationName().toUtf8() );
appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() );
if ( ! appDataList.isEmpty() )
appData.addData( appDataList.join(QString()).toUtf8() );
if( ! (options & SingleApplication::Mode::ExcludeAppVersion) ){
appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() );
}
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ){
#if defined(Q_OS_WIN)
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
#elif defined(Q_OS_LINUX)
// If the application is running as an AppImage then the APPIMAGE env var should be used
// instead of applicationPath() as each instance is launched with its own executable path
const QByteArray appImagePath = qgetenv( "APPIMAGE" );
if( appImagePath.isEmpty() ){ // Not running as AppImage: use path to executable file
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
} else { // Running as AppImage: Use absolute path to AppImage file
appData.addData( appImagePath );
};
#else
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
#endif
}
// User level block requires a user specific data in the hash
if( options & SingleApplication::Mode::User ){
appData.addData( getUsername().toUtf8() );
}
// Replace the backslash in RFC 2045 Base64 [a-zA-Z0-9+/=] to comply with
// server naming requirements.
blockServerName = QString::fromUtf8(appData.result().toBase64().replace("/", "_"));
}
void SingleApplicationPrivate::initializeMemoryBlock() const
{
auto *inst = static_cast<InstancesInfo*>( memory->data() );
inst->primary = false;
inst->secondary = 0;
inst->primaryPid = -1;
inst->primaryUser[0] = '\0';
inst->checksum = blockChecksum();
}
void SingleApplicationPrivate::startPrimary()
{
// Reset the number of connections
auto *inst = static_cast <InstancesInfo*>( memory->data() );
inst->primary = true;
inst->primaryPid = QCoreApplication::applicationPid();
qstrncpy( inst->primaryUser, getUsername().toUtf8().data(), sizeof(inst->primaryUser) );
inst->checksum = blockChecksum();
instanceNumber = 0;
// Successful creation means that no main process exists
// So we start a QLocalServer to listen for connections
QLocalServer::removeServer( blockServerName );
server = new QLocalServer();
// Restrict access to the socket according to the
// SingleApplication::Mode::User flag on User level or no restrictions
if( options & SingleApplication::Mode::User ){
server->setSocketOptions( QLocalServer::UserAccessOption );
} else {
server->setSocketOptions( QLocalServer::WorldAccessOption );
}
server->listen( blockServerName );
QObject::connect(
server,
&QLocalServer::newConnection,
this,
&SingleApplicationPrivate::slotConnectionEstablished
);
}
void SingleApplicationPrivate::startSecondary()
{
auto *inst = static_cast <InstancesInfo*>( memory->data() );
inst->secondary += 1;
inst->checksum = blockChecksum();
instanceNumber = inst->secondary;
}
bool SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType connectionType )
{
QElapsedTimer time;
time.start();
// Connect to the Local Server of the Primary Instance if not already
// connected.
if( socket == nullptr ){
socket = new QLocalSocket();
}
if( socket->state() == QLocalSocket::ConnectedState ) return true;
if( socket->state() != QLocalSocket::ConnectedState ){
while( true ){
randomSleep();
if( socket->state() != QLocalSocket::ConnectingState )
socket->connectToServer( blockServerName );
if( socket->state() == QLocalSocket::ConnectingState ){
socket->waitForConnected( static_cast<int>(msecs - time.elapsed()) );
}
// If connected break out of the loop
if( socket->state() == QLocalSocket::ConnectedState ) break;
// If elapsed time since start is longer than the method timeout return
if( time.elapsed() >= msecs ) return false;
}
}
// Initialisation message according to the SingleApplication protocol
QByteArray initMsg;
QDataStream writeStream(&initMsg, QIODevice::WriteOnly);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
writeStream.setVersion(QDataStream::Qt_5_6);
#endif
writeStream << blockServerName.toLatin1();
writeStream << static_cast<quint8>(connectionType);
writeStream << instanceNumber;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
quint16 checksum = qChecksum(QByteArray(initMsg.constData(), static_cast<quint32>(initMsg.length())));
#else
quint16 checksum = qChecksum(initMsg.constData(), static_cast<quint32>(initMsg.length()));
#endif
writeStream << checksum;
return writeConfirmedMessage( static_cast<int>(msecs - time.elapsed()), initMsg );
}
void SingleApplicationPrivate::writeAck( QLocalSocket *sock ) {
sock->putChar('\n');
}
bool SingleApplicationPrivate::writeConfirmedMessage (int msecs, const QByteArray &msg)
{
QElapsedTimer time;
time.start();
// Frame 1: The header indicates the message length that follows
QByteArray header;
QDataStream headerStream(&header, QIODevice::WriteOnly);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
headerStream.setVersion(QDataStream::Qt_5_6);
#endif
headerStream << static_cast <quint64>( msg.length() );
if( ! writeConfirmedFrame( static_cast<int>(msecs - time.elapsed()), header ))
return false;
// Frame 2: The message
return writeConfirmedFrame( static_cast<int>(msecs - time.elapsed()), msg );
}
bool SingleApplicationPrivate::writeConfirmedFrame( int msecs, const QByteArray &msg )
{
socket->write( msg );
socket->flush();
bool result = socket->waitForReadyRead( msecs ); // await ack byte
if (result) {
socket->read( 1 );
return true;
}
return false;
}
quint16 SingleApplicationPrivate::blockChecksum() const
{
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
quint16 checksum = qChecksum(QByteArray(static_cast<const char*>(memory->constData()), offsetof(InstancesInfo, checksum)));
#else
quint16 checksum = qChecksum(static_cast<const char*>(memory->constData()), offsetof(InstancesInfo, checksum));
#endif
return checksum;
}
qint64 SingleApplicationPrivate::primaryPid() const
{
qint64 pid;
memory->lock();
auto *inst = static_cast<InstancesInfo*>( memory->data() );
pid = inst->primaryPid;
memory->unlock();
return pid;
}
QString SingleApplicationPrivate::primaryUser() const
{
QByteArray username;
memory->lock();
auto *inst = static_cast<InstancesInfo*>( memory->data() );
username = inst->primaryUser;
memory->unlock();
return QString::fromUtf8( username );
}
/**
* @brief Executed when a connection has been made to the LocalServer
*/
void SingleApplicationPrivate::slotConnectionEstablished()
{
QLocalSocket *nextConnSocket = server->nextPendingConnection();
connectionMap.insert(nextConnSocket, ConnectionInfo());
QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose, this,
[nextConnSocket, this](){
auto &info = connectionMap[nextConnSocket];
this->slotClientConnectionClosed( nextConnSocket, info.instanceId );
}
);
QObject::connect(nextConnSocket, &QLocalSocket::disconnected, nextConnSocket, &QLocalSocket::deleteLater);
QObject::connect(nextConnSocket, &QLocalSocket::destroyed, this,
[nextConnSocket, this](){
connectionMap.remove(nextConnSocket);
}
);
QObject::connect(nextConnSocket, &QLocalSocket::readyRead, this,
[nextConnSocket, this](){
auto &info = connectionMap[nextConnSocket];
switch(info.stage){
case StageInitHeader:
readMessageHeader( nextConnSocket, StageInitBody );
break;
case StageInitBody:
readInitMessageBody(nextConnSocket);
break;
case StageConnectedHeader:
readMessageHeader( nextConnSocket, StageConnectedBody );
break;
case StageConnectedBody:
this->slotDataAvailable( nextConnSocket, info.instanceId );
break;
default:
break;
};
}
);
}
void SingleApplicationPrivate::readMessageHeader( QLocalSocket *sock, SingleApplicationPrivate::ConnectionStage nextStage )
{
if (!connectionMap.contains( sock )){
return;
}
if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ){
return;
}
QDataStream headerStream( sock );
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
headerStream.setVersion( QDataStream::Qt_5_6 );
#endif
// Read the header to know the message length
quint64 msgLen = 0;
headerStream >> msgLen;
ConnectionInfo &info = connectionMap[sock];
info.stage = nextStage;
info.msgLen = msgLen;
writeAck( sock );
}
bool SingleApplicationPrivate::isFrameComplete( QLocalSocket *sock )
{
if (!connectionMap.contains( sock )){
return false;
}
ConnectionInfo &info = connectionMap[sock];
if( sock->bytesAvailable() < ( qint64 )info.msgLen ){
return false;
}
return true;
}
void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
{
Q_Q(SingleApplication);
if( !isFrameComplete( sock ) )
return;
// Read the message body
QByteArray msgBytes = sock->readAll();
QDataStream readStream(msgBytes);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
readStream.setVersion( QDataStream::Qt_5_6 );
#endif
// server name
QByteArray latin1Name;
readStream >> latin1Name;
// connection type
ConnectionType connectionType = InvalidConnection;
quint8 connTypeVal = InvalidConnection;
readStream >> connTypeVal;
connectionType = static_cast <ConnectionType>( connTypeVal );
// instance id
quint32 instanceId = 0;
readStream >> instanceId;
// checksum
quint16 msgChecksum = 0;
readStream >> msgChecksum;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
const quint16 actualChecksum = qChecksum(QByteArray(msgBytes.constData(), static_cast<quint32>(msgBytes.length() - sizeof(quint16))));
#else
const quint16 actualChecksum = qChecksum(msgBytes.constData(), static_cast<quint32>(msgBytes.length() - sizeof(quint16)));
#endif
bool isValid = readStream.status() == QDataStream::Ok &&
QLatin1String(latin1Name) == blockServerName &&
msgChecksum == actualChecksum;
if( !isValid ){
sock->close();
return;
}
ConnectionInfo &info = connectionMap[sock];
info.instanceId = instanceId;
info.stage = StageConnectedHeader;
if( connectionType == NewInstance ||
( connectionType == SecondaryInstance &&
options & SingleApplication::Mode::SecondaryNotification ) )
{
Q_EMIT q->instanceStarted();
}
writeAck( sock );
}
void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quint32 instanceId )
{
Q_Q(SingleApplication);
if ( !isFrameComplete( dataSocket ) )
return;
const QByteArray message = dataSocket->readAll();
writeAck( dataSocket );
ConnectionInfo &info = connectionMap[dataSocket];
info.stage = StageConnectedHeader;
Q_EMIT q->receivedMessage( instanceId, message);
}
void SingleApplicationPrivate::slotClientConnectionClosed( QLocalSocket *closedSocket, quint32 instanceId )
{
if( closedSocket->bytesAvailable() > 0 )
slotDataAvailable( closedSocket, instanceId );
}
void SingleApplicationPrivate::randomSleep()
{
#if QT_VERSION >= QT_VERSION_CHECK( 5, 10, 0 )
QThread::msleep( QRandomGenerator::global()->bounded( 8u, 18u ));
#else
qsrand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits<uint>::max() );
QThread::msleep( qrand() % 11 + 8);
#endif
}
void SingleApplicationPrivate::addAppData(const QString &data)
{
appDataList.push_back(data);
}
QStringList SingleApplicationPrivate::appData() const
{
return appDataList;
}

View File

@@ -1,109 +0,0 @@
// The MIT License (MIT)
//
// Copyright (c) Itay Grudev 2015 - 2020
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
// W A R N I N G !!!
// -----------------
//
// This file is not part of the SingleApplication API. It is used purely as an
// implementation detail. This header file may change from version to
// version without notice, or may even be removed.
//
#ifndef SINGLEAPPLICATION_P_H
#define SINGLEAPPLICATION_P_H
#include <QtCore/QSharedMemory>
#include <QtNetwork/QLocalServer>
#include <QtNetwork/QLocalSocket>
#include "singleapplication.h"
struct InstancesInfo {
bool primary;
quint32 secondary;
qint64 primaryPid;
char primaryUser[128];
quint16 checksum; // Must be the last field
};
struct ConnectionInfo {
qint64 msgLen = 0;
quint32 instanceId = 0;
quint8 stage = 0;
};
class SingleApplicationPrivate : public QObject {
Q_OBJECT
public:
enum ConnectionType : quint8 {
InvalidConnection = 0,
NewInstance = 1,
SecondaryInstance = 2,
Reconnect = 3
};
enum ConnectionStage : quint8 {
StageInitHeader = 0,
StageInitBody = 1,
StageConnectedHeader = 2,
StageConnectedBody = 3,
};
Q_DECLARE_PUBLIC(SingleApplication)
SingleApplicationPrivate( SingleApplication *q_ptr );
~SingleApplicationPrivate() override;
static QString getUsername();
void genBlockServerName();
void initializeMemoryBlock() const;
void startPrimary();
void startSecondary();
bool connectToPrimary( int msecs, ConnectionType connectionType );
quint16 blockChecksum() const;
qint64 primaryPid() const;
QString primaryUser() const;
bool isFrameComplete(QLocalSocket *sock);
void readMessageHeader(QLocalSocket *socket, ConnectionStage nextStage);
void readInitMessageBody(QLocalSocket *socket);
void writeAck(QLocalSocket *sock);
bool writeConfirmedFrame(int msecs, const QByteArray &msg);
bool writeConfirmedMessage(int msecs, const QByteArray &msg);
static void randomSleep();
void addAppData(const QString &data);
QStringList appData() const;
SingleApplication *q_ptr;
QSharedMemory *memory;
QLocalSocket *socket;
QLocalServer *server;
quint32 instanceNumber;
QString blockServerName;
SingleApplication::Options options;
QMap<QLocalSocket*, ConnectionInfo> connectionMap;
QStringList appDataList;
public Q_SLOTS:
void slotConnectionEstablished();
void slotDataAvailable( QLocalSocket*, quint32 );
void slotClientConnectionClosed( QLocalSocket*, quint32 );
};
#endif // SINGLEAPPLICATION_P_H

View File

@@ -1,10 +1,11 @@
{
"id": "org.qelectrotech.QElectroTech",
"base-version": "5.15-23.08",
"runtime": "org.kde.Platform",
"runtime-version": "5.15",
"runtime-version": "5.15-23.08",
"sdk": "org.kde.Sdk",
"command": "qelectrotech",
"rename-desktop-file": "qelectrotech.desktop",
"rename-desktop-file": "org.qelectrotech.qelectrotech.desktop",
"rename-appdata-file": "qelectrotech.appdata.xml",
"rename-icon": "qelectrotech",
"copy-icon": true,
@@ -28,7 +29,7 @@
{
"type": "git",
"url": "https://github.com/iwalton3/tkinter-standalone",
"commit": "2301112d142ebaf7532b25600c77d1a2edc9ef04"
"commit": "23c793bad2429f4a81eee9f50e2d07ae845b7785"
}
],
"modules": [

View File

@@ -9,8 +9,6 @@ if [ ! -d "$to" ] && [ -d "$from" ]; then
cp -av "$from/." "$to"
fi
# link DXFtoQET so that QET finds it
mkdir -p "$HOME/.qet"
ln -snf "$SNAP/bin/DXFtoQET" "$HOME/.qet/DXFtoQET"
exec "${@}"

View File

@@ -1,6 +1,6 @@
name: qelectrotech
title: QElectroTech
base: core20
base: core22
adopt-info: qelectrotech
license: GPL-2.0
summary: Electrical diagram editor
@@ -14,40 +14,34 @@ compression: lzo
architectures:
- build-on: amd64
run-on: amd64
build-for: amd64
- build-on: arm64
build-for: arm64
layout:
/usr/local/share/qelectrotech:
symlink: $SNAP/usr/local/share/qelectrotech
/usr/share/libdrm/amdgpu.ids:
symlink: $SNAP/kf5/usr/share/libdrm/amdgpu.ids
apps:
qelectrotech:
command: usr/local/bin/qelectrotech
command-chain:
- bin/qelectrotech-launch
desktop: usr/local/share/applications/qelectrotech.desktop
extensions: [kde-neon]
plugs: &plugs [opengl, unity7, home, removable-media, gsettings, network, cups-control]
common-id: qelectrotech.desktop
extensions:
- kde-neon
plugs: &plugs [opengl, unity7, home, removable-media, gsettings, network, cups-control, wayland, x11]
environment: &env
TCL_LIBRARY: $SNAP/usr/share/tcltk/tcl8.6
HOME: $SNAP_USER_COMMON
PYTHONPATH: $SNAP:$SNAP/lib/python3.8/site-packages:$SNAP/usr/lib/python3.8:$SNAP/usr/lib/python3.8/lib-dynload
PYTHONPATH: $SNAP:$SNAP/lib/python3.10/site-packages:$SNAP/usr/lib/python3.10:$SNAP/usr/lib/python3.10/lib-dynload
qet-tb-generator:
command: bin/qet_tb_generator
command-chain:
- bin/qelectrotech-launch
extensions: [kde-neon]
extensions:
- kde-neon
plugs: *plugs
environment: *env
dxf-to-qet:
command: bin/DXFtoQET
extensions: [kde-neon]
plugs: *plugs
environment: *env
parts:
launchers:
@@ -68,24 +62,15 @@ parts:
kde-sdk-setup:
plugin: nil
build-snaps:
- kde-frameworks-5-qt-5-15-3-core20-sdk
- kf5-5-110-qt-5-15-11-core22-sdk
build-packages:
- g++
- mesa-common-dev
- libglvnd-dev
- rsync
override-build: |
rsync -a --ignore-existing /snap/kde-frameworks-5-qt-5-15-3-core20-sdk/current/ /
rsync -a --ignore-existing /snap/kf5-5-110-qt-5-15-11-core22-sdk/current/ /
dxf-to-qet:
after: [kde-sdk-setup]
plugin: nil
source: https://github.com/qelectrotech/DXFtoQET-2020.git
override-build: |
qmake "$SNAPCRAFT_PART_SRC/DXFtoQET.pro"
make -j$(nproc)
mkdir -p "$SNAPCRAFT_PART_INSTALL/bin"
cp DXFtoQET "$SNAPCRAFT_PART_INSTALL/bin/"
qelectrotech:
after: [kde-sdk-setup]
@@ -96,31 +81,31 @@ parts:
- git
- libsqlite3-dev
override-build: |
displayed_version=$(grep "displayedVersion" sources/qet.h | tr -d "\";" | cut -d" " -f5)
displayed_version=$(cat sources/qetversion.cpp | grep "return QVersionNumber{"| head -n 1| awk -F "{" '{ print $2 }' | awk -F "}" '{ print $1 }' | sed -e 's/,/./g' -e 's/ //g')
snap_version="${displayed_version}-g$(git rev-parse --short=8 HEAD)"
modified_displayed_version="${snap_version}.snap"
sed -i -E "s|const QString displayedVersion =.*|const QString displayedVersion =\"$modified_displayed_version\";|" sources/qet.h
snapcraftctl set-version "$snap_version"
qmake "$SNAPCRAFT_PART_SRC/qelectrotech.pro"
make -j${SNAPCRAFT_PARALLEL_BUILD_COUNT}
make install INSTALL_ROOT="$SNAPCRAFT_PART_INSTALL"
craftctl set version="$snap_version"
qmake "$CRAFT_PART_SRC/qelectrotech.pro"
make -j${CRAFT_PARALLEL_BUILD_COUNT}
make install INSTALL_ROOT="$CRAFT_PART_INSTALL"
override-stage: |
snapcraftctl stage
craftctl default
# patch desktop file with correct icon path
SED_CMD="sed -i -E s|^Icon=(.*)|Icon=\${SNAP}/usr/local/share/icons/hicolor/128x128/apps/\1.png|g"
$SED_CMD usr/local/share/applications/qelectrotech.desktop
$SED_CMD usr/local/share/applications/org.qelectrotech.qelectrotech.desktop
cleanup:
after: [qelectrotech, dxf-to-qet, qet-tb-generator]
after: [qelectrotech, qet-tb-generator]
plugin: nil
build-snaps: [kde-frameworks-5-qt-5-15-3-core20]
build-snaps: [kf5-5-110-qt-5-15-11-core22]
override-prime: |
set -eux
for snap in "kde-frameworks-5-qt-5-15-3-core20"; do # List all content-snaps you're using here
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$SNAPCRAFT_PRIME/{}" "$SNAPCRAFT_PRIME/usr/{}" \;
for snap in "kf5-5-110-qt-5-15-11-core22"; do # List all content-snaps you're using here
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$CRAFT_PRIME/{}" "$CRAFT_PRIME/usr/{}" \;
done
for cruft in bug lintian man; do
rm -rf $SNAPCRAFT_PRIME/usr/share/$cruft
rm -rf $CRAFT_PRIME/usr/share/$cruft
done
find $SNAPCRAFT_PRIME/usr/share/doc/ -type f -not -name 'copyright' -delete
find $SNAPCRAFT_PRIME/usr/share -type d -empty -delete
find $CRAFT_PRIME/usr/share/doc/ -type f -not -name 'copyright' -delete
find $CRAFT_PRIME/usr/share -type d -empty -delete

View File

@@ -5,7 +5,10 @@ set current_dir=%~dp0
cd /d %current_dir%
rem lance QElectroTech
rem Sans option --config-dir, la configuration de QElectroTech ainsi que la
rem collection d'elements perso seront dans "%APPDATA%\qet"
rem Sans option --config-dir, la configuration de QElectroTech seront dans
rem "C:/Users/<USER>/AppData/Local/QElectroTech/QElectroTech"
rem Sans l'option --data-dir, les données utilisateur (elements, titleblocks,
rem log, ...) de QElectroTech sont stockées dans
rem "C:/Users/<USER>/AppData/Roaming/QElectroTech/QElectroTech"
set command=bin\qelectrotech.exe --common-elements-dir=elements/ --common-tbt-dir=titleblocks/ --lang-dir=lang/ -style windowsvista %*
@start %command%

View File

@@ -1,391 +0,0 @@
; this file is part of installer for QElectroTech
; Copyright (C)2015 QElectroTech Team <scorpio@qelectrotech.org>
;
; This program 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.
;
; This program 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 this program; if not, write to the Free Software
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
; WebSite : http://qelectrotech.org/
;--------------------------------
;Include Modern UI
!include "MUI2.nsh"
!include "FileFunc.nsh"
!insertmacro Locate
!include FileFunc.nsh
!insertmacro GetParameters
!insertmacro GetOptions
; MUI Settings
;--------------------------------
;General
; General Product Description Definitions
!define SOFT_NAME "QElectroTech"
!define SOFT_VERSION "0.5-dev+4113"
!define SOFT_WEB_SITE "http://qelectrotech.org/"
!define SOFT_BUILD "1"
SetCompressor /final /solid lzma
CRCCheck force
XPStyle on
BrandingText "${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}" ; Shows in the Bottom Left of the installer
;Name and file
Name "${SOFT_NAME} ${SOFT_VERSION}"
OutFile "Installer_${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}.exe"
;Default installation folder
InstallDir "$PROGRAMFILES\${SOFT_NAME}"
;Get installation folder from registry if available
InstallDirRegKey HKCU "Software\${SOFT_NAME}" ""
;Request application privileges for Windows Vista
; we request for admin because we write stuff into the registry
RequestExecutionLevel admin
;--------------------------------
;Interface Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-uninstall.ico"
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\images\wizard.bmp"
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP ".\images\header.bmp" ; optional
;--------------------------------
;Language Selection Dialog Settings
;Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "Software\${SOFT_NAME}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
;--------------------------------
;Pages
!define MUI_COMPONENTSPAGE_SMALLDESC
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "files\LICENSE"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
; Finish page and checkbox to run QElectroTech
!define MUI_FINISHPAGE_RUN "$INSTDIR\Lancer QET.bat"
!define MUI_FINISHPAGE_RUN_NOTCHECKED
!define MUI_FINISHPAGE_RUN_TEXT "$(Check)"
!insertmacro MUI_PAGE_FINISH
;--------------------------------
;Languages
;Since NSIS 2.26, the language selection dialog of Modern UI hides languages unsupported by the user's selected codepage by default.
;To revert to the old behavior and display all languages, no matter what the user will see when they're selected, use MUI_LANGDLL_ALLLANGUAGES.
!define MUI_LANGDLL_ALLLANGUAGES
; For consistency, we limit the installer to languages supported by QElectroTech itself
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "Czech"
!insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "Greek"
!insertmacro MUI_LANGUAGE "Arabic"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Romanian"
!insertmacro MUI_LANGUAGE "Catalan"
!insertmacro MUI_LANGUAGE "Croatian"
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Dutch_Belgium"
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_RESERVEFILE_LANGDLL
!include lang_extra.nsh
!include lang_extra_fr.nsh
SetOverwrite on
Section "Main Program"
SectionIn RO ; Read only, always installed
Setoutpath "$INSTDIR\bin\"
File "./files/bin/${SOFT_NAME}.exe"
Setoutpath "$INSTDIR"
File "./files/ChangeLog"
File "./files/CREDIT"
File "./files/ELEMENTS.LICENSE"
File "./files/LICENSE"
File "./files/qet_uninstall_file_associations.reg"
File "./files/README"
File "./files/register_filetypes.bat"
File "Lancer QET.bat"
SetOutPath "$INSTDIR"
File /r "./files/ico"
SectionEnd
;---------------------------
SetOverwrite on
SubSection "$(Elements)" SEC01
SetOverwrite on
Section "$(Electric)"
SetOutPath "$INSTDIR\elements"
File /r "./files/elements/10_electric"
SectionEnd
SetOverwrite on
Section "$(Logic)"
SetOutPath "$INSTDIR\elements"
File /r "./files/elements/20_logic"
SectionEnd
SetOverwrite on
Section "$(Hydraulic)"
SetOutPath "$INSTDIR\elements"
File /r "./files/elements/30_hydraulic"
SectionEnd
SetOverwrite on
Section "$(Pneumatic)"
SetOutPath "$INSTDIR\elements"
File /r "./files/elements/50_pneumatic"
SectionEnd
;---------------------------------
SubSection "$(Energy)"
SetOverwrite on
Section "$(water)"
SetOutPath "$INSTDIR\elements\60_energy"
File /r "./files/elements/60_energy/11_water"
File /r "./files/elements/60_energy/"
SectionEnd
SetOverwrite on
Section "$(Refrigeration)"
SetOutPath "$INSTDIR\elements\60_energy"
File /r "./files/elements/60_energy/21_refrigeration"
File /r "./files/elements/60_energy/"
SectionEnd
SetOverwrite on
Section "$(Solar_thermal)"
SetOutPath "$INSTDIR\elements\60_energy"
File /r "./files/elements/60_energy/31_solar_thermal"
File /r "./files/elements/60_energy/"
SectionEnd
SubSectionEnd
SubSectionEnd
;-------------------------------
SetOverwrite on
Section "$(Lang)" SEC02
SetOutPath "$INSTDIR\lang"
File "./files/lang/*.qm"
SectionEnd
SetOverwrite on
Section "$(Titleblocks)" SEC03
SetOutPath "$INSTDIR"
File /r "./files/titleblocks"
SectionEnd
SetOverwrite on
Section "$(Examples)" SEC04
SetOutPath "$INSTDIR"
File /r "./files/examples"
SectionEnd
;--------------------------------
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(var1)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(var2)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $(var3)
!insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $(var4)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
;Installer Sections
Section ""
SetOutPath "$INSTDIR"
;Store installation folder
WriteRegStr HKCU "Software\${SOFT_NAME}" "" $INSTDIR
; write uninstall strings
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "DisplayName" "${SOFT_NAME} (remove only)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "UninstallString" '"$INSTDIR\Uninstall.exe"'
;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
; get the final path for the icons and the launch script
Var /GLOBAL final_qet_exe
Var /GLOBAL final_project_ico
Var /GLOBAL final_element_ico
Var /GLOBAL final_titleblock_ico
StrCpy $final_qet_exe "$INSTDIR\Lancer QET.bat"
StrCpy $final_project_ico "$INSTDIR\\ico\application-x-qet-project.ico"
StrCpy $final_element_ico "$INSTDIR\\ico\application-x-qet-element.ico"
StrCpy $final_titleblock_ico "$INSTDIR\\ico\application-x-qet-titleblock.ico"
; write file associations registry keys
WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file"
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Sch<EFBFBD>ma QET"
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico"
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file"
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "<EFBFBD>l<EFBFBD>ment QET"
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico"
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
WriteRegStr HKEY_CLASSES_ROOT ".titleblock" "" "qet_titleblock_file"
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file" "" "Titleblock QET"
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "EditFlags" 0x00000000
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "BrowserFlags" 0x00000008
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\DefaultIcon" "" "$final_titleblock_ico"
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
SetShellVarContext all ; all users
; shortcuts in the start menu
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}"
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Manual"
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Upgrade"
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\\ico\qelectrotech.ico"
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\Uninstall QElectroTech.lnk" "$INSTDIR\Uninstall.exe"
; shortcut on the desktop
CreateShortCut "$DESKTOP\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/manual_0.7/build/index.html"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/joshua/html/QET_ru.html"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/builds/nightly/"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Donate.url" "InternetShortcut" "URL" "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC"
;changing $INSTDIR\elements\ *.elmt to read-only attribute
${Locate} "$INSTDIR\elements\" "/L=FD /M=*.elmt" "LocateCallback"
IfErrors 0 +2
;MessageBox MB_OK "Error"
SectionEnd
Function LocateCallback
SetFileAttributes $R9 FILE_ATTRIBUTE_READONLY
Push $0
FunctionEnd
;--------------------------------
;Installer Functions
Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
;Auto-uninstall old before installing new
ReadRegStr $R0 HKLM \
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \
"UninstallString"
StrCmp $R0 "" done
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
"$(installed)" \
IDOK uninst
Abort
;Run the uninstaller
uninst:
ClearErrors
ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
IfErrors no_remove_uninstaller done
;You can either use Delete /REBOOTOK in the uninstaller or add some code
;here to remove the uninstaller. Use a registry key to check
;whether the user has chosen to uninstall. If you are using an uninstaller
;components page, make sure all sections are uninstalled.
no_remove_uninstaller:
done:
FunctionEnd
;--------------------------------
;Descriptions
;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC
;Assign descriptions to sections
;!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
;!insertmacro MUI_DESCRIPTION_TEXT ${CopyFiles} "CopyFiles"
;!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
;Uninstaller Section
Section "Uninstall"
SetShellVarContext all ; all users
; remove start menu shortcuts
RMDir /r "$SMPROGRAMS\${SOFT_NAME}"
; remove shortcut on the desktop
Delete "$DESKTOP\QElectroTech.lnk"
; remove the application files
Delete "$INSTDIR\*.*"
RMDir /r "$INSTDIR"
;remove installation registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}"
DeleteRegKey /ifempty HKCU "Software\${SOFT_NAME}"
; remove file associations registry keys
DeleteRegKey HKEY_CLASSES_ROOT "Applications\qelectrotech.exe"
DeleteRegKey HKEY_CLASSES_ROOT ".qet"
DeleteRegKey HKEY_CLASSES_ROOT "qet_diagram_file"
DeleteRegKey HKEY_CLASSES_ROOT ".elmt"
DeleteRegKey HKEY_CLASSES_ROOT "qet_element_file"
DeleteRegKey HKEY_CLASSES_ROOT ".titleblock"
DeleteRegKey HKEY_CLASSES_ROOT "qet_titleblock_file"
IfFileExists "$INSTDIR" 0 NoErrorMsg
;MessageBox MB_OK "Note: $INSTDIR could not be removed!" IDOK 0 ; skipped if file doesn't exist
NoErrorMsg:
SectionEnd
;--------------------------------
;Uninstaller Functions
Function un.onInit
!insertmacro MUI_UNGETLANGUAGE
FunctionEnd

View File

@@ -125,6 +125,7 @@
!insertmacro MUI_LANGUAGE "Dutch"
!insertmacro MUI_LANGUAGE "Dutch_Belgium"
!insertmacro MUI_LANGUAGE "Danish"
!insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_RESERVEFILE_LANGDLL
!include lang_extra.nsh
@@ -266,13 +267,13 @@ Section ""
; write file associations registry keys
WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file"
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Sch<EFBFBD>ma QET"
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Diagram QET"
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico"
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file"
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "<EFBFBD>l<EFBFBD>ment QET"
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "Element QET"
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico"
@@ -295,9 +296,9 @@ Section ""
; shortcut on the desktop
CreateShortCut "$DESKTOP\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/manual_0.7/build/index.html"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/joshua/html/QET_ru.html"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/builds/nightly/"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/manual_0.7/build/index.html"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/joshua/html/QET_ru.html"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" "InternetShortcut" "URL" "https://download.qelectrotech.org/qet/builds/nightly/"
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Donate.url" "InternetShortcut" "URL" "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC"
;changing $INSTDIR\elements\ *.elmt to read-only attribute

View File

@@ -104,7 +104,7 @@
LangString installed ${LANG_GERMAN} "${SOFT_NAME} ist bereits installiert. $\n$\nKlicken Sie auf `OK`, um die alte Version zu deinstallieren, oder auf `Abbrechen`, um das Upgrade abzubrechen."
LangString wrongArch ${LANG_GERMAN} "Dieses Programm läuft ausschließlich unter Windows 64 Bits."
LangString wrongArch ${LANG_GERMAN} "Dieses Programm läuft ausschließlich unter Windows 64 Bit."
LangString Elements ${LANG_GERMAN} "Bauteile"
LangString Electric ${LANG_GERMAN} "Elektrik"
LangString Logic ${LANG_GERMAN} "Logik"
@@ -115,13 +115,13 @@
LangString Refrigeration ${LANG_GERMAN} "Kältetechnik"
LangString Solar_thermal ${LANG_GERMAN} "Solar-Wärmetechnik"
LangString Lang ${LANG_GERMAN} "Sprachen"
LangString Titleblocks ${LANG_GERMAN} "Zeichnungsköpfe"
LangString Titleblocks ${LANG_GERMAN} "Schriftfelder"
LangString Examples ${LANG_GERMAN} "Beispiele"
LangString Check ${LANG_GERMAN} "Check to start ${SOFT_NAME}"
LangString var1 ${LANG_GERMAN} "Elements of the official collection"
LangString var2 ${LANG_GERMAN} "languagues files"
LangString var3 ${LANG_GERMAN} "Examples of cartridges"
LangString var4 ${LANG_GERMAN} "Examples of diagrams"
LangString Check ${LANG_GERMAN} "Ankreuzen zum Starten von ${SOFT_NAME}"
LangString var1 ${LANG_GERMAN} "Elemente der offiziellen Sammlung"
LangString var2 ${LANG_GERMAN} "Sprachdateien"
LangString var3 ${LANG_GERMAN} "Schriftfeld-Beispiele"
LangString var4 ${LANG_GERMAN} "Schaltplan-Beispiele"
LangString installed ${LANG_RUSSIAN} "${SOFT_NAME} уже установлен. $\n$\nДля удаления предыдущей версии нажмите `OK` или `Cancel` для отмены обновления."

View File

@@ -62,10 +62,15 @@ message("PROJECT_SOURCE_DIR :" ${PROJECT_SOURCE_DIR})
message("QET_DIR :" ${QET_DIR})
message("GIT_COMMIT_SHA :" ${GIT_COMMIT_SHA})
if(BUILD_WITH_KF5)
message("KF5_GIT_TAG :" ${KF5_GIT_TAG})
else()
add_definitions(-DBUILD_WITHOUT_KF5)
if(BUILD_WITH_KF6 AND BUILD_KF6)
message("KF6_GIT_TAG :" ${KF6_GIT_TAG})
endif()
if(NOT BUILD_WITH_KF6)
add_definitions(-DBUILD_WITHOUT_KF6)
endif()
message("QET_COMPONENTS :" ${QET_COMPONENTS})
message("QT_VERSION_MAJOR :" ${QT_VERSION_MAJOR})
message("Qt version :" ${Qt6_VERSION})
if(QMFILES_AS_RESOURCE)
add_definitions(-DQMFILES_AS_RESOURCE)
endif()

View File

@@ -31,5 +31,8 @@ add_definitions(-DQT_MESSAGELOGCONTEXT)
# In order to do so, uncomment the following line.
#add_definitions(-DTODO_LIST)
# Build with KF5
option(BUILD_WITH_KF5 "Build with KF5" ON)
# Build with KF6
option(BUILD_WITH_KF6 "Build with KF6" ON)
# Use translations as a Qt resource
option(QMFILES_AS_RESOURCE "Use .qm files as Qt resource" ON)

View File

@@ -14,54 +14,47 @@
# You should have received a copy of the GNU General Public License
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
message(" - fetch_kdeaddons")
message(STATUS "fetch_kdeaddons")
if(DEFINED BUILD_WITH_KF5)
if(BUILD_WITH_KF6)
option(BUILD_KF6 "Build KF6 libraries, use system ones otherwise" OFF)
block(PROPAGATE KF6_GIT_TAG)
set(BUILD_TESTING OFF)
set(KDE_SKIP_TEST_SETTINGS ON)
set(BUILD_DESIGNERPLUGIN OFF)
set(KCOREADDONS_USE_QML OFF)
set(BUILD_QCH OFF)
set(BUILD_SHARED_LIBS OFF)
find_package(ECM 6.8.0 REQUIRED NO_MODULE)
list(APPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
if(BUILD_KF6)
Include(FetchContent)
option(BUILD_KF5 "Build KF5 libraries, use system ones otherwise" YES)
if(BUILD_KF5)
if(NOT DEFINED KF5_GIT_TAG)
#https://qelectrotech.org/forum/viewtopic.php?pid=13924#p13924
set(KF5_GIT_TAG v5.77.0)
if(NOT DEFINED KF6_GIT_TAG)
set(KF6_GIT_TAG v6.8.0)
endif()
# Fix stop the run autotests of kcoreaddons
# see
# https://invent.kde.org/frameworks/kcoreaddons/-/blob/master/CMakeLists.txt#L98
# issue:
# CMake Error at /usr/share/ECM/modules/ECMAddTests.cmake:89 (add_executable):
# Cannot find source file:
# see
# https://qelectrotech.org/forum/viewtopic.php?pid=13929#p13929
set(KDE_SKIP_TEST_SETTINGS "TRUE")
set(BUILD_TESTING "0")
FetchContent_Declare(
ecm
GIT_REPOSITORY https://invent.kde.org/frameworks/extra-cmake-modules.git
GIT_TAG ${KF5_GIT_TAG})
FetchContent_MakeAvailable(ecm)
FetchContent_Declare(
kcoreaddons
GIT_REPOSITORY https://invent.kde.org/frameworks/kcoreaddons.git
GIT_TAG ${KF5_GIT_TAG})
GIT_TAG ${KF6_GIT_TAG})
FetchContent_MakeAvailable(kcoreaddons)
get_target_property(kca_version KF6::CoreAddons VERSION)
FetchContent_Declare(
kwidgetsaddons
GIT_REPOSITORY https://invent.kde.org/frameworks/kwidgetsaddons.git
GIT_TAG ${KF5_GIT_TAG})
FetchContent_MakeAvailable(kwidgetsaddons)
else()
find_package(KF5CoreAddons REQUIRED)
find_package(KF5WidgetsAddons REQUIRED)
find_package(KF6CoreAddons REQUIRED)
set(kca_version ${KF6CoreAddons_VERSION})
endif()
set(KF5_PRIVATE_LIBRARIES
KF5::WidgetsAddons
KF5::CoreAddons
get_target_property(kwa_type KF6::CoreAddons TYPE)
message(NOTICE "ecm version : " ${ECM_VERSION})
message(NOTICE "kcoreaddons library : " ${kca_type})
message(NOTICE "kcoreaddons version : " ${kca_version})
endblock()
set(KF6_PRIVATE_LIBRARIES
KF6::CoreAddons
)
endif()

View File

@@ -25,7 +25,7 @@ if(BUILD_PUGIXML)
FetchContent_Declare(
pugixml
GIT_REPOSITORY https://github.com/zeux/pugixml.git
GIT_TAG v1.11.4)
GIT_TAG v1.14)
FetchContent_MakeAvailable(pugixml)
else()

View File

@@ -26,6 +26,6 @@ Include(FetchContent)
FetchContent_Declare(
SingleApplication
GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git
GIT_TAG v3.2.0)
GIT_TAG v3.5.1)
FetchContent_MakeAvailable(SingleApplication)

View File

@@ -17,6 +17,8 @@
message(" - qet_compilation_vars")
set(QET_COMPONENTS
Core
Gui
LinguistTools
PrintSupport
Xml
@@ -66,6 +68,13 @@ set(QET_RES_FILES
${QET_DIR}/sources/SearchAndReplace/ui/replaceelementdialog.ui
${QET_DIR}/sources/SearchAndReplace/ui/replacefoliowidget.ui
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.ui
${QET_DIR}/sources/TerminalStrip/ui/addterminalstripitemdialog.ui
${QET_DIR}/sources/TerminalStrip/ui/freeterminaleditor.ui
${QET_DIR}/sources/TerminalStrip/ui/terminalstripcreatordialog.ui
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditor.ui
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditorwindow.ui
${QET_DIR}/sources/TerminalStrip/ui/terminalstriplayouteditor.ui
${QET_DIR}/sources/TerminalStrip/ui/terminalstriptreedockwidget.ui
${QET_DIR}/sources/ui/aboutqetdialog.ui
${QET_DIR}/sources/ui/alignmenttextdialog.ui
${QET_DIR}/sources/ui/bomexportdialog.ui
@@ -75,6 +84,7 @@ set(QET_RES_FILES
${QET_DIR}/sources/ui/conductorpropertieswidget.ui
${QET_DIR}/sources/ui/configsaveloaderwidget.ui
${QET_DIR}/sources/ui/diagramcontextwidget.ui
${QET_DIR}/sources/ui/diagrameditorhandlersizewidget.ui
${QET_DIR}/sources/ui/diagramselection.ui
${QET_DIR}/sources/ui/dialogwaiting.ui
${QET_DIR}/sources/ui/dynamicelementtextitemeditor.ui
@@ -91,6 +101,7 @@ set(QET_RES_FILES
${QET_DIR}/sources/ui/potentialselectordialog.ui
${QET_DIR}/sources/ui/reportpropertiewidget.ui
${QET_DIR}/sources/ui/shapegraphicsitempropertieswidget.ui
${QET_DIR}/sources/ui/thirdpartybinaryinstalldialog.ui
${QET_DIR}/sources/ui/titleblockpropertieswidget.ui
${QET_DIR}/sources/ui/xrefpropertieswidget.ui
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.ui
@@ -100,6 +111,12 @@ set(QET_SRC_FILES
${QET_DIR}/sources/borderproperties.h
${QET_DIR}/sources/bordertitleblock.cpp
${QET_DIR}/sources/bordertitleblock.h
${QET_DIR}/sources/colorbutton.cpp
${QET_DIR}/sources/colorbutton.h
${QET_DIR}/sources/colorcombobox.cpp
${QET_DIR}/sources/colorcombobox.h
${QET_DIR}/sources/colorcomboboxdelegate.cpp
${QET_DIR}/sources/colorcomboboxdelegate.h
${QET_DIR}/sources/conductorautonumerotation.cpp
${QET_DIR}/sources/conductorautonumerotation.h
${QET_DIR}/sources/conductornumexport.cpp
@@ -184,6 +201,8 @@ set(QET_SRC_FILES
${QET_DIR}/sources/qetresult.h
${QET_DIR}/sources/qetxml.cpp
${QET_DIR}/sources/qetxml.h
${QET_DIR}/sources/qetversion.cpp
${QET_DIR}/sources/qetversion.h
${QET_DIR}/sources/qfilenameedit.cpp
${QET_DIR}/sources/qfilenameedit.h
${QET_DIR}/sources/qgimanager.cpp
@@ -244,6 +263,12 @@ set(QET_SRC_FILES
${QET_DIR}/sources/dvevent/dveventinterface.cpp
${QET_DIR}/sources/dvevent/dveventinterface.h
${QET_DIR}/sources/dxf/dxftoelmt.cpp
${QET_DIR}/sources/dxf/dxftoelmt.h
${QET_DIR}/sources/qet_elementscaler/qet_elementscaler.cpp
${QET_DIR}/sources/qet_elementscaler/qet_elementscaler.h
${QET_DIR}/sources/editor/arceditor.cpp
${QET_DIR}/sources/editor/arceditor.h
${QET_DIR}/sources/editor/editorcommands.cpp
@@ -322,6 +347,12 @@ set(QET_SRC_FILES
${QET_DIR}/sources/editor/UndoCommand/pastepartscommand.cpp
${QET_DIR}/sources/editor/UndoCommand/pastepartscommand.h
${QET_DIR}/sources/editor/UndoCommand/openelmtcommand.cpp
${QET_DIR}/sources/editor/UndoCommand/openelmtcommand.h
${QET_DIR}/sources/editor/UndoCommand/deletepartscommand.cpp
${QET_DIR}/sources/editor/UndoCommand/deletepartscommand.h
${QET_DIR}/sources/editor/UndoCommand/addpartcommand.cpp
${QET_DIR}/sources/editor/UndoCommand/addpartcommand.h
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.cpp
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.h
@@ -368,6 +399,9 @@ set(QET_SRC_FILES
${QET_DIR}/sources/print/projectprintwindow.cpp
${QET_DIR}/sources/print/projectprintwindow.h
${QET_DIR}/sources/project/projectpropertieshandler.cpp
${QET_DIR}/sources/project/projectpropertieshandler.h
${QET_DIR}/sources/properties/elementdata.cpp
${QET_DIR}/sources/properties/elementdata.h
${QET_DIR}/sources/properties/propertiesinterface.cpp
@@ -387,9 +421,9 @@ set(QET_SRC_FILES
${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.cpp
${QET_DIR}/sources/PropertiesEditor/propertieseditorwidget.h
${QET_DIR}/sources/pugixml/pugiconfig.hpp
${QET_DIR}/sources/pugixml/pugixml.cpp
${QET_DIR}/sources/pugixml/pugixml.hpp
${QET_DIR}/pugixml/src/pugiconfig.hpp
${QET_DIR}/pugixml/src/pugixml.cpp
${QET_DIR}/pugixml/src/pugixml.hpp
${QET_DIR}/sources/qetgraphicsitem/conductor.cpp
${QET_DIR}/sources/qetgraphicsitem/conductor.h
@@ -428,7 +462,6 @@ set(QET_SRC_FILES
${QET_DIR}/sources/qetgraphicsitem/terminalelement.h
${QET_DIR}/sources/qetgraphicsitem/terminal.h
${QET_DIR}/sources/qetgraphicsitem/ViewItem/projectdbmodel.cpp
${QET_DIR}/sources/qetgraphicsitem/ViewItem/projectdbmodel.h
${QET_DIR}/sources/qetgraphicsitem/ViewItem/qetgraphicsheaderitem.cpp
@@ -508,6 +541,65 @@ set(QET_SRC_FILES
${QET_DIR}/sources/titleblock/templatevisualcell.cpp
${QET_DIR}/sources/titleblock/templatevisualcell.h
${QET_DIR}/sources/TerminalStrip/physicalterminal.cpp
${QET_DIR}/sources/TerminalStrip/physicalterminal.h
${QET_DIR}/sources/TerminalStrip/realterminal.cpp
${QET_DIR}/sources/TerminalStrip/realterminal.h
${QET_DIR}/sources/TerminalStrip/terminalstripbridge.cpp
${QET_DIR}/sources/TerminalStrip/terminalstripbridge.h
${QET_DIR}/sources/TerminalStrip/terminalstrip.cpp
${QET_DIR}/sources/TerminalStrip/terminalstrip.h
${QET_DIR}/sources/TerminalStrip/terminalstripdata.cpp
${QET_DIR}/sources/TerminalStrip/terminalstripdata.h
${QET_DIR}/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp
${QET_DIR}/sources/TerminalStrip/ui/addterminalstripitemdialog.h
${QET_DIR}/sources/TerminalStrip/ui/freeterminaleditor.cpp
${QET_DIR}/sources/TerminalStrip/ui/freeterminaleditor.h
${QET_DIR}/sources/TerminalStrip/ui/freeterminalmodel.cpp
${QET_DIR}/sources/TerminalStrip/ui/freeterminalmodel.h
${QET_DIR}/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp
${QET_DIR}/sources/TerminalStrip/ui/terminalstripcreatordialog.h
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditor.cpp
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditor.h
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditorwindow.cpp
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditorwindow.h
${QET_DIR}/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp
${QET_DIR}/sources/TerminalStrip/ui/terminalstriplayouteditor.h
${QET_DIR}/sources/TerminalStrip/ui/terminalstripmodel.cpp
${QET_DIR}/sources/TerminalStrip/ui/terminalstripmodel.h
${QET_DIR}/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp
${QET_DIR}/sources/TerminalStrip/ui/terminalstriptreedockwidget.h
${QET_DIR}/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.cpp
${QET_DIR}/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.h
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminalstripcommand.cpp
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminalstripcommand.h
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.cpp
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.h
${QET_DIR}/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.cpp
${QET_DIR}/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.h
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminallevel.cpp
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminallevel.h
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripcolor.cpp
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripcolor.h
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripdata.cpp
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripdata.h
${QET_DIR}/sources/TerminalStrip/UndoCommand/groupterminalscommand.cpp
${QET_DIR}/sources/TerminalStrip/UndoCommand/groupterminalscommand.h
${QET_DIR}/sources/TerminalStrip/UndoCommand/sortterminalstripcommand.cpp
${QET_DIR}/sources/TerminalStrip/UndoCommand/sortterminalstripcommand.h
${QET_DIR}/sources/TerminalStrip/GraphicsItem/demoterminalstrip.cpp
${QET_DIR}/sources/TerminalStrip/GraphicsItem/demoterminalstrip.h
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripitem.h
${QET_DIR}/sources/TerminalStrip/GraphicsItem/trueterminalstrip.cpp
${QET_DIR}/sources/TerminalStrip/GraphicsItem/trueterminalstrip.h
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.h
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.cpp
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.h
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutshandler.cpp
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutshandler.h
${QET_DIR}/sources/ui/aboutqetdialog.cpp
${QET_DIR}/sources/ui/aboutqetdialog.h
${QET_DIR}/sources/ui/abstractelementpropertieseditorwidget.cpp
@@ -528,6 +620,8 @@ set(QET_SRC_FILES
${QET_DIR}/sources/ui/configsaveloaderwidget.h
${QET_DIR}/sources/ui/diagramcontextwidget.cpp
${QET_DIR}/sources/ui/diagramcontextwidget.h
${QET_DIR}/sources/ui/diagrameditorhandlersizewidget.cpp
${QET_DIR}/sources/ui/diagrameditorhandlersizewidget.h
${QET_DIR}/sources/ui/diagrampropertiesdialog.cpp
${QET_DIR}/sources/ui/diagrampropertiesdialog.h
${QET_DIR}/sources/ui/diagrampropertieseditordockwidget.cpp
@@ -572,6 +666,8 @@ set(QET_SRC_FILES
${QET_DIR}/sources/ui/reportpropertiewidget.h
${QET_DIR}/sources/ui/shapegraphicsitempropertieswidget.cpp
${QET_DIR}/sources/ui/shapegraphicsitempropertieswidget.h
${QET_DIR}/sources/ui/thirdpartybinaryinstalldialog.cpp
${QET_DIR}/sources/ui/thirdpartybinaryinstalldialog.h
${QET_DIR}/sources/ui/titleblockpropertieswidget.cpp
${QET_DIR}/sources/ui/titleblockpropertieswidget.h
${QET_DIR}/sources/ui/xrefpropertieswidget.cpp
@@ -588,6 +684,8 @@ set(QET_SRC_FILES
${QET_DIR}/sources/undocommand/addelementtextcommand.h
${QET_DIR}/sources/undocommand/addgraphicsobjectcommand.cpp
${QET_DIR}/sources/undocommand/addgraphicsobjectcommand.h
${QET_DIR}/sources/undocommand/changeelementdatacommand.cpp
${QET_DIR}/sources/undocommand/changeelementdatacommand.h
${QET_DIR}/sources/undocommand/changeelementinformationcommand.cpp
${QET_DIR}/sources/undocommand/changeelementinformationcommand.h
${QET_DIR}/sources/undocommand/changetitleblockcommand.cpp
@@ -602,43 +700,51 @@ set(QET_SRC_FILES
${QET_DIR}/sources/undocommand/rotateselectioncommand.h
${QET_DIR}/sources/undocommand/rotatetextscommand.cpp
${QET_DIR}/sources/undocommand/rotatetextscommand.h
${QET_DIR}/sources/undocommand/movegraphicsitemcommand.cpp
${QET_DIR}/sources/undocommand/movegraphicsitemcommand.h
${QET_DIR}/sources/utils/conductorcreator.cpp
${QET_DIR}/sources/utils/conductorcreator.h
${QET_DIR}/sources/utils/macosxopenevent.cpp
${QET_DIR}/sources/utils/macosxopenevent.h
${QET_DIR}/sources/utils/qetsettings.cpp
${QET_DIR}/sources/utils/qetsettings.h
${QET_DIR}/sources/utils/qetutils.cpp
${QET_DIR}/sources/utils/qetutils.h
${QET_DIR}/sources/xml/terminalstripitemxml.cpp
${QET_DIR}/sources/xml/terminalstripitemxml.h
)
set(TS_FILES
${QET_DIR}/lang/qet_ca.ts
${QET_DIR}/lang/qet_de.ts
${QET_DIR}/lang/qet_es.ts
${QET_DIR}/lang/qet_fr.ts
${QET_DIR}/lang/qet_it.ts
${QET_DIR}/lang/qet_mn.ts
${QET_DIR}/lang/qet_pt_br.ts
${QET_DIR}/lang/qet_ru.ts
${QET_DIR}/lang/qet_sr.ts
${QET_DIR}/lang/qet_zh.ts
${QET_DIR}/lang/qet_be.ts
${QET_DIR}/lang/qet_da.ts
${QET_DIR}/lang/qet_en.ts
${QET_DIR}/lang/qet_fi.ts
${QET_DIR}/lang/qet_hu.ts
${QET_DIR}/lang/qet_nl.ts
${QET_DIR}/lang/qet_pl.ts
${QET_DIR}/lang/qet_ro.ts
${QET_DIR}/lang/qet_sk.ts
${QET_DIR}/lang/qet_ar.ts
${QET_DIR}/lang/qet_ca.ts
${QET_DIR}/lang/qet_cs.ts
${QET_DIR}/lang/qet_da.ts
${QET_DIR}/lang/qet_de.ts
${QET_DIR}/lang/qet_el.ts
${QET_DIR}/lang/qet_en.ts
${QET_DIR}/lang/qet_es.ts
${QET_DIR}/lang/qet_fi.ts
${QET_DIR}/lang/qet_fr.ts
${QET_DIR}/lang/qet_hr.ts
${QET_DIR}/lang/qet_hu.ts
${QET_DIR}/lang/qet_it.ts
${QET_DIR}/lang/qet_ja.ts
${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_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_zh.ts
)

View File

@@ -25,5 +25,8 @@ add_definitions(-DQET_ALLOW_OVERRIDE_CTBTD_OPTION)
# Comment the line below to deactivate the --config-dir option
add_definitions(-DQET_ALLOW_OVERRIDE_CD_OPTION)
# Comment the line below to deactivate the --data-dir option
add_definitions(-DQET_ALLOW_OVERRIDE_DD_OPTION)
#comment the line below to disable the project database export
#add_definitions(-DQET_EXPORT_PROJECT_DB) #error Todo
add_definitions(-DQET_EXPORT_PROJECT_DB)

View File

@@ -11,6 +11,7 @@ DiagramImageItem + 1007
QetShapItem + 1008
crossRefItem + 1009
DynamiqueElementTextItem + 1010
TerminalStripItem +1011
ElementPrimitiveDecorator + 2200
###ELEMENT EDITOR###

1
elements Submodule

Submodule elements added at 48eb7dcedf

View File

@@ -1,28 +0,0 @@
<definition height="20" version="0.80" width="30" hotspot_x="8" link_type="previous_report" hotspot_y="10" type="element">
<uuid uuid="{994d5b97-25b5-49aa-93ae-c1857ab866ea}"/>
<names>
<name lang="ar">الصفحة السابقة</name>
<name lang="ru">Предыдущая страница</name>
<name lang="es">folio anterior</name>
<name lang="it">Foglio precedente</name>
<name lang="de">Vorherige Folie</name>
<name lang="el">Προηγούμενη σελίδα</name>
<name lang="en">Coming arrow</name>
<name lang="cs">Předchozí list</name>
<name lang="fr">Folio précédent</name>
<name lang="pl">Wejście adresowe</name>
<name lang="hu">Beérkező hivatkozás</name>
<name lang="nl">Referentie Vorig</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<polygon x2="-1" y2="4" y4="-4" x1="-1" x3="9" y3="0" closed="false" style="line-style:normal;line-weight:normal;filling:black;color:black" y1="-4" x4="-1" antialias="true"/>
<line length2="1.5" x2="12" end2="none" y2="0" length1="1.5" x1="9" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" end1="none" antialias="false"/>
<dynamic_text x="-44" rotation="0" uuid="{8ec41ce2-36d6-4fe3-b299-c8a48cb2182c}" Halignment="AlignLeft" font="Sans Serif,9,-1,5,50,0,0,0,0,0" text_from="ElementInfo" y="-11.5" Valignment="AlignTop" z="3" frame="false" text_width="-1">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<terminal x="13" uuid="{d7fd0bec-9f05-4651-a50b-29d7ffabeb41}" name="" y="0" orientation="e"/>
</description>
</definition>

View File

@@ -1,28 +0,0 @@
<definition hotspot_x="21" hotspot_y="10" version="0.80" type="element" height="20" link_type="next_report" width="30">
<uuid uuid="{2e596a05-ef45-4895-b826-942d28c2d038}"/>
<names>
<name lang="de">Nächste Folie</name>
<name lang="ar">الصفحة التالية</name>
<name lang="fr">Folio suivant</name>
<name lang="hu">Elmenő hivatkozás</name>
<name lang="it">Foglio successivo</name>
<name lang="el">Επόμενη σελίδα</name>
<name lang="en">Going arrow</name>
<name lang="es">Folio siguiente</name>
<name lang="nl">Referentie volgend</name>
<name lang="pl">Wyjście adresowe</name>
<name lang="ru">Следующая страница</name>
<name lang="cs">Další list</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<polygon y3="0" y2="4" x4="-9" x3="2" x1="-9" x2="-9" y4="-4" style="line-style:normal;line-weight:normal;filling:black;color:black" y1="-4" closed="false" antialias="true"/>
<line y2="0" x1="-9" x2="-12" length1="1.5" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" end1="none" length2="1.5" antialias="false"/>
<dynamic_text Valignment="AlignTop" Halignment="AlignLeft" rotation="0" font="Sans Serif,9,-1,5,50,0,0,0,0,0" uuid="{93888a84-3ffd-438d-acef-5396acba0750}" text_width="-1" x="6" frame="false" z="3" y="-11.5" text_from="ElementInfo">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<terminal uuid="{975add6f-4ba5-44af-a4c0-e1f1c2024601}" name="" x="-13" orientation="w" y="0"/>
</description>
</definition>

View File

@@ -1,19 +0,0 @@
<qet-directory>
<names>
<name lang="ru">Точки разрыва</name>
<name lang="ar">إحالات</name>
<name lang="cs">Odkazování listů</name>
<name lang="de">Folienverweise</name>
<name lang="el">Αναφορές σελίδας</name>
<name lang="en">Folio referencing</name>
<name lang="fr">Reports de folio</name>
<name lang="it">Riferimenti</name>
<name lang="pl">Odsyłacze</name>
<name lang="pt_br">Referências</name>
<name lang="es">Referencias</name>
<name lang="nl">Referenties</name>
<name lang="da">Ark henvisninger</name>
<name lang="ja">フォリオ参照</name>
<name lang="hu">Tervlap hivatkozások</name>
</names>
</qet-directory>

View File

@@ -1,38 +0,0 @@
<definition type="element" height="80" hotspot_y="40" version="0.70" width="50" hotspot_x="23" link_type="simple">
<uuid uuid="{65b9e889-c2eb-4d85-aa9e-c1dff55678f5}"/>
<names>
<name lang="en">Three-pole source + PEN</name>
<name lang="el">Τριφασικό + PEN</name>
<name lang="es">Fuente tripolar + PEN</name>
<name lang="nl">driefasen + aardenul</name>
<name lang="pl">Linia trójfazowa (PEN)</name>
<name lang="it">Sorgente tripolare + PEN</name>
<name lang="de">Drehstrom + PEN</name>
<name lang="ru">Трёхполюсный + PEN</name>
<name lang="fr">Source tripolaire + PEN</name>
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
<name lang="cs">Přípojnice 3f+PEN pravá</name>
<name lang="hu">3F + PEN</name>
</names>
<elementInformations/>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<dynamic_text z="1" Valignment="AlignTop" x="-7" text_from="ElementInfo" font="Sans Serif,9,-1,5,50,0,0,0,0,0" rotation="0" uuid="{7c68cf51-b979-4e89-97b2-a93b5ad61f95}" y="-60.45" Halignment="AlignLeft" frame="false" text_width="-1">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="33" text="PEN" color="#000000"/>
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="13" text="L3" color="#000000"/>
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="-7" text="L2" color="#000000"/>
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="-27" text="L1" color="#000000"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="-30" end1="none" y1="-30" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="-10" end1="none" y1="-10" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="10" end1="none" y1="10" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-14" y2="30" end1="none" y1="30" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
<terminal orientation="w" x="-15" y="-30"/>
<terminal orientation="w" x="-15" y="-10"/>
<terminal orientation="w" x="-15" y="30"/>
<terminal orientation="w" x="-15" y="10"/>
</description>
</definition>

View File

@@ -1,41 +0,0 @@
<definition type="element" height="100" hotspot_y="40" version="0.70" width="40" hotspot_x="20" link_type="simple">
<uuid uuid="{b4b70d3d-8784-4323-b17b-d8ff3677cdc1}"/>
<names>
<name lang="en">Three-pole source + N + PE</name>
<name lang="el">Τριφασικό + PEN</name>
<name lang="es">Fuente tripolar + PEN</name>
<name lang="nl">driefasen + aardenul</name>
<name lang="pl">Linia trójfazowa (PEN)</name>
<name lang="it">Sorgente tripolare + PEN</name>
<name lang="de">Drehstrom + PEN</name>
<name lang="ru">Трёхполюсный + PEN</name>
<name lang="fr">Source tripolaire + PEN</name>
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
<name lang="cs">Přípojnice 3f+N+PE pravá</name>
<name lang="hu">3F + N + PE</name>
</names>
<elementInformations/>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<dynamic_text z="1" Valignment="AlignTop" x="-7" text_from="ElementInfo" font="Sans Serif,9,-1,5,50,0,0,0,0,0" rotation="0" uuid="{1955f25e-b33b-4106-8b36-46862006122c}" y="-60.45" Halignment="AlignLeft" frame="false" text_width="-1">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="53" text="PE" color="#000000"/>
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="33" text="N" color="#000000"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="50" end1="none" y1="50" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="13" text="L3" color="#000000"/>
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="-7" text="L2" color="#000000"/>
<text x="7" font="Sans Serif,5,-1,5,50,0,0,0,0,0" rotation="0" y="-27" text="L1" color="#000000"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="-30" end1="none" y1="-30" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="-10" end1="none" y1="-10" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="10" end1="none" y1="10" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
<line style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" x1="-15" y2="30" end1="none" y1="30" length1="1.5" length2="1.5" antialias="false" x2="-5"/>
<terminal orientation="w" x="-15" y="50"/>
<terminal orientation="w" x="-15" y="-30"/>
<terminal orientation="w" x="-15" y="-10"/>
<terminal orientation="w" x="-15" y="30"/>
<terminal orientation="w" x="-15" y="10"/>
</description>
</definition>

View File

@@ -1,43 +0,0 @@
<definition height="50" width="30" link_type="terminal" hotspot_x="16" version="0.80" type="element" hotspot_y="29">
<uuid uuid="{a98ac40d-9055-4b9b-88ab-cffe6b08ed37}"/>
<names>
<name lang="ro">Masă</name>
<name lang="pt">Massa</name>
<name lang="cs">Kostra</name>
<name lang="it">Massa</name>
<name lang="nl">Massa</name>
<name lang="el">Γείωση</name>
<name lang="ru">Шасси</name>
<name lang="de">Masse</name>
<name lang="en">Ground</name>
<name lang="pl">Masa</name>
<name lang="es">Masa</name>
<name lang="ar">هيكل معدني</name>
<name lang="fr">Masse</name>
<name lang="hu">Test</name>
</names>
<elementInformations>
<elementInformation name="comment" show="1"></elementInformation>
<elementInformation name="machine_manufacturer_reference" show="1"></elementInformation>
<elementInformation name="manufacturer_reference" show="1"></elementInformation>
<elementInformation name="description" show="1"></elementInformation>
<elementInformation name="manufacturer" show="1"></elementInformation>
<elementInformation name="designation" show="1"></elementInformation>
<elementInformation name="quantity" show="1"></elementInformation>
<elementInformation name="unity" show="1"></elementInformation>
<elementInformation name="supplier" show="1"></elementInformation>
<elementInformation name="plant" show="1"></elementInformation>
<elementInformation name="label" show="1"></elementInformation>
</elementInformations>
<informations>titus
titus0818@yahoo.com</informations>
<description>
<line y1="-16" x1="0" style="line-style:normal;line-weight:hight;filling:none;color:black" end2="none" y2="13" length2="1.5" length1="1.5" x2="0" end1="none" antialias="false"/>
<line y1="14" x1="-13.6493" style="line-style:normal;line-weight:hight;filling:none;color:black" end2="none" y2="14" length2="1.5" length1="1.5" x2="12.62" end1="none" antialias="false"/>
<dynamic_text uuid="{7f02ce13-533d-4501-980d-6cb67bd1110d}" Halignment="AlignLeft" frame="false" x="8" Valignment="AlignTop" text_from="ElementInfo" y="-9" font="Sans Serif,9,-1,5,50,0,0,0,0,0" z="3" rotation="0" text_width="-1">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<terminal x="0" y="-20" orientation="n"/>
</description>
</definition>

View File

@@ -1,31 +0,0 @@
<definition width="20" link_type="simple" version="0.5" hotspot_x="9" height="30" hotspot_y="20" type="element">
<uuid uuid="{5983fe6f-de69-4368-a387-a6ce3b9c2951}"/>
<names>
<name lang="pt">Massa</name>
<name lang="es">Masa</name>
<name lang="nl">Massa</name>
<name lang="el">Σασί</name>
<name lang="de">Masse</name>
<name lang="cs">Kostra</name>
<name lang="pl">Masa</name>
<name lang="it">Massa</name>
<name lang="ar">هيكل معدني</name>
<name lang="en">Chassis</name>
<name lang="fr">Masse</name>
<name lang="ru">Шасси</name>
<name lang="hu">Vázszerkezet</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="3" y="-12.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="5" end2="none" x1="7.5" end1="none" y2="3" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0.5"/>
<line antialias="false" length1="1.5" x2="1.5" end2="none" x1="-1" end1="none" y2="0.5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3"/>
<line antialias="false" length1="1.5" x2="-4.5" end2="none" x1="-7" end1="none" y2="0.5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3"/>
<line antialias="false" length1="1.5" x2="4.5" end2="none" x1="2" end1="none" y2="0.5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3"/>
<line antialias="false" length1="1.5" x2="-1.5" end2="none" x1="-4" end1="none" y2="0.5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="3"/>
<line antialias="false" length1="1.5" x2="8" end2="none" x1="-7" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<line antialias="false" length1="1.5" x2="0" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
<terminal x="0" y="-11" orientation="n"/>
</description>
</definition>

View File

@@ -1,18 +0,0 @@
<qet-directory>
<names>
<name lang="ru">Подвод питания, сеть</name>
<name lang="en">Network sources</name>
<name lang="fr">Sources réseau</name>
<name lang="it">Alimentazione da rete</name>
<name lang="pl">Sieć elektroenergetyczna</name>
<name lang="pt_br">Alimentação</name>
<name lang="de">Netzquellen</name>
<name lang="el">Παροχές δικτύου</name>
<name lang="nl">Netvoedingen</name>
<name lang="cs">Napájení</name>
<name lang="es">Fuentes de red</name>
<name lang="da">Netværkskilder</name>
<name lang="ja">電源網</name>
<name lang="hu">Hálózati források</name>
</names>
</qet-directory>

View File

@@ -1,31 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="60" hotspot_y="30" type="element">
<uuid uuid="{35f2834a-308b-4e79-bc2a-1c00486b24e7}"/>
<names>
<name lang="es">Fuente unipolo + PE +N</name>
<name lang="nl">1 fase + aarde + nul</name>
<name lang="el">Μονοφασικό +N +PE</name>
<name lang="de">Wechselstrom + PE +N</name>
<name lang="cs">Přípojnice 1f+N+PE</name>
<name lang="pl">Linia jednofazowa (trójprzewodowa)</name>
<name lang="it">Sorgente unipolare + PE +N</name>
<name lang="ar">مصدر وحيد القطبية + أرضي PE + محايد N</name>
<name lang="en">Single-pole source + PE +N</name>
<name lang="fr">Source unipolaire + PE +N</name>
<name lang="ru">Однополюсный + PE +N</name>
<name lang="hu">F + N + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="-12" y="-34.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="20"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20"/>
<text x="-12" y="23" size="5" text="PE"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<text x="-12" y="3" size="5" text="N"/>
<text x="-12" y="-17" size="5" text="L"/>
<terminal x="10" y="0" orientation="e"/>
<terminal x="10" y="20" orientation="e"/>
<terminal x="10" y="-20" orientation="e"/>
</description>
</definition>

View File

@@ -1,28 +0,0 @@
<definition width="40" link_type="simple" version="0.5" hotspot_x="22" height="40" hotspot_y="20" type="element">
<uuid uuid="{fd042050-e73b-4f95-b4c1-834aa403b07a}"/>
<names>
<name lang="es">Fuente unipolo + PEN</name>
<name lang="nl">1 fase + aardenul</name>
<name lang="el">Μονοφασικό +PEN</name>
<name lang="de">Wechselstrom + PEN</name>
<name lang="cs">Přípojnice 1f+PEN</name>
<name lang="pl">Linia jednofazowa (TN-C)</name>
<name lang="it">Sorgente unipolare + PEN</name>
<name lang="ar">مصدر وحيد القطبية +PEN</name>
<name lang="en">Single-pole source +PEN</name>
<name lang="fr">Source unipolaire + PEN</name>
<name lang="ru">Однополюсный + PEN</name>
<name lang="hu">F + PEN</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="-7" y="-23.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
<text x="-16" y="12" size="5" text="PEN"/>
<text x="-15" y="-7" size="5" text="L"/>
<terminal x="10" y="-10" orientation="e"/>
<terminal x="10" y="10" orientation="e"/>
</description>
</definition>

View File

@@ -1,29 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="40" hotspot_y="20" type="element">
<uuid uuid="{457a0c01-871c-40fd-83d7-14033333fb95}"/>
<names>
<name lang="pt">Fonte unipolar + neutro</name>
<name lang="es">Fuente unipolo + neutro</name>
<name lang="nl">Wisselspanning L + nul N</name>
<name lang="el">Μονοφασικό + Ουδέτερος</name>
<name lang="de">Wechselstrom L + N</name>
<name lang="cs">Přípojnice 1f+N</name>
<name lang="pl">Linia jednofazowa (dwuprzewodowa)</name>
<name lang="it">Sorgente unipolare + neutro</name>
<name lang="ar">مصدر وحيد القطبية + محايد N</name>
<name lang="en">Single-pole source + neutral</name>
<name lang="fr">Source unipolaire + neutre</name>
<name lang="ru">Однополюсный + нейтраль</name>
<name lang="hu">F + N</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="-5" y="-25.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
<text x="-12" y="13" size="5" text="N"/>
<text x="-12" y="-7" size="5" text="L"/>
<terminal x="10" y="-10" orientation="e"/>
<terminal x="10" y="10" orientation="e"/>
</description>
</definition>

View File

@@ -1,32 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="60" hotspot_y="30" type="element">
<uuid uuid="{03b9e482-cb45-4bee-8030-96b93624fc60}"/>
<names>
<name lang="pt">Fonte tripolar</name>
<name lang="es">Fuente tripolar</name>
<name lang="nl">3fasen</name>
<name lang="el">Τριφασικό</name>
<name lang="de">Drehstrom</name>
<name lang="cs">Přípojnice 3f</name>
<name lang="pl">Linia trójfazowa (trójprzewodowa)</name>
<name lang="it">Sorgente tripolare</name>
<name lang="ar">مصدر ثلاثي القطبيّة</name>
<name lang="en">Three-pole source</name>
<name lang="fr">Source tripolaire</name>
<name lang="ru">Трёхполюсный</name>
<name lang="hu">3F</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="-2" y="-34.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="20"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<text x="-12" y="23" size="5" text="L3"/>
<text x="-12" y="3" size="5" text="L2"/>
<text x="-12" y="-17" size="5" text="L1"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20"/>
<terminal x="10" y="-20" orientation="e"/>
<terminal x="10" y="0" orientation="e"/>
<terminal x="10" y="20" orientation="e"/>
</description>
</definition>

View File

@@ -1,37 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="100" hotspot_y="50" type="element">
<uuid uuid="{0e017749-6c0f-44c0-8726-6804be8bbee7}"/>
<names>
<name lang="es">Fuente tripolar + PE +N</name>
<name lang="nl">driefase + aarde + nul</name>
<name lang="el">Τριφασικό +N +PE</name>
<name lang="de">Drehstrom + PE +N</name>
<name lang="cs">Přípojnice 3f+N+PE</name>
<name lang="pl">Linia trójfazowa (pięcioprzewodowa)</name>
<name lang="it">Sorgente tripolare +PE + N</name>
<name lang="ar">مصدر ثلاثي القطبية + PE + N</name>
<name lang="en">Three-pole source + PE +N</name>
<name lang="fr">Source tripolaire + PE +N</name>
<name lang="ru">Трёхполюсный + PE +N</name>
<name lang="hu">3F + N + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="3" y="-59.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="40"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<text x="-12" y="43" size="5" text="PE"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-20"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="20" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="20"/>
<text x="-12" y="23" size="5" text="N"/>
<text x="-12" y="3" size="5" text="L3"/>
<text x="-12" y="-17" size="5" text="L2"/>
<text x="-12" y="-37" size="5" text="L1"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-40" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-40"/>
<terminal x="10" y="-20" orientation="e"/>
<terminal x="10" y="-40" orientation="e"/>
<terminal x="10" y="0" orientation="e"/>
<terminal x="10" y="20" orientation="e"/>
<terminal x="10" y="40" orientation="e"/>
</description>
</definition>

View File

@@ -1,34 +0,0 @@
<definition width="40" link_type="simple" version="0.5" hotspot_x="23" height="80" hotspot_y="41" type="element">
<uuid uuid="{c0913e95-3b3c-4dc2-a74d-bc73ded78c32}"/>
<names>
<name lang="es">Fuente tripolar + PEN</name>
<name lang="nl">driefasen + aardenul</name>
<name lang="el">Τριφασικό + PEN</name>
<name lang="de">Drehstrom + PEN</name>
<name lang="cs">Přípojnice 3f+PEN</name>
<name lang="pl">Linia trójfazowa (PEN)</name>
<name lang="it">Sorgente tripolare + PEN</name>
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
<name lang="en">Three-pole source + PEN</name>
<name lang="fr">Source tripolaire + PEN</name>
<name lang="ru">Трёхполюсный + PEN</name>
<name lang="hu">3F + PEN</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="-7" y="-49.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
<text x="-18" y="32" size="5" text="PEN"/>
<text x="-18" y="12" size="5" text="L3"/>
<text x="-18" y="-8" size="5" text="L2"/>
<text x="-18" y="-28" size="5" text="L1"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
<terminal x="10" y="-30" orientation="e"/>
<terminal x="10" y="-10" orientation="e"/>
<terminal x="10" y="10" orientation="e"/>
<terminal x="10" y="30" orientation="e"/>
</description>
</definition>

View File

@@ -1,35 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="80" hotspot_y="40" type="element">
<uuid uuid="{8bfb1790-0735-47d5-88a2-8b4d91aba2f1}"/>
<names>
<name lang="pt">Fonte tripolar + neutro</name>
<name lang="es">Fuente tripolar + neutro</name>
<name lang="nl">Driefasen + nul</name>
<name lang="el">Τριφασικό + Ουδέτερος</name>
<name lang="de">Dreiphasig + Neutral</name>
<name lang="cs">Přípojnice 3f+N</name>
<name lang="pl">Linia trójfazowa (czteroprzewodowa)</name>
<name lang="it">Sorgente tripolare + neutro</name>
<name lang="ar">مصدر ثلاثي القطبيّة + محايد</name>
<name lang="en">Three-pole source + neutral</name>
<name lang="fr">Source tripolaire + neutre</name>
<name lang="ru">Трёхполюсный + нейтраль</name>
<name lang="hu">3F + N</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="-7" y="-44.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
<text x="-12" y="33" size="5" text="N"/>
<text x="-12" y="13" size="5" text="L3"/>
<text x="-12" y="-7" size="5" text="L2"/>
<text x="-12" y="-27" size="5" text="L1"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
<terminal x="10" y="10" orientation="e"/>
<terminal x="10" y="30" orientation="e"/>
<terminal x="10" y="-30" orientation="e"/>
<terminal x="10" y="-10" orientation="e"/>
</description>
</definition>

View File

@@ -1,26 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="20" hotspot_y="10" type="element">
<uuid uuid="{b5ad2e41-804d-4745-99be-e8951cffdf98}"/>
<names>
<name lang="pt">Fonte de neutro</name>
<name lang="es">Fuente neutro</name>
<name lang="nl">Nul voeding</name>
<name lang="el">Ουδέτερος</name>
<name lang="de">Neutralleiter</name>
<name lang="cs">Přípojnice N</name>
<name lang="pl">Przewód neutralny</name>
<name lang="it">Sorgente neutro</name>
<name lang="ar">مصدر محايد</name>
<name lang="en">Neutral source</name>
<name lang="fr">Source neutre</name>
<name lang="ru">Нейтраль</name>
<name lang="hu">N</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<input x="-5" y="-14.45" tagg="label" size="9" rotate="true" text="_"/>
<text x="-12" y="3" size="5" text="N"/>
<terminal x="10" y="0" orientation="e"/>
</description>
</definition>

View File

@@ -1,26 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="20" hotspot_y="10" type="element">
<uuid uuid="{7693c5e0-762b-4309-8d97-cb74619f9efd}"/>
<names>
<name lang="pt">Fonte de fase</name>
<name lang="es">Fuente fase</name>
<name lang="nl">Fase</name>
<name lang="el">Φάση</name>
<name lang="de">Phase</name>
<name lang="cs">Přípojnice L</name>
<name lang="pl">Przewód liniowy</name>
<name lang="it">Sorgente fase</name>
<name lang="ar">مصدر وجه</name>
<name lang="en">Phase source</name>
<name lang="fr">Source phase</name>
<name lang="ru">Фаза</name>
<name lang="hu">F</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="-6" y="-14.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="10" end2="none" x1="0" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<text x="-12" y="3" size="5" text="L"/>
<terminal x="10" y="0" orientation="e"/>
</description>
</definition>

View File

@@ -1,49 +0,0 @@
<definition width="70" link_type="simple" version="0.5" hotspot_x="34" height="100" hotspot_y="40" type="element">
<uuid uuid="{4b9794cf-e7c0-4f59-aa0a-bb1fce4dfe48}"/>
<names>
<name lang="es">Punto de distribución TN-C > TN-S</name>
<name lang="nl">Net TN-C > TN-S</name>
<name lang="de">Netz TNC > TNS</name>
<name lang="cs">Bod rozdělení TN-C > TN-S</name>
<name lang="pl">Linia trójfazowa (TN-C-S)</name>
<name lang="it">Punto di distribuzione TN-C</name>
<name lang="ar">نقطة توزيع TN-C &lt; TN-S </name>
<name lang="en">Distribution point TN-C >TN-S</name>
<name lang="fr">Point de distribution TN-C >TN-S</name>
<name lang="ru">Распределительный пункт TN-C >TN-S</name>
<name lang="hu">3F + PEN szétválasztva TN-C-ről TN-S-re</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
<input x="-17" y="-49.45" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
<line antialias="false" length1="1.5" x2="28" end2="none" x1="24" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
<line antialias="false" length1="1.5" x2="-4" end2="none" x1="-6" end1="none" y2="54" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="54"/>
<line antialias="false" length1="1.5" x2="-2" end2="none" x1="-8" end1="none" y2="52" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="52"/>
<line antialias="false" length1="1.5" x2="0" end2="none" x1="-10" end1="none" y2="50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
<text x="13" y="53" size="5" text="PE"/>
<text x="13" y="33" size="5" text="N"/>
<text x="13" y="13" size="5" text="L3"/>
<text x="13" y="-7" size="5" text="L2"/>
<text x="13" y="-27" size="5" text="L1"/>
<line antialias="false" length1="1.5" x2="12" end2="none" x1="-13" end1="none" y2="10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10"/>
<line antialias="false" length1="1.5" x2="12" end2="none" x1="7" end1="none" y2="50" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
<line antialias="false" length1="1.5" x2="12" end2="none" x1="-13" end1="none" y2="-10" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-10"/>
<line antialias="false" length1="1.5" x2="12" end2="none" x1="-13" end1="none" y2="30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="30"/>
<text x="-30" y="33" size="5" text="PEN"/>
<text x="-30" y="13" size="5" text="L3"/>
<text x="-30" y="-7" size="5" text="L2"/>
<text x="-30" y="-27" size="5" text="L1"/>
<line antialias="false" length1="1.5" x2="12" end2="none" x1="-13" end1="none" y2="-30" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-30"/>
<polygon antialias="true" x2="-5" x1="7" x3="-5" y2="30" y3="49" closed="false" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="50"/>
<terminal x="30" y="-10" orientation="e"/>
<terminal x="30" y="10" orientation="e"/>
<terminal x="30" y="30" orientation="e"/>
<terminal x="30" y="50" orientation="e"/>
<terminal x="30" y="-30" orientation="e"/>
</description>
</definition>

View File

@@ -1,44 +0,0 @@
<definition height="30" width="20" link_type="terminal" hotspot_x="10" version="0.80" type="element" hotspot_y="19">
<uuid uuid="{e4e753a8-9fde-4e8e-9256-0cf99d67e3de}"/>
<names>
<name lang="pt">Terra</name>
<name lang="cs">Uzemnění</name>
<name lang="it">Terra</name>
<name lang="el">Γείωση</name>
<name lang="nl">Aarde</name>
<name lang="ru">Земля</name>
<name lang="de">Erde</name>
<name lang="en">Ground</name>
<name lang="pl">Uziemienie</name>
<name lang="es">Tierra</name>
<name lang="ar">تأريض</name>
<name lang="fr">Terre</name>
<name lang="hu">Földelő</name>
</names>
<elementInformations>
<elementInformation name="comment" show="1"></elementInformation>
<elementInformation name="machine_manufacturer_reference" show="1"></elementInformation>
<elementInformation name="manufacturer_reference" show="1"></elementInformation>
<elementInformation name="description" show="1"></elementInformation>
<elementInformation name="manufacturer" show="1"></elementInformation>
<elementInformation name="designation" show="1"></elementInformation>
<elementInformation name="quantity" show="1"></elementInformation>
<elementInformation name="unity" show="1"></elementInformation>
<elementInformation name="supplier" show="1"></elementInformation>
<elementInformation name="plant" show="1"></elementInformation>
<elementInformation name="label" show="1"></elementInformation>
</elementInformations>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<dynamic_text uuid="{0af57a27-1887-4576-8b51-200ca996e582}" Halignment="AlignLeft" frame="false" x="2" Valignment="AlignTop" text_from="ElementInfo" y="-22.5" font="Sans Serif,9,-1,5,50,0,0,0,0,0" z="1" rotation="0" text_width="-1">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<line y1="4" x1="-3" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" y2="4" length2="1.5" length1="1.5" x2="3" end1="none" antialias="false"/>
<line y1="2" x1="-5" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" y2="2" length2="1.5" length1="1.5" x2="5" end1="none" antialias="false"/>
<line y1="0" x1="-7" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" y2="0" length2="1.5" length1="1.5" x2="7" end1="none" antialias="false"/>
<line y1="-10" x1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" y2="0" length2="1.5" length1="1.5" x2="0" end1="none" antialias="false"/>
<terminal x="0" y="-11" orientation="n"/>
</description>
</definition>

View File

@@ -1,23 +0,0 @@
<definition width="20" version="0.90" type="element" height="20" hotspot_y="9" link_type="simple" hotspot_x="9">
<uuid uuid="{1eefef79-1c23-413b-873a-3d84f4aa5c25}"/>
<names>
<name lang="fr">connexion</name>
<name lang="en">connection</name>
<name lang="cs">Bod</name>
<name lang="de">Verbindung</name>
<name lang="hu">Keresztezés pont alakzatban</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<circle y="-2" style="line-style:normal;line-weight:normal;filling:black;color:black" antialias="false" diameter="4" x="-2"/>
<dynamic_text y="-14.5" Valignment="AlignTop" keep_visual_rotation="false" text_from="ElementInfo" uuid="{2aef950d-c62d-4d3c-939b-3e81653d5244}" Halignment="AlignLeft" x="-11" font="Sans Serif,9,-1,5,50,0,0,0,0,0" rotation="0" z="2" text_width="-1" frame="false">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<terminal y="0" type="Generic" uuid="{9cc2fc56-976f-49ac-a0f8-63eb85f716c2}" orientation="e" x="2" name=""/>
<terminal y="0" type="Generic" uuid="{3c4b4f5e-98a2-4daa-9a47-40b8e018166e}" orientation="w" x="-2" name=""/>
<terminal y="2" type="Generic" uuid="{8d99aa04-def0-4573-a0e8-41229ed2f1dc}" orientation="s" x="0" name=""/>
<terminal y="-2" type="Generic" uuid="{f2e49ff6-ee59-492e-a6ad-82708479afd6}" orientation="n" x="0" name=""/>
</description>
</definition>

View File

@@ -1,27 +0,0 @@
<definition hotspot_x="11" hotspot_y="4" version="0.70" type="element" height="20" link_type="terminal" width="30">
<uuid uuid="{141e7e1e-4f7f-456d-9f04-52c32109b969}"/>
<names>
<name lang="en">Combine</name>
<name lang="de">Klemmstelle (2)</name>
<name lang="fr">Jonction</name>
<name lang="es">Unión</name>
<name lang="it">Collegamento</name>
<name lang="pl">Połączenie 1</name>
<name lang="ar">وصلة</name>
<name lang="ru">Соединение</name>
<name lang="cs">Spoj</name>
<name lang="hu">Egyesítő három vezetékhez</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<line end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" antialias="false" x1="7" length1="1.5" x2="1" y2="0" length2="1.5" end1="none"/>
<dynamic_text text_from="UserText" y="8.5" uuid="{43af2b14-2822-4ba2-988b-bda2005f69fd}" x="2" frame="false" z="2" rotation="0" text_width="-1" font_size="1">
<text>_</text>
</dynamic_text>
<line end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="6" antialias="false" x1="0" length1="1.5" x2="6" y2="0" length2="1.5" end1="none"/>
<terminal y="0" x="-4" orientation="w"/>
<terminal y="10" x="0" orientation="s"/>
<terminal y="0" x="10" orientation="e"/>
</description>
</definition>

View File

@@ -1,25 +0,0 @@
<definition link_type="terminal" width="20" height="20" hotspot_y="7" type="element" version="0.80" hotspot_x="11">
<uuid uuid="{95725a69-d9bf-4186-938c-1f1b9256530b}"/>
<names>
<name lang="it">Angolo</name>
<name lang="fr">Coin</name>
<name lang="pl">Narożnik</name>
<name lang="ar">ركن</name>
<name lang="es">Esquina</name>
<name lang="ru">Угол</name>
<name lang="en">Corner</name>
<name lang="de">Ecke</name>
<name lang="cs">Roh</name>
<name lang="hu">Sarok</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<dynamic_text rotation="0" font="Sans Serif,9,-1,5,0,0,0,0,0,0,normal" text_width="-1" x="-0.5" z="1" Halignment="AlignLeft" Valignment="AlignTop" text_from="UserText" frame="false" y="-5.45" uuid="{9b8dd22d-096a-4989-b6f7-1de9e0339f53}">
<text>_</text>
</dynamic_text>
<polygon style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-4" y2="0" y1="0" antialias="false" x2="0" x3="0" y3="4" closed="false"/>
<terminal name="" orientation="w" x="-4" y="0" uuid="{e1ea331a-7456-47f0-b991-0a2299d3023c}"/>
<terminal name="" orientation="s" x="0" y="4" uuid="{eacfd29f-4682-41c2-9783-cedb80773f13}"/>
</description>
</definition>

View File

@@ -1,29 +0,0 @@
<definition hotspot_y="9" link_type="terminal" height="20" hotspot_x="9" version="0.80" type="element" width="20">
<uuid uuid="{30794dcd-a269-4b6b-8231-c88d89a91e27}"/>
<names>
<name lang="cs">Kříž</name>
<name lang="ar">صليب</name>
<name lang="hu">Kereszt alakú</name>
<name lang="it">Croce</name>
<name lang="pl">Połączenie 2</name>
<name lang="ru">Пересечение</name>
<name lang="fr">Croix</name>
<name lang="de">Kreuz</name>
<name lang="en">Cross</name>
<name lang="es">Cruzar</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<circle y="-1" x="-1" antialias="true" diameter="2" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
<dynamic_text y="-9.45" text_width="-1" x="-0.5" text_from="UserText" Valignment="AlignTop" rotation="0" Halignment="AlignLeft" z="2" frame="false" font="Sans Serif,9,-1,5,0,0,0,0,0,0,normal" uuid="{fc5c039b-1fca-40d9-a6ff-a9e1775de38b}">
<text>_</text>
</dynamic_text>
<line y1="0" y2="0" x1="-4" antialias="false" end1="none" length1="1.5" length2="1.5" x2="4" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line y1="-4" y2="4" x1="0" antialias="false" end1="none" length1="1.5" length2="1.5" x2="0" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<terminal y="-4" name="" x="0" orientation="n" uuid="{667d83d2-8840-40ec-bf41-8dc659926fe2}"/>
<terminal y="4" name="" x="0" orientation="s" uuid="{c9b40e74-5d24-4cd5-9dc7-3be318007661}"/>
<terminal y="0" name="" x="-4" orientation="w" uuid="{935e3f1e-3dc0-4b41-8252-6e7ee9f1a3e1}"/>
<terminal y="0" name="" x="4" orientation="e" uuid="{340c983a-1f7e-4939-b844-c50c8e28302d}"/>
</description>
</definition>

View File

@@ -1,25 +0,0 @@
<definition width="10" hotspot_y="14" hotspot_x="5" height="30" link_type="terminal" version="0.70" type="element">
<uuid uuid="{b5abb4c2-455d-45ff-95f2-328521f4e2e1}"/>
<names>
<name lang="en">Jump</name>
<name lang="de">Sprung</name>
<name lang="fr">Saut</name>
<name lang="ar">قفز</name>
<name lang="cs">Skok</name>
<name lang="it">Salto</name>
<name lang="pl">Brak połączenia</name>
<name lang="ru">Перемычка</name>
<name lang="es">Puente</name>
<name lang="hu">Átugrás összekötés nélkül</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<arc x="-3" antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" width="6" start="90" y="-3" height="6" angle="-180"/>
<dynamic_text font_size="1" x="1.5" text_from="UserText" z="2" y="-11.45" rotation="0" uuid="{1a3e4d91-15cc-424b-99d0-25930d779fb6}" frame="false" text_width="-1">
<text>_</text>
</dynamic_text>
<terminal x="0" y="-7" orientation="n"/>
<terminal x="0" y="7" orientation="s"/>
</description>
</definition>

View File

@@ -1,24 +0,0 @@
<definition type="element" width="30" hotspot_y="12" version="0.90" height="30" link_type="simple" hotspot_x="14">
<uuid uuid="{9b3513fd-694f-4fc7-8b7e-66b733b9b4e1}"/>
<names>
<name lang="de">Klemmstelle (3)</name>
<name lang="cs">Všestranný spoj</name>
<name lang="hu">Egyesítő négy vezetékhez</name>
<name lang="fr">
Connecteur pour quatre fils</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<dynamic_text frame="false" text_width="-1" rotation="0" Halignment="AlignLeft" y="-12" x="-13" keep_visual_rotation="true" uuid="{14c0b70c-c028-49ef-bf72-3c3c9cd64669}" Valignment="AlignTop" z="2" font="Sans Serif,9,-1,5,50,0,0,0,0,0" text_from="ElementInfo">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<polygon x1="-10" y2="0" x4="5" y3="5" x3="0" x5="10" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" y4="0" antialias="false" x2="-5" y5="0" closed="false"/>
<line x1="0" y2="10" length2="1.5" end1="none" length1="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" y1="-5" antialias="false" x2="0"/>
<terminal type="Generic" name="" y="0" x="10" uuid="{06bf5c9f-6986-45bf-b11f-02e876abc4b8}" orientation="e"/>
<terminal type="Generic" name="" y="-5" x="0" uuid="{33c03677-8555-4b42-ae2c-4b4308978086}" orientation="n"/>
<terminal type="Generic" name="" y="0" x="-10" uuid="{95bef6e9-343e-45d7-9705-4aa81f62bed0}" orientation="w"/>
<terminal type="Generic" name="" y="10" x="0" uuid="{e9329e22-255b-4763-9dc6-65da277e1ac7}" orientation="s"/>
</description>
</definition>

View File

@@ -1,18 +0,0 @@
<qet-directory>
<names>
<name lang="ru">Соединения</name>
<name lang="de">Verbindungen</name>
<name lang="en">Connections</name>
<name lang="fr">Connections</name>
<name lang="it">Collegamenti</name>
<name lang="pl">Połączenia</name>
<name lang="pt_br">Conexões</name>
<name lang="cs">Spojení</name>
<name lang="el">Ενώσεις</name>
<name lang="nl">Verbindingen</name>
<name lang="es">Conexiones</name>
<name lang="da">Forbindelser</name>
<name lang="ja">接続</name>
<name lang="hu">Csatlakozások</name>
</names>
</qet-directory>

View File

@@ -1,26 +0,0 @@
<definition width="30" version="0.80" hotspot_x="17" hotspot_y="4" link_type="terminal" type="element" height="20">
<uuid uuid="{5a3d6c01-db95-45ec-be2c-dd861938525b}"/>
<names>
<name lang="fr">Epissure</name>
<name lang="cs">Spojka</name>
<name lang="es">Empalme</name>
<name lang="pl">Połączenie 3</name>
<name lang="it">Spaziatura</name>
<name lang="en">Splice</name>
<name lang="de">Spleiß</name>
<name lang="hu">Egyesítő három vezetékhez</name>
<name lang="ru">Сращивание</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<dynamic_text Valignment="AlignTop" y="-1.45" text_width="-1" frame="false" x="1.5" Halignment="AlignLeft" uuid="{b653b162-d4c8-4660-a5ca-e6ca05a56de9}" text_from="ElementInfo" font="Sans Serif,9,-1,5,0,0,0,0,0,0,normal" rotation="0" z="1">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<polygon y1="0" y2="0" style="line-style:normal;line-weight:normal;filling:none;color:black" x4="0" y4="5" x3="-5" antialias="false" x2="-10" y5="10" x5="0" closed="false" x1="4" y3="0"/>
<terminal y="10" x="0" uuid="{1d3bb613-e8e2-4bcd-8515-ff9a0459b3c3}" name="" orientation="s"/>
<terminal y="0" x="-10" uuid="{367dd739-791b-4d8f-9e49-4a70fd990b19}" name="" orientation="w"/>
<terminal y="0" x="4" uuid="{f75b8c8d-508b-4346-a6df-8cda82201d98}" name="" orientation="e"/>
</description>
</definition>

View File

@@ -1,27 +0,0 @@
<definition height="20" version="0.80" hotspot_x="17" link_type="terminal" width="30" type="element" hotspot_y="4">
<uuid uuid="{3dd412d9-6882-42ae-9f5f-eb04f2224214}"/>
<names>
<name lang="hu">Balra továbbmenő leágazás</name>
<name lang="es">A la izquierda</name>
<name lang="ar">ربط يسار</name>
<name lang="pl">Połączenie 4</name>
<name lang="it">Collegamento sinistro</name>
<name lang="ru">Справа налево</name>
<name lang="de">Abzweig links</name>
<name lang="en">Thru left</name>
<name lang="fr">Liaison gauche</name>
<name lang="cs">Levé spojení</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<dynamic_text text_width="-1" text_from="UserText" Valignment="AlignTop" x="1.5" frame="false" rotation="0" uuid="{5ff9bef8-b6a8-4cf8-ba82-4dabe7b1820f}" z="1" y="-1.45" Halignment="AlignLeft" font="Sans Serif,9,-1,5,0,0,0,0,0,0,normal">
<text>_</text>
</dynamic_text>
<polygon y1="0" x4="0" x2="-5" x3="0" antialias="false" y2="0" y3="5" style="line-style:normal;line-weight:normal;filling:none;color:black" y4="10" x1="-10" closed="false"/>
<polygon y1="10" x2="0" x3="4" antialias="false" y2="0" y3="0" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="0" closed="false"/>
<terminal x="0" uuid="{46980c8f-3fb1-4993-b1ec-6f3b60832fab}" orientation="s" name="" y="10"/>
<terminal x="-10" uuid="{401a02b0-a3d8-4f09-bd65-c4a6ad782686}" orientation="w" name="" y="0"/>
<terminal x="4" uuid="{223e7aaa-f9ff-47e6-b901-89471848b8de}" orientation="e" name="" y="0"/>
</description>
</definition>

View File

@@ -1,27 +0,0 @@
<definition width="30" type="element" hotspot_x="14" version="0.80" hotspot_y="4" height="20" link_type="terminal">
<uuid uuid="{8e68cb1a-e9d8-42e4-aa67-aca8b6e6b32d}"/>
<names>
<name lang="it">Collegamento destro</name>
<name lang="fr">Liaison droite</name>
<name lang="ru">Слева направо</name>
<name lang="hu">Jobbra továbbmenő leágazás</name>
<name lang="cs">Pravé spojení</name>
<name lang="de">Abzweig rechts</name>
<name lang="en">Thru right</name>
<name lang="es">A la derecha</name>
<name lang="pl">Połączenie 5</name>
<name lang="ar">ربط يمين</name>
</names>
<elementInformations/>
<informations></informations>
<description>
<dynamic_text z="1" Halignment="AlignLeft" text_width="-1" y="-0.45" uuid="{ab829572-e7d6-4e5c-9c6e-a0852fea788e}" font="Sans Serif,9,-1,5,0,0,0,0,0,0,normal" Valignment="AlignTop" text_from="UserText" x="5.5" frame="false" rotation="0">
<text>_</text>
</dynamic_text>
<polygon y4="0" x4="10" x1="0" y2="5" style="line-style:normal;line-weight:normal;filling:none;color:black" x3="5" closed="false" y1="10" y3="0" x2="0" antialias="false"/>
<polygon x1="0" y2="0" style="line-style:normal;line-weight:normal;filling:none;color:black" x3="-10" closed="false" y1="10" y3="0" x2="0" antialias="false"/>
<terminal y="0" uuid="{53d9bb7f-b045-4581-bc2d-7a9198286e89}" name="" orientation="w" x="-10"/>
<terminal y="10" uuid="{7883adda-c1cd-4e21-93f5-330d9c7461ea}" name="" orientation="s" x="0"/>
<terminal y="0" uuid="{053ce092-f1df-46a5-8960-e4c6fcea95d1}" name="" orientation="e" x="10"/>
</description>
</definition>

View File

@@ -1,26 +0,0 @@
<definition width="120" version="0.3" hotspot_x="71" hotspot_y="10" height="40" type="element">
<names>
<name lang="ar">كايبل طورين + تأريض</name>
<name lang="de">Kabel 3G</name>
<name lang="ru">Кабель 2 жилы + PE</name>
<name lang="it">Cavo 2 fasi + terra</name>
<name lang="fr">Cable 2 phases+terre</name>
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
<name lang="es">Cable 2 fases+tierra</name>
<name lang="cs">Kabel 3G</name>
<name lang="hu">Kábel 2 + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<text x="12" y="9" size="4" text="2"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="26.95" y2="11.95" x2="30.95"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="8" y2="12" x2="12"/>
<text x="30.5" y="8.55" size="4" text="GNYE"/>
<input x="-68" y="17" size="3" rotate="true" text="210007&#xa;4G1,5 mm²&#xa; 4m"/>
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="-39.9373" y2="10" x2="37.932"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="-32" y2="12" x2="-28"/>
<text x="-28" y="9" size="4" text="1"/>
<input x="-61" y="1" size="5" rotate="true" text="+"/>
</description>
</definition>

View File

@@ -1,28 +0,0 @@
<definition width="120" version="0.3" hotspot_x="70" hotspot_y="10" height="40" type="element">
<names>
<name lang="ar">كايبل ثلاثي الطور + تأريض</name>
<name lang="de">Kabel 4G</name>
<name lang="ru">Кабель 3 жилы + PE</name>
<name lang="it">Cavo 3 fasi + terra</name>
<name lang="fr">Cable 3 phases+terre</name>
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
<name lang="es">Cable 3 fases+tierra</name>
<name lang="cs">Kabel 4G</name>
<name lang="hu">Kábel 3 + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-12.05" y2="11.95" x2="-8.05"/>
<text x="-9" y="9" size="4" text="2"/>
<text x="12" y="9" size="4" text="3"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="26.95" y2="11.95" x2="30.95"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="8" y2="12" x2="12"/>
<text x="32" y="9" size="4" text="GNYE"/>
<input x="-68" y="17" size="3" rotate="true" text="210007&#xa;4G1,5 mm²&#xa; 4m"/>
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="-39.9373" y2="10" x2="37.932"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="-32" y2="12" x2="-28"/>
<text x="-28" y="9" size="4" text="1"/>
<input x="-61" y="1" size="5" rotate="true" text="+"/>
</description>
</definition>

View File

@@ -1,26 +0,0 @@
<definition width="100" version="0.3" hotspot_x="60" hotspot_y="10" height="40" type="element">
<names>
<name lang="ar">كايبل بطورين و تأريض</name>
<name lang="de">Kabel 3G</name>
<name lang="ru">Кабель 2 жилы + PE</name>
<name lang="it">Cavo 2 fasi + terra</name>
<name lang="fr">Cable 2 phases+terre</name>
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
<name lang="es">Cable 2 fases+tierra</name>
<name lang="cs">Kabel 3G</name>
<name lang="hu">Kábel 2 + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="17.95" y2="11.95" x2="21.95"/>
<text x="2" y="9" size="4" text="2"/>
<text x="23" y="9" size="4" text="GNYE"/>
<input x="-58" y="17" size="3" rotate="true" text="210007&#xa;4G1,5 mm²&#xa; 4m"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-2.05" y2="11.95" x2="1.95"/>
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="-30.2509" y2="10" x2="27.2717"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="-22" y2="12" x2="-18"/>
<text x="-18" y="9" size="4" text="1"/>
<input x="-51" y="1" size="5" rotate="true" text="+"/>
</description>
</definition>

View File

@@ -1,26 +0,0 @@
<definition width="130" version="0.3" hotspot_x="88" hotspot_y="18" height="40" type="element">
<names>
<name lang="ar">كايبل رباعي النواة</name>
<name lang="It">Cavo ? 4G</name>
<name lang="fr">Cable 4G</name>
<name lang="pl">Przewód czterożyłowy</name>
<name lang="es">Cable 4G</name>
<name lang="cs">Kabel 4G</name>
<name lang="hu">Kábel 3 + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-33.05" y2="11.95" x2="-29.05"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="7.95" x1="-13.05" y2="11.95" x2="-9.05"/>
<text x="31" y="9" size="4" text="3"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="27" y2="12" x2="31"/>
<text x="-10" y="9" size="4" text="1"/>
<text x="11" y="9" size="4" text="2"/>
<line length1="1.5" length2="1.5" antialias="true" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="8" x1="7" y2="12" x2="11"/>
<input x="-82" y="2.5" size="6" rotate="true" text="type?&#xa;4G_ mm²"/>
<line length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="10" x1="-31" y2="10" x2="29"/>
<text x="-31" y="9" size="4" text="GNYE"/>
<input x="-62" y="1" size="5" rotate="true" text=""/>
</description>
</definition>

View File

@@ -1,28 +0,0 @@
<definition hotspot_y="3" version="0.51" hotspot_x="47" link_type="simple" width="100" type="element" height="20">
<uuid uuid="{9923c1a5-b49a-4243-923e-cde9d916ea2b}"/>
<names>
<name lang="fr">Cable 5G</name>
<name lang="it">Cavo Type 5G</name>
<name lang="es">Cable 5G</name>
<name lang="pl">Przewód pięciożyłowy</name>
<name lang="cs">Kabel 5G</name>
<name lang="hu">Kábel 4 + N + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line end1="none" x1="-42.05" y1="7.95" x2="-38.05" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line end1="none" x1="-22.05" y1="7.95" x2="-18.05" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="2" size="4" y="9" x="22"/>
<line end1="none" x1="18" y1="8" x2="22" length1="1.5" y2="12" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="BL" size="4" y="9" x="-19"/>
<text text="1" size="4" y="9" x="2"/>
<line end1="none" x1="37.95" y1="7.95" x2="41.95" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line end1="none" x1="-2" y1="8" x2="2" length1="1.5" y2="12" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="3" size="4" y="9" x="43"/>
<input text="Type?&#xa;5G_ mm²" size="6" rotate="true" y="2" x="-85" tagg="label"/>
<line end1="none" x1="-40" y1="10" x2="40" length1="1.5" y2="10" antialias="false" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="GNYE" size="4" y="9" x="-40"/>
<input text="" size="5" rotate="true" y="1" x="-71" tagg="none"/>
</description>
</definition>

View File

@@ -1,24 +0,0 @@
<definition hotspot_y="3" version="0.51" hotspot_x="29" link_type="simple" width="60" type="element" height="20">
<uuid uuid="{5f981421-4c54-4cd5-929e-7f77dab94fef}"/>
<names>
<name lang="It">Cavo ? 3G</name>
<name lang="fr">Cable 3G</name>
<name lang="es">Cable 3G</name>
<name lang="pl">Przewód trójżyłowy</name>
<name lang="cs">Kabel 3G</name>
<name lang="hu">Kábel 2 + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line end1="none" x1="-23.05" y1="7.95" x2="-19.05" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<line end1="none" x1="-3.05" y1="7.95" x2="0.95" length1="1.5" y2="11.95" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="1" size="4" y="9" x="0"/>
<text text="2" size="4" y="9" x="21"/>
<line end1="none" x1="17" y1="8" x2="21" length1="1.5" y2="12" antialias="true" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<input text="type?&#xa;3G_ mm²" size="6" rotate="true" y="2.5" x="-72" tagg="label"/>
<line end1="none" x1="-21" y1="10" x2="20" length1="1.5" y2="10" antialias="false" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
<text text="GNYE" size="4" y="9" x="-21"/>
<input text="" size="5" rotate="true" y="1" x="-52" tagg="none"/>
</description>
</definition>

View File

@@ -1,26 +0,0 @@
<definition width="70" link_type="simple" version="0.5" hotspot_x="15" height="20" hotspot_y="9" type="element">
<uuid uuid="{4b9a04b1-0d35-4d54-b5cb-b573ed3a9b0d}"/>
<names>
<name lang="de">Kabel 3x</name>
<name lang="cs">Kabel 3x</name>
<name lang="pl">Oznaczenie przewodu trójżyłowego</name>
<name lang="it">Cavo a 3 conduttori</name>
<name lang="en">Cable 3 wires</name>
<name lang="es">Cable 3 alambres</name>
<name lang="fr">Cable 3 brins</name>
<name lang="ru">Кабель 3 жилы</name>
<name lang="hu">Kábel 3 + PE</name>
</names>
<informations></informations>
<description>
<line antialias="false" length1="1.5" x2="50" end2="none" x1="-10" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<input x="-36" y="-6" tagg="label" size="7" rotate="true" text="-W?"/>
<input x="-56" y="4.5" tagg="none" size="5" rotate="true" text="ÖLFLEX 100"/>
<terminal x="0" y="-5" orientation="n"/>
<terminal x="20" y="-5" orientation="n"/>
<terminal x="40" y="-5" orientation="n"/>
<terminal x="0" y="5" orientation="s"/>
<terminal x="20" y="5" orientation="s"/>
<terminal x="40" y="5" orientation="s"/>
</description>
</definition>

View File

@@ -1,24 +0,0 @@
<definition width="60" link_type="simple" version="0.5" hotspot_x="21" height="10" hotspot_y="-6" type="element">
<uuid uuid="{822e6fc1-0104-4d3a-ba3c-995c24c79cf2}"/>
<names>
<name lang="nl">Scherm</name>
<name lang="el">Πλέγμα</name>
<name lang="de">Schirm</name>
<name lang="cs">Stínění</name>
<name lang="pl">Ekran 3</name>
<name lang="it">Schermo</name>
<name lang="ar">شاشة</name>
<name lang="en">Screen</name>
<name lang="es">Pantalla</name>
<name lang="fr">Ecran</name>
<name lang="ru">Экран</name>
<name lang="hu">Árnyékolás</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<ellipse width="50" x="-15" antialias="true" y="7.5" height="5" style="line-style:dotted;line-weight:normal;filling:none;color:black"/>
<input x="-9" y="-2.45" tagg="label" size="9" rotate="true" text="_"/>
<terminal x="-15" y="10" orientation="w"/>
</description>
</definition>

View File

@@ -1,22 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="20" hotspot_y="9" type="element">
<uuid uuid="{6ac285f9-6492-40cb-be58-9ba565ea1921}"/>
<names>
<name lang="de">Kabelader</name>
<name lang="cs">Vodič kabelu</name>
<name lang="pl">Połączenie przewodu</name>
<name lang="it">Conduttore di un cavo</name>
<name lang="en">Wire of cable</name>
<name lang="es">Alambre del cable</name>
<name lang="fr">Fil de cable</name>
<name lang="ru">Жила кабеля</name>
<name lang="hu">Kábelér</name>
</names>
<informations></informations>
<description>
<line antialias="false" length1="1.5" x2="9.82672" end2="none" x1="-9.76313" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<input x="1" y="-11.5" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="0" end2="none" x1="0" end1="none" y2="4.11304" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-4.10435"/>
<terminal x="0" y="5" orientation="s"/>
<terminal x="0" y="-5" orientation="n"/>
</description>
</definition>

View File

@@ -1,21 +0,0 @@
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" height="20" hotspot_y="9" type="element">
<uuid uuid="{374ed6b3-7329-4cad-ac8c-200b17508460}"/>
<names>
<name lang="de">Verdrahtung</name>
<name lang="cs">Vodič kabelu</name>
<name lang="pl">Oznaczenie przewodu</name>
<name lang="it">Conduttura</name>
<name lang="en">Wiring</name>
<name lang="es">Alambrado</name>
<name lang="fr">Filerie</name>
<name lang="hu">Vezeték</name>
</names>
<informations></informations>
<description>
<line antialias="false" length1="1.5" x2="-5" end2="none" x1="5" end1="none" y2="5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-5"/>
<input x="0" y="-2.5" tagg="label" size="9" rotate="true" text="_"/>
<line antialias="false" length1="1.5" x2="0" end2="none" x1="0" end1="none" y2="5" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-5"/>
<terminal x="0" y="-5" orientation="n"/>
<terminal x="0" y="5" orientation="s"/>
</description>
</definition>

View File

@@ -1,34 +0,0 @@
<definition width="70" hotspot_x="35" hotspot_y="5" version="0.80" type="element" height="10" link_type="simple">
<uuid uuid="{3cfdc90d-f114-4ecd-9ab2-37786c279287}"/>
<names>
<name lang="de">Kabel 3G</name>
<name lang="fr">Cable 3G</name>
<name lang="cs">Kabel 3G</name>
<name lang="hu">Kábel 2 + PE</name>
</names>
<elementInformations/>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line x2="1.95" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2.05" length2="1.5" antialias="true" y2="1.95" end2="none" x1="-2.05" length1="1.5"/>
<line x2="22" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2" length2="1.5" antialias="true" y2="2" end2="none" x1="18" length1="1.5"/>
<dynamic_text text_width="-1" font="Sans Serif,7,-1,5,50,0,0,0,0,0" Halignment="AlignLeft" z="3" Valignment="AlignTop" frame="false" x="-50" uuid="{fe752adf-2e2b-4005-a272-42dd6976c493}" y="0.5" text_from="UserText" rotation="0">
<text>3G</text>
</dynamic_text>
<line x2="30" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" length2="1.5" antialias="false" y2="0" end2="none" x1="-29.9373" length1="1.5"/>
<line x2="-18" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2" length2="1.5" antialias="true" y2="2" end2="none" x1="-22" length1="1.5"/>
<dynamic_text text_width="-1" font="Sans Serif,7,-1,5,50,0,0,0,0,0" Halignment="AlignLeft" z="6" Valignment="AlignTop" frame="false" x="-51" uuid="{65bfd07e-7af5-4193-a5ba-b3dc967da121}" y="-18.5" text_from="ElementInfo" rotation="0">
<text></text>
<info_name>label</info_name>
</dynamic_text>
<dynamic_text text_width="-1" font="Sans Serif,4,-1,5,25,0,0,0,0,0" Halignment="AlignLeft" z="7" Valignment="AlignTop" frame="false" x="-22" uuid="{df01c7dd-b2e7-4b24-9057-b8bc3478ff67}" y="-11" text_from="UserText" rotation="0">
<text>1</text>
</dynamic_text>
<dynamic_text text_width="-1" font="Sans Serif,4,-1,5,25,0,0,0,0,0" Halignment="AlignLeft" z="8" Valignment="AlignTop" frame="false" x="-2" uuid="{ce5a0030-5247-47ab-a975-63256db0d2bd}" y="-11" text_from="UserText" rotation="0">
<text>2</text>
</dynamic_text>
<dynamic_text text_width="-1" font="Sans Serif,4,-1,5,25,0,0,0,0,0" Halignment="AlignLeft" z="9" Valignment="AlignTop" frame="false" x="18" uuid="{e0a00f86-dd76-48fe-be8b-8ff6f510e651}" y="-11" text_from="UserText" rotation="0">
<text>PE</text>
</dynamic_text>
</description>
</definition>

View File

@@ -1,28 +0,0 @@
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="36" hotspot_y="5" width="90">
<uuid uuid="{e02f4582-b5dd-4f81-ba71-e3d5521b4152}"/>
<names>
<name lang="ru">Кабель 3 жилы + PE</name>
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
<name lang="cs">Kabel 4G</name>
<name lang="de">Kabel 4G</name>
<name lang="es">Cable 3 fases+tierra</name>
<name lang="it">Cavo 3 fasi + terra</name>
<name lang="fr">Cable 3 phases+terre</name>
<name lang="hu">Kábel 3 + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line x1="-2.05" y1="-2.05" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="1.95" y2="1.95" antialias="true"/>
<line x1="37.95" y1="-2.05" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="41.95" y2="1.95" antialias="true"/>
<line x1="18" y1="-2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="22" y2="2" antialias="true"/>
<input size="7" tagg="none" rotate="true" x="-50" y="10" text="4G"/>
<line x1="-29.9373" y1="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="47.932" y2="0" antialias="false"/>
<line x1="-22" y1="-2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="-18" y2="2" antialias="true"/>
<input size="7" tagg="label" rotate="true" x="-51" y="-9" text="_"/>
<input size="4" tagg="none" rotate="true" x="-22" y="-4" text="1"/>
<input size="4" tagg="none" rotate="true" x="-2" y="-4" text="2"/>
<input size="4" tagg="none" rotate="true" x="18" y="-4" text="3"/>
<input size="4" tagg="none" rotate="true" x="38" y="-4" text="PE"/>
</description>
</definition>

View File

@@ -1,34 +0,0 @@
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="73" hotspot_y="5" width="150">
<uuid uuid="{d1007c67-032b-4925-8560-aac9e547d6ae}"/>
<names>
<name lang="ru">Кабель 6 жилы + PE</name>
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
<name lang="cs">Kabel 7G</name>
<name lang="de">Kabel 7G</name>
<name lang="es">Cable 6 fases+tierra</name>
<name lang="it">Cavo fasi + terra</name>
<name lang="fr">Cable 6 phases+terre</name>
<name lang="hu">Kábel 6 + PE</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input size="4" tagg="none" rotate="true" x="38" y="-4" text="6"/>
<input size="4" tagg="none" rotate="true" x="18" y="-4" text="5"/>
<input size="4" tagg="none" rotate="true" x="-2" y="-4" text="4"/>
<line x1="57.95" y1="-2.05" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="61.95" y2="1.95" antialias="true"/>
<line x1="-42.05" y1="-2.05" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="-38.05" y2="1.95" antialias="true"/>
<line x1="37.95" y1="-2.05" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="41.95" y2="1.95" antialias="true"/>
<line x1="17.95" y1="-2.05" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="21.95" y2="1.95" antialias="true"/>
<line x1="-2.05" y1="-2.05" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="1.95" y2="1.95" antialias="true"/>
<line x1="-22" y1="-2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="-18" y2="2" antialias="true"/>
<input size="7" tagg="none" rotate="true" x="-89" y="10" text="7G"/>
<line x1="-67.9373" y1="0" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="71" y2="0" antialias="false"/>
<line x1="-62" y1="-2" end1="none" style="line-style:normal;line-weight:normal;filling:none;color:black" end2="none" length1="1.5" length2="1.5" x2="-58" y2="2" antialias="true"/>
<input size="7" tagg="label" rotate="true" x="-90" y="-9" text="_"/>
<input size="4" tagg="none" rotate="true" x="-62" y="-4" text="1"/>
<input size="4" tagg="none" rotate="true" x="-42" y="-4" text="2"/>
<input size="4" tagg="none" rotate="true" x="-22" y="-4" text="3"/>
<input size="4" tagg="none" rotate="true" x="58" y="-4" text="PE"/>
</description>
</definition>

View File

@@ -1,23 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="14" height="20" hotspot_y="4" type="element">
<uuid uuid="{a0e9e33a-ee38-4c08-8f40-c307da8d822b}"/>
<names>
<name lang="el">Διατομή αγωγού</name>
<name lang="es">Clasificación de sección</name>
<name lang="nl">Doorsnede</name>
<name lang="de">Verdrahtungsquerschnitt</name>
<name lang="cs">Průřez vodiče</name>
<name lang="pl">Pole przekróju przewodu</name>
<name lang="it">Sezione della nomenclatura</name>
<name lang="ar">تسمية مساحة المقطع </name>
<name lang="en">Wiring section</name>
<name lang="fr">Section de fil</name>
<name lang="hu">Vezeték keresztmetszet</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<input x="-40" y="10" tagg="label" size="6" rotate="true" text="_"/>
<text x="8" y="6.3334" size="4" text="2"/>
<text x="-10" y="10" size="6" text="mm"/>
</description>
</definition>

View File

@@ -1,18 +0,0 @@
<qet-directory>
<names>
<name lang="ru">Кабели и провода</name>
<name lang="en">Cables and wiring</name>
<name lang="es">Cables y alambres</name>
<name lang="fr">Câbles et filerie</name>
<name lang="it">Cavi e collegamenti</name>
<name lang="pl">Przewody i kable</name>
<name lang="pt_br">Cabos e fiação</name>
<name lang="de">Kabel und Verdrahtung</name>
<name lang="el">Καλώδια και καλωδίωση</name>
<name lang="nl">Kabels en draden</name>
<name lang="cs">Kabely a vodiče</name>
<name lang="da">Kabler og ledninger</name>
<name lang="ja">ケーブルと配線</name>
<name lang="hu">Kábelek és vezetékek</name>
</names>
</qet-directory>

View File

@@ -1,19 +0,0 @@
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" height="10" hotspot_y="5" type="element">
<uuid uuid="{b96a76a6-a798-497b-a044-dd933756d175}"/>
<names>
<name lang="de">Verdrahtungsdefinition 1 Leiter</name>
<name lang="cs">Označení vodiče</name>
<name lang="pl">Oznaczenie pola przekroju przewodu jednożyłowego</name>
<name lang="it">Sezione 1 conduttore</name>
<name lang="fr">Section 1 conducteur</name>
<name lang="es">Sección 1 conductor</name>
<name lang="hu">1 ér keresztmetszet</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line antialias="false" length1="1.5" x2="9.91885" end2="none" x1="-10.8483" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<line antialias="true" length1="1.5" x2="2" end2="none" x1="-2" end1="none" y2="2" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2"/>
<input x="-44" y="2" tagg="label" size="4" rotate="true" text="1,5 mm²&#xa; "/>
</description>
</definition>

View File

@@ -1,20 +0,0 @@
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" height="10" hotspot_y="5" type="element">
<uuid uuid="{448ac784-f459-4f8f-bd3f-d911802b3369}"/>
<names>
<name lang="de">Verdrahtungsdefinition 2 Leiter</name>
<name lang="cs">Označení žil 2 vodiče</name>
<name lang="pl">Oznaczenie pola przekroju przewodu dwużyłowego</name>
<name lang="it">Sezione 2 conduttori</name>
<name lang="fr">Section 2 conducteurs</name>
<name lang="es">Sección 2 conductores</name>
<name lang="hu">2 ér keresztmetszet</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line antialias="true" length1="1.5" x2="41.95" end2="none" x1="37.95" end1="none" y2="1.95" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2.05"/>
<line antialias="false" length1="1.5" x2="47.2717" end2="none" x1="-10.2509" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<line antialias="true" length1="1.5" x2="2" end2="none" x1="-2" end1="none" y2="2" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2"/>
<input x="-44" y="2" tagg="label" size="4" rotate="true" text="1,5 mm²&#xa; "/>
</description>
</definition>

View File

@@ -1,20 +0,0 @@
<definition width="40" link_type="simple" version="0.5" hotspot_x="14" height="10" hotspot_y="5" type="element">
<uuid uuid="{c94d9e16-e3bb-4117-b037-466a15edcb14}"/>
<names>
<name lang="de">Verdrahtungsdefinition 2 Leiter</name>
<name lang="cs">Označení žil 2 vodiče</name>
<name lang="pl">Oznaczenie pola przekroju przewodu dwużyłowego</name>
<name lang="it">Sezione 2 conduttori</name>
<name lang="fr">Section 2 conducteurs</name>
<name lang="es">Sección 2 conductores</name>
<name lang="hu">2 ér keresztmetszet</name>
</names>
<informations>Author: The QElectroTech team
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
<description>
<line antialias="true" length1="1.5" x2="21.95" end2="none" x1="17.95" end1="none" y2="1.95" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2.05"/>
<line antialias="false" length1="1.5" x2="19.8781" end2="none" x1="-10.8107" end1="none" y2="0" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0"/>
<line antialias="true" length1="1.5" x2="2" end2="none" x1="-2" end1="none" y2="2" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="-2"/>
<input x="-44" y="2" tagg="label" size="4" rotate="true" text="1,5 mm²&#xa; "/>
</description>
</definition>

Some files were not shown because too many files have changed in this diff Show More