mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Compare commits
774 Commits
Fix_compil
...
element_pi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de2f161566 | ||
|
|
b8d9d38d31 | ||
|
|
c05d76c633 | ||
|
|
5a8197b2b3 | ||
|
|
c1169f0e04 | ||
|
|
794af49a3a | ||
|
|
8ef0d0b2f0 | ||
|
|
3729bec350 | ||
|
|
157377e1c1 | ||
|
|
7cb47f3b9e | ||
|
|
9db15f91e7 | ||
|
|
c54ee9b66d | ||
|
|
7a2c62d4d2 | ||
|
|
7f5b446fc9 | ||
|
|
bba1f07f57 | ||
|
|
d32c322e5a | ||
|
|
8960981f09 | ||
|
|
f2f50084e0 | ||
|
|
48be92cde5 | ||
|
|
845431179d | ||
|
|
f6161af258 | ||
|
|
8755a12698 | ||
|
|
a361e16a8e | ||
|
|
0f8f26e177 | ||
|
|
d53bb22509 | ||
|
|
3d25beaea0 | ||
|
|
1a3656f7be | ||
|
|
7de810bac4 | ||
|
|
1b6cf7d5f3 | ||
|
|
6cf79e6e75 | ||
|
|
8fdb9ba21a | ||
|
|
a4adcf4865 | ||
|
|
9300130aaf | ||
|
|
d7dd32ff1a | ||
|
|
564f38396f | ||
|
|
ab5dd39556 | ||
|
|
b12a4525a2 | ||
|
|
e0f2a66f3c | ||
|
|
20f5c3e443 | ||
|
|
ea730a2fa1 | ||
|
|
28d98a1a30 | ||
|
|
a75565e30d | ||
|
|
6ededf94bf | ||
|
|
9ca44f2557 | ||
|
|
9aad769a37 | ||
|
|
1f0f44233e | ||
|
|
5594197aab | ||
|
|
13b6b0c6c9 | ||
|
|
b0e6ad46ac | ||
|
|
b417edaff8 | ||
|
|
301fa629d8 | ||
|
|
44db25e76b | ||
|
|
d5df9703d0 | ||
|
|
11b8ef927b | ||
|
|
83b69253dc | ||
|
|
b96eff00ef | ||
|
|
4051bbd309 | ||
|
|
b181311162 | ||
|
|
1db1800572 | ||
|
|
001e93bc6f | ||
|
|
6e17996d37 | ||
|
|
4c563821e8 | ||
|
|
a4872bf686 | ||
|
|
332d978043 | ||
|
|
755bcf640d | ||
|
|
38a825865c | ||
|
|
5d3710c4b2 | ||
|
|
058824f29a | ||
|
|
4b82c3a0c4 | ||
|
|
ea793125a5 | ||
|
|
153aecbbf3 | ||
|
|
bc88f2ec2e | ||
|
|
6887c543da | ||
|
|
51ed21f9ef | ||
|
|
221773ea8a | ||
|
|
9d4b90da1a | ||
|
|
b021ac3e1f | ||
|
|
faf4235bed | ||
|
|
0a51e22b7d | ||
|
|
632fba5366 | ||
|
|
0ca883f114 | ||
|
|
170d856007 | ||
|
|
0424eb9fba | ||
|
|
8210f06919 | ||
|
|
468618adda | ||
|
|
8141a75738 | ||
|
|
8f201a6e5d | ||
|
|
b8745c0a6b | ||
|
|
7c3bde9118 | ||
|
|
ed8c1dea9d | ||
|
|
28cd389695 | ||
|
|
56bb2a399b | ||
|
|
dc726792d3 | ||
|
|
d8707a4ef2 | ||
|
|
01d6cdb920 | ||
|
|
77710e1cc5 | ||
|
|
1d2c00819d | ||
|
|
eee0469bd7 | ||
|
|
5118037cb5 | ||
|
|
1f53c39290 | ||
|
|
f499507b2d | ||
|
|
b71aec9548 | ||
|
|
c7798e1a80 | ||
|
|
5430692359 | ||
|
|
02b7ead041 | ||
|
|
ea364f9c4e | ||
|
|
f97edad75a | ||
|
|
454b2c8a0f | ||
|
|
b2782bc460 | ||
|
|
059f0eb1b6 | ||
|
|
ce318ac667 | ||
|
|
be2067148e | ||
|
|
444f62a1f8 | ||
|
|
8f85cacb06 | ||
|
|
ffe3d98279 | ||
|
|
dea926e4b4 | ||
|
|
a1779d1a7a | ||
|
|
252106178b | ||
|
|
a00404bc9f | ||
|
|
e2ebb445a8 | ||
|
|
24ec94d73e | ||
|
|
edb42caa16 | ||
|
|
c110acc0ac | ||
|
|
3467c09c1e | ||
|
|
664537c178 | ||
|
|
5f908fcd88 | ||
|
|
ef58f34c14 | ||
|
|
34eb14a97e | ||
|
|
30858f9a4d | ||
|
|
108513ef97 | ||
|
|
81e6f217b4 | ||
|
|
c592b7a7fd | ||
|
|
e3fab9508f | ||
|
|
c13af5ace0 | ||
|
|
0c4f87bd76 | ||
|
|
ac23010559 | ||
|
|
b335a4af4f | ||
|
|
2513961cd6 | ||
|
|
d04bccc384 | ||
|
|
47ea5a3da9 | ||
|
|
e1b98ce5b5 | ||
|
|
70947ac5b9 | ||
|
|
b58898b6c8 | ||
|
|
6da28a1845 | ||
|
|
4ade6f3227 | ||
|
|
507841208d | ||
|
|
762a9e3718 | ||
|
|
b1a7f2e26c | ||
|
|
e3db2bc898 | ||
|
|
85fa9245a4 | ||
|
|
4df313cbeb | ||
|
|
f62feaef94 | ||
|
|
ad340cf95a | ||
|
|
692bf0ed72 | ||
|
|
3aceb436be | ||
|
|
330299e9df | ||
|
|
eefa4de8f8 | ||
|
|
1d28f29c07 | ||
|
|
5abf93dd8d | ||
|
|
07a6dd887e | ||
|
|
4a63aca8cd | ||
|
|
3c278bbbfb | ||
|
|
d333b6a188 | ||
|
|
f235022c44 | ||
|
|
750f60f571 | ||
|
|
1558d0c00a | ||
|
|
aa66eabe7c | ||
|
|
20cd0366eb | ||
|
|
ec63d7a1cb | ||
|
|
fdd617f9a5 | ||
|
|
3e9c17030c | ||
|
|
8c07daaf8e | ||
|
|
3cf178d056 | ||
|
|
842fa28390 | ||
|
|
5041fa9ccc | ||
|
|
2ce0205d94 | ||
|
|
b64086fbcd | ||
|
|
4c075ed551 | ||
|
|
51087551c9 | ||
|
|
bb82a616de | ||
|
|
da1fda6b03 | ||
|
|
7d9926ccfc | ||
|
|
dd4c016b46 | ||
|
|
c954f204ac | ||
|
|
743557b604 | ||
|
|
4fc7c1abd9 | ||
|
|
48fa67fc3d | ||
|
|
7fe26b5d1c | ||
|
|
f726397038 | ||
|
|
c78685e95f | ||
|
|
ef5b17be6e | ||
|
|
47d5862ab0 | ||
|
|
30b733febe | ||
|
|
61d7eb966c | ||
|
|
838003a25c | ||
|
|
753de5445b | ||
|
|
37fed57470 | ||
|
|
bc2e91a271 | ||
|
|
46b262243f | ||
|
|
9281230ed7 | ||
|
|
8111508090 | ||
|
|
0deb58a3ff | ||
|
|
4c356cd67a | ||
|
|
c6af279b36 | ||
|
|
e0353d0657 | ||
|
|
6fcb0fec08 | ||
|
|
3c26b1dfdb | ||
|
|
d783ec66f5 | ||
|
|
02b51ee4fa | ||
|
|
cf4d0dd2eb | ||
|
|
e8c2c29617 | ||
|
|
ee7004a7d1 | ||
|
|
2c046975f3 | ||
|
|
5f7f00f7ae | ||
|
|
577a7564dc | ||
|
|
f54cd3ef7f | ||
|
|
d7fdf188bf | ||
|
|
147137b24b | ||
|
|
4f455a5328 | ||
|
|
a0b5feba08 | ||
|
|
8c729b4732 | ||
|
|
0a616088ea | ||
|
|
58b7097748 | ||
|
|
966a08f50f | ||
|
|
2000b6cd2b | ||
|
|
d3093f495b | ||
|
|
55dfec41c3 | ||
|
|
34baceb8da | ||
|
|
ade79b467a | ||
|
|
948915a47e | ||
|
|
ba693420f3 | ||
|
|
63b43421a7 | ||
|
|
0a8376c189 | ||
|
|
bf9123f9b5 | ||
|
|
20f9475a6e | ||
|
|
1badeceed4 | ||
|
|
344d898461 | ||
|
|
5730559ed0 | ||
|
|
74342cb00d | ||
|
|
c5fd14794f | ||
|
|
401a5010be | ||
|
|
c8adffb696 | ||
|
|
0cc3099908 | ||
|
|
2e543dd1f7 | ||
|
|
af3772b95a | ||
|
|
546db38683 | ||
|
|
404ae4fffc | ||
|
|
f6d777e2f7 | ||
|
|
cb37c1c2fe | ||
|
|
13db08ad56 | ||
|
|
7fc9d06eef | ||
|
|
842b39d68b | ||
|
|
8fb1cd0fa7 | ||
|
|
2fc7f594cc | ||
|
|
c46caaf6e4 | ||
|
|
c88d1ef6bb | ||
|
|
d2fb0d8ad1 | ||
|
|
0207390ced | ||
|
|
ce5cc25186 | ||
|
|
74b112a4bb | ||
|
|
c2acbc88ed | ||
|
|
6ec9a04fda | ||
|
|
35ad994471 | ||
|
|
83d802adf7 | ||
|
|
aacbe57d51 | ||
|
|
62b71c0ba5 | ||
|
|
eb49977c75 | ||
|
|
6da9c58458 | ||
|
|
234f468f15 | ||
|
|
ed938c82cd | ||
|
|
6aa30d5f57 | ||
|
|
d15443cf93 | ||
|
|
3fe0adc66e | ||
|
|
d0c129478e | ||
|
|
4de9c1d922 | ||
|
|
d89d1088a3 | ||
|
|
6556fbaf38 | ||
|
|
c83388c1d5 | ||
|
|
10c4c3d528 | ||
|
|
1871b7ad12 | ||
|
|
6cd6efaca9 | ||
|
|
b70775bc84 | ||
|
|
cffec76018 | ||
|
|
ebe22f1131 | ||
|
|
f3888be8a6 | ||
|
|
53aaa03967 | ||
|
|
b22741732b | ||
|
|
77e6248ac9 | ||
|
|
ccd76f902d | ||
|
|
945b690430 | ||
|
|
0f86685ebe | ||
|
|
862f311f5a | ||
|
|
abc6b35d4c | ||
|
|
ada563719b | ||
|
|
ed455609d5 | ||
|
|
2f004c271f | ||
|
|
bafe7a39db | ||
|
|
0b1e012a32 | ||
|
|
e0a03e7353 | ||
|
|
68215d099c | ||
|
|
3b472591b6 | ||
|
|
d3cb7ef08c | ||
|
|
049848737b | ||
|
|
d3348e25be | ||
|
|
764cdfea53 | ||
|
|
b149e3e6ca | ||
|
|
7313cdfa9e | ||
|
|
fd92c1ce92 | ||
|
|
0ac96eecfc | ||
|
|
d02b88488a | ||
|
|
87956d8d42 | ||
|
|
ab1027eb5d | ||
|
|
aa858ba32d | ||
|
|
a303a38d0d | ||
|
|
51bae7cdf1 | ||
|
|
05dad2c8d8 | ||
|
|
b457b98b22 | ||
|
|
8fec6dabef | ||
|
|
f7e12e5e87 | ||
|
|
689799ea24 | ||
|
|
380de0b4c3 | ||
|
|
3633123d17 | ||
|
|
66d45cc835 | ||
|
|
56710ef25c | ||
|
|
77479dc949 | ||
|
|
529c6a721a | ||
|
|
fd3d2dfb90 | ||
|
|
d1aba1118b | ||
|
|
c4fe1fe3da | ||
|
|
c167015b22 | ||
|
|
48e597663e | ||
|
|
bd26e4bb9c | ||
|
|
f7a445c0a7 | ||
|
|
bb32c30004 | ||
|
|
79fa9c8ec5 | ||
|
|
a73d50d7d0 | ||
|
|
af7d1df5ab | ||
|
|
c87fe8df2f | ||
|
|
f613f7fcdc | ||
|
|
20911f215b | ||
|
|
b557aa0e98 | ||
|
|
6b89349240 | ||
|
|
6b54e45e3a | ||
|
|
fec3c70739 | ||
|
|
a028724773 | ||
|
|
49b2e4ad0a | ||
|
|
81efc5181b | ||
|
|
6f60156e00 | ||
|
|
7882c5734a | ||
|
|
0bfbc37bc9 | ||
|
|
e3b98001f3 | ||
|
|
d1c969b723 | ||
|
|
acf9c17969 | ||
|
|
862dbede24 | ||
|
|
be3421f8c9 | ||
|
|
4ad4e75132 | ||
|
|
d2c4bf4ec7 | ||
|
|
a97ee8ddba | ||
|
|
ca0dcc9b7b | ||
|
|
62333506f1 | ||
|
|
98de247a4d | ||
|
|
a0efad18ab | ||
|
|
b514c39883 | ||
|
|
859bf7f645 | ||
|
|
1b10fe3b7f | ||
|
|
41c7cde8ca | ||
|
|
69adb10bcc | ||
|
|
239a7daf7f | ||
|
|
f73f71c0aa | ||
|
|
23764c0e11 | ||
|
|
beec556a55 | ||
|
|
3a0da97878 | ||
|
|
2afac1e56d | ||
|
|
72271cfc69 | ||
|
|
24c930d727 | ||
|
|
87845ef0ee | ||
|
|
8c51725c71 | ||
|
|
dbf4315deb | ||
|
|
099dc614bd | ||
|
|
96450ce19f | ||
|
|
1d606c574b | ||
|
|
8ba982f6cc | ||
|
|
329ceb4594 | ||
|
|
50de125787 | ||
|
|
2839a4009c | ||
|
|
6bfb2b95d2 | ||
|
|
0dba97ef6a | ||
|
|
c5c3dfb07b | ||
|
|
1c91a6300a | ||
|
|
b1eb59f3ea | ||
|
|
cb29a4d383 | ||
|
|
077c4f578a | ||
|
|
b32a295b0c | ||
|
|
6251862f7a | ||
|
|
793770a72a | ||
|
|
aba16dc936 | ||
|
|
e5b8ba7e22 | ||
|
|
dad32d5897 | ||
|
|
9658a88c18 | ||
|
|
12e301b887 | ||
|
|
f3097fc537 | ||
|
|
73b394527d | ||
|
|
752f31513c | ||
|
|
756fc845a5 | ||
|
|
9d89719c21 | ||
|
|
785c5884e8 | ||
|
|
87425d70ce | ||
|
|
9c267d673d | ||
|
|
69f775aa0f | ||
|
|
2619d96998 | ||
|
|
74ee2fd82c | ||
|
|
ec0b92ec1d | ||
|
|
a65675b53e | ||
|
|
c39ef0a999 | ||
|
|
ff84a71d97 | ||
|
|
434c3dfbfb | ||
|
|
096f8f58e1 | ||
|
|
364012848c | ||
|
|
106b17cf2f | ||
|
|
d3da5a98a5 | ||
|
|
9b0e659300 | ||
|
|
30f8989e3d | ||
|
|
e878082b79 | ||
|
|
419585f97e | ||
|
|
44e945489a | ||
|
|
b45c6b453e | ||
|
|
5d47ecd8f6 | ||
|
|
639ccb25e2 | ||
|
|
746c5a81e3 | ||
|
|
4e44b4bcd4 | ||
|
|
04125dcc55 | ||
|
|
d6f08696bc | ||
|
|
9193e1c39b | ||
|
|
941aaf7087 | ||
|
|
f5d2fc3916 | ||
|
|
9f3c173b9f | ||
|
|
9a915c2ad0 | ||
|
|
694cbfb1b7 | ||
|
|
f69e3a3fa7 | ||
|
|
8a5ba90d01 | ||
|
|
32605e1377 | ||
|
|
0ab1b322d6 | ||
|
|
a7920ea5fc | ||
|
|
937a6d740b | ||
|
|
a0b95ee944 | ||
|
|
ad0df66ab1 | ||
|
|
c1e93fc442 | ||
|
|
2e2a652343 | ||
|
|
074e2c8b2d | ||
|
|
9034d8d791 | ||
|
|
0b5091b606 | ||
|
|
b339dc2812 | ||
|
|
ce11610d1d | ||
|
|
10cc3cdbb7 | ||
|
|
184560cc5d | ||
|
|
0e10b4adfa | ||
|
|
caac531de1 | ||
|
|
bc0cb6b1b3 | ||
|
|
4f929ef3c9 | ||
|
|
3b71cb7dfe | ||
|
|
fbe1c05c7d | ||
|
|
6437bf212a | ||
|
|
aa9266ab64 | ||
|
|
8507040aa2 | ||
|
|
e263264752 | ||
|
|
7038e6f796 | ||
|
|
e0201a8027 | ||
|
|
cbdbdd0ec6 | ||
|
|
9dda3e5997 | ||
|
|
94e29ef749 | ||
|
|
add11e7c7a | ||
|
|
930bb70f99 | ||
|
|
78ecc53b89 | ||
|
|
6eec588eb9 | ||
|
|
1e0ca043e7 | ||
|
|
191eabd0a2 | ||
|
|
18f536d801 | ||
|
|
7f698bd826 | ||
|
|
0907830d67 | ||
|
|
35fb45c280 | ||
|
|
ea5ba0ecc8 | ||
|
|
f77255c762 | ||
|
|
546433cac2 | ||
|
|
30b8205f82 | ||
|
|
3b9ba6a261 | ||
|
|
36dbe65457 | ||
|
|
65ba816859 | ||
|
|
bfd487effe | ||
|
|
d9f38f8a5d | ||
|
|
2fe53ba6e8 | ||
|
|
b5ae1237e3 | ||
|
|
e0c8dd9585 | ||
|
|
86f7f98031 | ||
|
|
c829a9eb2d | ||
|
|
1cf48f62e9 | ||
|
|
6a47fcddc9 | ||
|
|
77321f6b70 | ||
|
|
45137987ab | ||
|
|
2d6bef71ae | ||
|
|
bcc5846662 | ||
|
|
2a69e540d6 | ||
|
|
c958d54d01 | ||
|
|
a917399950 | ||
|
|
f671a63366 | ||
|
|
c7ffae7918 | ||
|
|
f21cdb4040 | ||
|
|
89f9f47174 | ||
|
|
24d4885093 | ||
|
|
b7c8ae88e2 | ||
|
|
176dcd376b | ||
|
|
813014ec33 | ||
|
|
4c54335301 | ||
|
|
3eca82baad | ||
|
|
93055c6a96 | ||
|
|
7fb4033ece | ||
|
|
0b3238aac0 | ||
|
|
859f6dd06d | ||
|
|
432e80cecb | ||
|
|
46e96f0a67 | ||
|
|
0ee8f4187b | ||
|
|
402d2fbf4a | ||
|
|
271fd096e2 | ||
|
|
c5be1a98ba | ||
|
|
0a46b83dca | ||
|
|
c7f138a0e3 | ||
|
|
215ddbd878 | ||
|
|
4d7ece07ab | ||
|
|
139241e773 | ||
|
|
07df62e362 | ||
|
|
a68386c028 | ||
|
|
8e82dee8f0 | ||
|
|
529027a350 | ||
|
|
726b300999 | ||
|
|
989cd93a14 | ||
|
|
6b1d51bab8 | ||
|
|
046d7c6b59 | ||
|
|
cd7f7eccec | ||
|
|
45fb97f410 | ||
|
|
d5d8181332 | ||
|
|
0310cd2610 | ||
|
|
713d467fe4 | ||
|
|
cc8d0da0ac | ||
|
|
c0ced6dc56 | ||
|
|
288c89daa7 | ||
|
|
dce83f480c | ||
|
|
5d92393ee7 | ||
|
|
8ee38fab9e | ||
|
|
babf3d2cf2 | ||
|
|
82c8fb2d01 | ||
|
|
68b4705630 | ||
|
|
d062175da7 | ||
|
|
561209bc94 | ||
|
|
87808df6c3 | ||
|
|
87c957a062 | ||
|
|
610a44c7cd | ||
|
|
1bc2536c06 | ||
|
|
1528e1ebe2 | ||
|
|
f8611c1b6e | ||
|
|
71d7f8bbe6 | ||
|
|
ec464282f3 | ||
|
|
81da7c6713 | ||
|
|
a4654dc6c2 | ||
|
|
504a061e71 | ||
|
|
51c4b16836 | ||
|
|
4a8e07b227 | ||
|
|
db4e8e3f5e | ||
|
|
6274f65455 | ||
|
|
00eb139f73 | ||
|
|
62d370c99a | ||
|
|
cb0c0f8778 | ||
|
|
f4550ab3b4 | ||
|
|
d8cbcf3b54 | ||
|
|
63ad341b33 | ||
|
|
bd62f8768e | ||
|
|
d9fde9a3e4 | ||
|
|
f4c5087dc0 | ||
|
|
0959330adf | ||
|
|
4763eb92ec | ||
|
|
9e4af439ef | ||
|
|
dfadcb5523 | ||
|
|
995066916b | ||
|
|
debca09d5c | ||
|
|
9dad8a5d01 | ||
|
|
347de4bcd3 | ||
|
|
7960697b9e | ||
|
|
0e6b385be2 | ||
|
|
4b4732a0a8 | ||
|
|
331918d143 | ||
|
|
0c00d83b27 | ||
|
|
8626ca5d1b | ||
|
|
e05754da29 | ||
|
|
b4f733a5e5 | ||
|
|
9352905335 | ||
|
|
88686b3cbf | ||
|
|
d1c91a7fc2 | ||
|
|
f24f04084c | ||
|
|
e3093bd06c | ||
|
|
cdb2e7b523 | ||
|
|
666f20856e | ||
|
|
f5725531c2 | ||
|
|
5dd57cf003 | ||
|
|
566747eb2b | ||
|
|
8e956df8d8 | ||
|
|
ef15013715 | ||
|
|
20896de561 | ||
|
|
8cdcb59da2 | ||
|
|
35f206bc7e | ||
|
|
99abc165d6 | ||
|
|
790cdc5229 | ||
|
|
b5f212418c | ||
|
|
b28ca0361d | ||
|
|
2482a0bd4c | ||
|
|
319188e010 | ||
|
|
bc0fecea6c | ||
|
|
a4c829fbcd | ||
|
|
73dd1e8299 | ||
|
|
430ec27f36 | ||
|
|
0cb98b2ee1 | ||
|
|
41cef49453 | ||
|
|
c4bf492616 | ||
|
|
bc176da88d | ||
|
|
e55d336dc1 | ||
|
|
6c806d151d | ||
|
|
5e3e3aa4bd | ||
|
|
3b3ce2cb7c | ||
|
|
928b56f2bf | ||
|
|
8144e9b21b | ||
|
|
8a484ef901 | ||
|
|
574609abf5 | ||
|
|
76d16ab600 | ||
|
|
60a5a83320 | ||
|
|
e9fcd385d5 | ||
|
|
4ed33109f4 | ||
|
|
a83ee76f39 | ||
|
|
3783a6a543 | ||
|
|
070cc2e4ac | ||
|
|
012d969d92 | ||
|
|
e22c618152 | ||
|
|
93929399b6 | ||
|
|
ea9a230844 | ||
|
|
d4ee161c07 | ||
|
|
90417ae509 | ||
|
|
2b396960d9 | ||
|
|
ddc2afa427 | ||
|
|
5832e365e9 | ||
|
|
dff825810c | ||
|
|
12ddd3256e | ||
|
|
7aaf0c0e58 | ||
|
|
ceb2868b02 | ||
|
|
02afb6c003 | ||
|
|
6916736708 | ||
|
|
4c51448c45 | ||
|
|
770161ac57 | ||
|
|
fa8917875b | ||
|
|
295e285067 | ||
|
|
574f5b94b0 | ||
|
|
70d024fe79 | ||
|
|
de8ccc543d | ||
|
|
274108d509 | ||
|
|
d556206998 | ||
|
|
84a2a25fa8 | ||
|
|
6f82ac1df1 | ||
|
|
7616d11e9d | ||
|
|
9486deb3de | ||
|
|
e09bfa18b9 | ||
|
|
fc4625fc0f | ||
|
|
943aa469c6 | ||
|
|
ba1242d5bb | ||
|
|
9bc6f7fa94 | ||
|
|
3b4237f21f | ||
|
|
ac5ec020a6 | ||
|
|
0bae33e3f5 | ||
|
|
e5b7aacea6 | ||
|
|
5ca7ff177b | ||
|
|
d5b7414b36 | ||
|
|
34259a4749 | ||
|
|
4d61166864 | ||
|
|
d46d6709f3 | ||
|
|
da4e31dfcb | ||
|
|
21b7aa059a | ||
|
|
43a531fd2d | ||
|
|
c0d51ef445 | ||
|
|
f0b475bd77 | ||
|
|
984d9bc5de | ||
|
|
288737af0d | ||
|
|
b0df6d3101 | ||
|
|
11a90d2f69 | ||
|
|
69ff437368 | ||
|
|
87db0e2020 | ||
|
|
044c5310f5 | ||
|
|
86766a9090 | ||
|
|
1805ef300e | ||
|
|
e4033dd93c | ||
|
|
53d89ce4f7 | ||
|
|
7834d6fb84 | ||
|
|
d9ec9bf274 | ||
|
|
66eaf52002 | ||
|
|
2e3e65df5a | ||
|
|
b8daec441f | ||
|
|
06dc1570fc | ||
|
|
0ce001ea6e | ||
|
|
fa719cf8ff | ||
|
|
0507336622 | ||
|
|
3d1e30b24e | ||
|
|
b3a74a8315 | ||
|
|
216374d27c | ||
|
|
ce523b71e2 | ||
|
|
bb84bb2098 | ||
|
|
23c43e72b5 | ||
|
|
b53c083d0a | ||
|
|
45edc34269 | ||
|
|
f8240558a0 | ||
|
|
dd70637408 | ||
|
|
45d1b489c4 | ||
|
|
72918a31db | ||
|
|
9d772b4091 | ||
|
|
dd257c48d9 | ||
|
|
78992ee762 | ||
|
|
7a04788d54 | ||
|
|
fa1abbd38d | ||
|
|
effc86e72c | ||
|
|
d4d364cfde | ||
|
|
1fc893157d | ||
|
|
494a5f1df2 | ||
|
|
900b7e22aa | ||
|
|
4751934d68 | ||
|
|
510aa74266 | ||
|
|
e938673872 | ||
|
|
2a53f09a37 | ||
|
|
6bece6fa84 | ||
|
|
1372d1c8ba | ||
|
|
70e54bc9b2 | ||
|
|
e6eeef5cf5 | ||
|
|
96acd6ff95 | ||
|
|
9cdc023f31 | ||
|
|
a2eb92803a | ||
|
|
655e608268 | ||
|
|
c401e93125 | ||
|
|
4d57e7fbfb | ||
|
|
0c62bf2b3b | ||
|
|
1f78196fa6 | ||
|
|
49cca54adc | ||
|
|
c0df06c2ee | ||
|
|
d087a8be66 | ||
|
|
55beaa9be9 | ||
|
|
c5eb5af47d | ||
|
|
90e283902e | ||
|
|
7420eeb60d | ||
|
|
698db4e5c0 | ||
|
|
6b95c6bf6f | ||
|
|
2b754cffb4 | ||
|
|
03425bcb5b | ||
|
|
3a08e60856 | ||
|
|
e03e36fb2c | ||
|
|
8f5e759528 | ||
|
|
bddf10588f | ||
|
|
a33ae2bb13 | ||
|
|
bd93e62341 | ||
|
|
119e12b1cf | ||
|
|
f242e1bccc | ||
|
|
709280e3c1 | ||
|
|
3b14946421 | ||
|
|
280e4605e8 | ||
|
|
fe4552200b | ||
|
|
d3b237d06c | ||
|
|
26fd1a497c | ||
|
|
bbd3085b8d | ||
|
|
1251d7d9b0 | ||
|
|
2229a1938d | ||
|
|
ffcdccb469 | ||
|
|
5df6d7f403 | ||
|
|
4cd69a2450 | ||
|
|
102629b86f | ||
|
|
7ddae811a5 |
67
.clang-format
Normal file
67
.clang-format
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
BasedOnStyle: LLVM
|
||||||
|
AlignAfterOpenBracket: AlwaysBreak
|
||||||
|
AlignConsecutiveMacros: 'true'
|
||||||
|
AlignConsecutiveAssignments: 'true'
|
||||||
|
AlignConsecutiveDeclarations: 'true'
|
||||||
|
AlignEscapedNewlines: Right
|
||||||
|
AlignOperands: 'true'
|
||||||
|
AlignTrailingComments: 'true'
|
||||||
|
AllowAllArgumentsOnNextLine: 'false'
|
||||||
|
AllowAllConstructorInitializersOnNextLine: 'true'
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: 'true'
|
||||||
|
AllowShortBlocksOnASingleLine: 'true'
|
||||||
|
AllowShortCaseLabelsOnASingleLine: 'true'
|
||||||
|
AllowShortFunctionsOnASingleLine: All
|
||||||
|
AllowShortIfStatementsOnASingleLine: Always
|
||||||
|
AllowShortLambdasOnASingleLine: All
|
||||||
|
AllowShortLoopsOnASingleLine: 'true'
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
AlwaysBreakBeforeMultilineStrings: 'true'
|
||||||
|
AlwaysBreakTemplateDeclarations: 'Yes'
|
||||||
|
BinPackArguments: 'false'
|
||||||
|
BinPackParameters: 'false'
|
||||||
|
BreakAfterJavaFieldAnnotations: 'true'
|
||||||
|
BreakBeforeBinaryOperators: NonAssignment
|
||||||
|
BreakBeforeBraces: Allman
|
||||||
|
BreakBeforeTernaryOperators: 'false'
|
||||||
|
BreakConstructorInitializers: AfterColon
|
||||||
|
BreakInheritanceList: AfterColon
|
||||||
|
BreakStringLiterals: 'true'
|
||||||
|
ColumnLimit: '80'
|
||||||
|
CompactNamespaces: 'false'
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
|
||||||
|
Cpp11BracedListStyle: 'true'
|
||||||
|
FixNamespaceComments: 'true'
|
||||||
|
IncludeBlocks: Regroup
|
||||||
|
IndentCaseLabels: 'false'
|
||||||
|
IndentPPDirectives: AfterHash
|
||||||
|
IndentWidth: '4'
|
||||||
|
JavaScriptWrapImports: 'true'
|
||||||
|
Language: Cpp
|
||||||
|
MaxEmptyLinesToKeep: '1'
|
||||||
|
NamespaceIndentation: All
|
||||||
|
PointerAlignment: Left
|
||||||
|
ReflowComments: 'true'
|
||||||
|
SortIncludes: 'true'
|
||||||
|
SortUsingDeclarations: 'true'
|
||||||
|
SpaceAfterCStyleCast: 'true'
|
||||||
|
SpaceAfterLogicalNot: 'true'
|
||||||
|
SpaceAfterTemplateKeyword: 'true'
|
||||||
|
SpaceBeforeAssignmentOperators: 'true'
|
||||||
|
SpaceBeforeCpp11BracedList: 'true'
|
||||||
|
SpaceBeforeCtorInitializerColon: 'true'
|
||||||
|
SpaceBeforeInheritanceColon: 'true'
|
||||||
|
SpaceBeforeParens: ControlStatements
|
||||||
|
SpaceBeforeRangeBasedForLoopColon: 'true'
|
||||||
|
SpaceInEmptyParentheses: 'false'
|
||||||
|
SpacesInAngles: 'false'
|
||||||
|
SpacesInCStyleCastParentheses: 'false'
|
||||||
|
SpacesInContainerLiterals: 'false'
|
||||||
|
SpacesInParentheses: 'false'
|
||||||
|
SpacesInSquareBrackets: 'false'
|
||||||
|
Standard: Cpp11
|
||||||
|
TabWidth: '4'
|
||||||
|
UseTab: Always
|
||||||
|
|
||||||
|
...
|
||||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,2 +1,7 @@
|
|||||||
*.snap
|
*.snap
|
||||||
.flatpak-builder
|
.flatpak-builder
|
||||||
|
# Qt build output
|
||||||
|
*.user
|
||||||
|
# doxygen Doxyfile output
|
||||||
|
doc/
|
||||||
|
QElectroTech.tag
|
||||||
|
|||||||
162
CMakeLists.txt
Normal file
162
CMakeLists.txt
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
include(cmake/hoto_update_cmake_message.cmake)
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.14...3.19 FATAL_ERROR)
|
||||||
|
|
||||||
|
project(qelectrotech
|
||||||
|
VERSION 0.9.0
|
||||||
|
DESCRIPTION "QET is a CAD/CAE editor focusing on schematics drawing features."
|
||||||
|
HOMEPAGE_URL "https://qelectrotech.org/"
|
||||||
|
LANGUAGES CXX)
|
||||||
|
|
||||||
|
include(cmake/copyright_message.cmake)
|
||||||
|
|
||||||
|
set(QET_DIR ${PROJECT_SOURCE_DIR})
|
||||||
|
|
||||||
|
# Add sub directories
|
||||||
|
option(PACKAGE_TESTS "Build the tests" ON)
|
||||||
|
if(PACKAGE_TESTS)
|
||||||
|
message("Add sub directorie tests")
|
||||||
|
add_subdirectory(tests)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(cmake/paths_compilation_installation.cmake)
|
||||||
|
include(cmake/start_options.cmake)
|
||||||
|
include(cmake/developer_options.cmake)
|
||||||
|
include(cmake/git_update_submodules.cmake)
|
||||||
|
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(
|
||||||
|
${PROJECT_NAME}
|
||||||
|
${QET_RES_FILES}
|
||||||
|
${QET_SRC_FILES}
|
||||||
|
${QM_FILES}
|
||||||
|
${QET_DIR}/qelectrotech.qrc
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(
|
||||||
|
${PROJECT_NAME}
|
||||||
|
PUBLIC
|
||||||
|
PRIVATE
|
||||||
|
pugixml::pugixml
|
||||||
|
SingleApplication::SingleApplication
|
||||||
|
${KF5_PRIVATE_LIBRARIES}
|
||||||
|
${QET_PRIVATE_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(
|
||||||
|
${PROJECT_NAME}
|
||||||
|
PRIVATE
|
||||||
|
${QET_DIR}/sources/titleblock
|
||||||
|
${QET_DIR}/sources/ui
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/ViewItem
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui
|
||||||
|
${QET_DIR}/sources/richtext
|
||||||
|
${QET_DIR}/sources/factory
|
||||||
|
${QET_DIR}/sources/properties
|
||||||
|
${QET_DIR}/sources/dvevent
|
||||||
|
${QET_DIR}/sources/editor
|
||||||
|
${QET_DIR}/sources/editor/esevent
|
||||||
|
${QET_DIR}/sources/editor/graphicspart
|
||||||
|
${QET_DIR}/sources/editor/ui
|
||||||
|
${QET_DIR}/sources/editor/UndoCommand
|
||||||
|
${QET_DIR}/sources/undocommand
|
||||||
|
${QET_DIR}/sources/diagramevent
|
||||||
|
${QET_DIR}/sources/ElementsCollection
|
||||||
|
${QET_DIR}/sources/ElementsCollection/ui
|
||||||
|
${QET_DIR}/sources/autoNum
|
||||||
|
${QET_DIR}/sources/autoNum/ui
|
||||||
|
${QET_DIR}/sources/ui/configpage
|
||||||
|
${QET_DIR}/sources/SearchAndReplace
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui
|
||||||
|
${QET_DIR}/sources/NameList
|
||||||
|
${QET_DIR}/sources/NameList/ui
|
||||||
|
${QET_DIR}/sources/utils
|
||||||
|
${QET_DIR}/sources/pugixml
|
||||||
|
${QET_DIR}/sources/dataBase
|
||||||
|
${QET_DIR}/sources/dataBase/ui
|
||||||
|
${QET_DIR}/sources/factory/ui
|
||||||
|
${QET_DIR}/sources/print
|
||||||
|
)
|
||||||
|
|
||||||
|
install(TARGETS ${PROJECT_NAME})
|
||||||
|
if (NOT MINGW)
|
||||||
|
|
||||||
|
install(DIRECTORY ico/breeze-icons/16x16 DESTINATION ${QET_ICONS_PATH})
|
||||||
|
install(DIRECTORY ico/breeze-icons/22x22 DESTINATION ${QET_ICONS_PATH})
|
||||||
|
install(DIRECTORY ico/breeze-icons/32x32 DESTINATION ${QET_ICONS_PATH})
|
||||||
|
install(DIRECTORY ico/breeze-icons/48x48 DESTINATION ${QET_ICONS_PATH})
|
||||||
|
install(DIRECTORY ico/breeze-icons/64x64 DESTINATION ${QET_ICONS_PATH})
|
||||||
|
install(DIRECTORY ico/breeze-icons/128x128 DESTINATION ${QET_ICONS_PATH})
|
||||||
|
install(DIRECTORY ico/breeze-icons/256x256 DESTINATION ${QET_ICONS_PATH})
|
||||||
|
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/x-qet-element.xml
|
||||||
|
misc/x-qet-project.xml
|
||||||
|
misc/x-qet-titleblock.xml
|
||||||
|
DESTINATION share/mime/application)
|
||||||
|
install(FILES misc/x-qet-element.desktop
|
||||||
|
misc/x-qet-project.desktop
|
||||||
|
misc/x-qet-titleblock.desktop
|
||||||
|
DESTINATION share/mimelnk/application)
|
||||||
|
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})
|
||||||
|
|
||||||
|
endif()
|
||||||
106
CONTRIBUTING.md
106
CONTRIBUTING.md
@@ -1,27 +1,121 @@
|
|||||||
# How to contribute
|
# How to contribute
|
||||||
|
|
||||||
I'm really glad you're reading this, because we need volunteer developers to help this project come to fruition.
|
I'm really glad you're reading this,
|
||||||
|
because we need volunteer developers to help
|
||||||
|
this project come to fruition.
|
||||||
|
|
||||||
|
|
||||||
Here are some important resources:
|
Here are some important resources:
|
||||||
|
|
||||||
* [wiki](https://qelectrotech.org/wiki_new/doc/qt_creator#on_ajoute_le_style_de_code_qet)Qet code style
|
* [Qet code style](https://qelectrotech.org/wiki_new/doc/qt_creator#on_ajoute_le_style_de_code_qet)
|
||||||
|
* [git Documentation](https://git-scm.com/doc)
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
## Submitting changes
|
## Submitting changes
|
||||||
|
|
||||||
Always write a clear log message for your commits. One-line messages are fine for small changes, but bigger changes should look like this:
|
Always write a clear log message for your commits.
|
||||||
|
One-line messages are fine for small changes,
|
||||||
|
but bigger changes should look like this:
|
||||||
|
|
||||||
$ git commit -m "A brief summary of the commit
|
$ git commit -m "A brief summary of the commit
|
||||||
>
|
>
|
||||||
> A paragraph describing what changed and its impact."
|
> A paragraph describing what changed and its impact."
|
||||||
|
|
||||||
|
* It is always appropriate to keep the commits small.
|
||||||
|
* For major changes it is recommended to use branches.
|
||||||
|
|
||||||
|
### Interactive Staging
|
||||||
|
https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging
|
||||||
|
|
||||||
|
issue: you have modified a class but you want to write it in 2 commits
|
||||||
|
|
||||||
|
´git add -p´ or ´git add -i´
|
||||||
|
|
||||||
|
|
||||||
|
/qet> git add -i
|
||||||
|
|
||||||
|
|
||||||
|
staged unstaged path
|
||||||
|
1: unchanged +1/-1 sources/diagram.cpp
|
||||||
|
|
||||||
|
*** Commands ***
|
||||||
|
1: status 2: update 3: revert 4: add untracked
|
||||||
|
5: patch 6: diff 7: quit 8: help
|
||||||
|
|
||||||
|
|
||||||
|
What now> 5
|
||||||
|
|
||||||
|
|
||||||
|
staged unstaged path
|
||||||
|
1: unchanged +1/-1 sources/diagram.cpp
|
||||||
|
Patch update>> 1
|
||||||
|
staged unstaged path
|
||||||
|
* 1: unchanged +1/-1 sources/diagram.cpp
|
||||||
|
Patch update>>
|
||||||
|
diff --git a/sources/diagram.cpp b/sources/diagram.cpp
|
||||||
|
index bffca653f..9bd2280f7 100644
|
||||||
|
--- a/sources/diagram.cpp
|
||||||
|
+++ b/sources/diagram.cpp
|
||||||
|
@@ -103,9 +103,9 @@ Diagram::Diagram(QETProject *project) :
|
||||||
|
connect(&border_and_titleblock,
|
||||||
|
&BorderTitleBlock::titleBlockFolioChanged,
|
||||||
|
this, &Diagram::updateLabels);
|
||||||
|
- connect(this, &Diagram::diagramActivated,
|
||||||
|
+ foo(do_a);
|
||||||
|
- adjust(diagramActivated);
|
||||||
|
+ bar(do_c);
|
||||||
|
adjustSceneRect();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
(1/1) Stage this hunk [y,n,q,a,d,s,e,?]? s
|
||||||
|
|
||||||
|
|
||||||
|
Split into 2 hunks.
|
||||||
|
@@ -103,5 +103,5 @@
|
||||||
|
connect(&border_and_titleblock,
|
||||||
|
&BorderTitleBlock::titleBlockFolioChanged,
|
||||||
|
this, &Diagram::updateLabels);
|
||||||
|
- connect(this, &Diagram::diagramActivated,
|
||||||
|
+ foo(do_a);
|
||||||
|
|
||||||
|
|
||||||
|
(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? y
|
||||||
|
|
||||||
|
|
||||||
|
@@ -107,5 +107,5 @@
|
||||||
|
this, &Diagram::loadElmtFolioSeq);
|
||||||
|
- adjust(diagramActivated);
|
||||||
|
+ bar(do_c);
|
||||||
|
adjustSceneRect();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
(2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,?]? n
|
||||||
|
|
||||||
|
|
||||||
|
*** Commands ***
|
||||||
|
1: status 2: update 3: revert 4: add untracked
|
||||||
|
5: patch 6: diff 7: quit 8: help
|
||||||
|
What now>What now>7
|
||||||
|
Bye.
|
||||||
|
|
||||||
|
git commit -m "Mod Signal Slot to funsion"
|
||||||
|
|
||||||
## Coding conventions
|
## Coding conventions
|
||||||
|
|
||||||
Start reading our code and you'll get the hang of it. We optimize for readability:
|
Start reading our code and you'll get the hang of it.
|
||||||
|
We optimize for readability:
|
||||||
* We indent using tab, see https://qelectrotech.org/wiki_new/doc/qt_creator#on_ajoute_le_style_de_code_qet
|
|
||||||
|
|
||||||
|
* We use tabs to indent, and interpret tabs as taking up to 8 spaces.
|
||||||
|
see https://qelectrotech.org/wiki_new/doc/qt_creator#on_ajoute_le_style_de_code_qet
|
||||||
|
* We try to keep to at most 80 characters per line.
|
||||||
|
* Try to make your code understandable.
|
||||||
|
You may put comments in, but comments invariably tend to stale out when
|
||||||
|
the code they were describing changes.
|
||||||
|
Often splitting a function into two
|
||||||
|
makes the intention of the code much clearer.
|
||||||
|
|
||||||
Thanks,
|
Thanks,
|
||||||
QElectroTech
|
QElectroTech
|
||||||
|
|||||||
152
ChangeLog
152
ChangeLog
@@ -1,19 +1,96 @@
|
|||||||
====== ChangeLog from 0.7 to 0.8 ======
|
====== ChangeLog from 0.7 to 0.8 ======
|
||||||
|
|
||||||
* Element editor :
|
|
||||||
* with Ctrl key you can moving by keyboard primitives selected by 0.1 point instead by 1 points, added the same feature for moving the selected aera.
|
* Moving the main QET repository SVN trunk to GIT.
|
||||||
* Improve polygon widget editor on elements editor.
|
* Add a mirror of the main QET repository, which is synced to hosted at tuxfamily.org to Github.
|
||||||
|
* Doxyfile update add QCH file for doxygen-generated docs using qhelpgenerator and then import them into Qt Creator.
|
||||||
|
* Improve portability of Doxyfile (Simon).
|
||||||
|
* Fix deprecated warnings (Simon).
|
||||||
|
* Wrap code for better readability (Simon, Damian).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Elements collection :
|
||||||
|
Improve collection 7378 elements in 1092 categories
|
||||||
|
Thanks Sebastien, Dinozzo, Simon, Rafał, Arnaud, Bisku, Fernando, Riesermauf, Alexis, david, Plc-user, Christophe, Michele, Galexis, Jevgenijs, Gabor,
|
||||||
|
Benoit Michel, Franck, Ludovic, Cyrille, ossau2mation, Mitzot, Edgar, Nuri, Friskolon, Baboune41, Wiktor, shateks, Dik, Shateks, Marcin
|
||||||
|
|
||||||
|
|
||||||
* Diagram editor :
|
* Diagram editor :
|
||||||
* User can choose now folio list emplacement in project by select position number in settings :
|
|
||||||
1 for the first position
|
* The export of the nomenclature to csv file has been completely rewritten :
|
||||||
2 for the second position
|
It is now possible to choose which information to export as well as the order in which it should be displayed.
|
||||||
etc
|
An option allows filtering by type of element: all, terminal block, button / switch.
|
||||||
0 for always at the end of project
|
Another option allows to display or not the column headers in the csv file.
|
||||||
Because index folio is 0 and not 1 we apply -1 in formula to not complicate your life..
|
With these options, it is possible to create a nomenclature, an order list, but also for printing labels: list of terminals and list of buttons / switches.
|
||||||
|
It is possible to save / load a configuration easily.
|
||||||
|
Finally, the work being done by an SQLite database, a text field allows the user to create his own SQL query.
|
||||||
|
|
||||||
|
* Add Conductors numbering to csv file.
|
||||||
|
|
||||||
|
* Add new summary table.
|
||||||
|
|
||||||
|
* add BOM creation dialog :
|
||||||
|
nomenclature is now integrated into the project (accompanied by several parameters in order to be customizable).
|
||||||
|
Tables can have a name.
|
||||||
|
Tables an be added to any folio.
|
||||||
|
Font margin and alignment (right center left) separately adjustable for headers and table cells.
|
||||||
|
Position size and number of lines is adjustable.
|
||||||
|
Possibility of linking several tables together, especially when the entire nomenclature cannot be contained in a folio.
|
||||||
|
Automatic adjustment of the size of the table in relation to the folio.
|
||||||
|
Option to apply the geometry of an array to all the array linked to it, so that everything is homogeneous.
|
||||||
|
Save / load table configuration and content to make creation faster.
|
||||||
|
Option to automatically adjust the table to the folio.
|
||||||
|
Option to automatically add new tables in new folios if the nomenclature cannot be contained in 1 to N folios / tables.
|
||||||
|
|
||||||
|
* Table content:
|
||||||
|
Fully customizable, you display what you want or want (info to display in the desired order, filter on type of element, filter on content of the info "contains, not contains, not empty etc ..." ).
|
||||||
|
The content being generated from a sqlite database, you can write your own request.
|
||||||
|
|
||||||
|
|
||||||
|
* Loading of element collections is now faster (thanks to the pugixml parser)
|
||||||
|
* The loading of collections of elements no longer freezes QElectroTech.
|
||||||
|
* The appearance and disappearance of the search / replace menu is animated.
|
||||||
|
* Fix wrong position of slave xref after open a saved project
|
||||||
|
|
||||||
|
* Add font color of the conductors (Simon).
|
||||||
|
* Add section and color properties for wires.
|
||||||
|
|
||||||
|
* config dialog :
|
||||||
|
* Add QScrollArea to configdialog and resize to max_screen (Simon).
|
||||||
|
* Add gui resize depending on screen size (Simon).
|
||||||
|
* Add Screen info user (Simon).
|
||||||
|
* Mod ScrollArea on demand (Simon).
|
||||||
|
|
||||||
|
|
||||||
|
* Element editor:
|
||||||
|
* Polygon editing widget, when you click on a point in the list, the corresponding point changes color in order to better visualize what you are doing.
|
||||||
|
On this same list, a right click opens a contextual menu allowing to delete the selected point or inserted a point after the selected one.
|
||||||
|
When holding the ctrl + directional arrow key, the selected parts move by 0.1 instead of 1 point.
|
||||||
|
* with Ctrl key you can moving by keyboard primitives selected by 0.1 point instead by 1 points, added the same feature for moving the selected aera.
|
||||||
|
* Added 140 web standard colors In Element editor (Arnaud).
|
||||||
|
|
||||||
|
* Add multiedit feature (martin).
|
||||||
|
* Add terminals uuid for next features (martin).
|
||||||
|
|
||||||
|
|
||||||
|
* Windows :
|
||||||
|
* Fix bad fonts rendering if Qt version >= 5.13.1.
|
||||||
|
See : https://bugreports.qt.io/browse/QTBUG-83161
|
||||||
|
* Fix backup file on windows
|
||||||
|
For unknown reason KautoSaveFile don't write the file on Windows if file
|
||||||
|
is open in another part of the code.
|
||||||
|
No error is returned and use the method :
|
||||||
|
qint64 QIODevice::write(const QByteArray &byteArray) return the good
|
||||||
|
number of bytes written but the real file stay empty.
|
||||||
|
Probably the problem don't come from KautoSaveFile but QFileDevice or
|
||||||
|
QIODevice on windows.
|
||||||
|
|
||||||
|
The fix consist to open the file just before write on it and close it
|
||||||
|
just after.
|
||||||
|
|
||||||
|
* writeToFile on a other Thread to improve this for windows performance (Simon).
|
||||||
|
|
||||||
|
|
||||||
* macOS :
|
* macOS :
|
||||||
@@ -22,46 +99,31 @@ Because index folio is 0 and not 1 we apply -1 in formula to not complicate your
|
|||||||
(removed by Qt upstream) https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=commitdiff;h=ea47d152b35158ba07a55d009f57df0e4c2a048f;hp=08cc9b9991ae9ab51bed5b857b6257401401ff6f
|
(removed by Qt upstream) https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=commitdiff;h=ea47d152b35158ba07a55d009f57df0e4c2a048f;hp=08cc9b9991ae9ab51bed5b857b6257401401ff6f
|
||||||
|
|
||||||
|
|
||||||
|
* Add Snap packages :
|
||||||
|
* thanks Max for help.
|
||||||
|
https://snapcraft.io/qelectrotech
|
||||||
|
See: https://qelectrotech.org/forum/viewtopic.php?id=1426
|
||||||
|
* Use kde-neon extension
|
||||||
|
The kde-neon extension reduces our boilerplate in snapcraft.yaml
|
||||||
|
and reduces the snap size considerably, as we do not need to ship
|
||||||
|
any library that is already included in the kde-frameworks-5-core18
|
||||||
|
snap itself.
|
||||||
|
|
||||||
* For the Flatpak package : remove the file name extension added
|
This limits qelectrotech builds to the architectures supported
|
||||||
|
by kde-frameworks-5-core18, i.e. only amd64.
|
||||||
|
|
||||||
|
https://git.tuxfamily.org/qet/qet.git/log/?qt=grep&q=snap
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Add Flatpak packages :
|
||||||
|
* thanks Mathieu for help.
|
||||||
|
See: https://github.com/qelectrotech/qelectrotech-source-mirror/pull/18
|
||||||
|
* remove the file name extension added
|
||||||
automatically to the saved files even if the user sets an unknown file
|
automatically to the saved files even if the user sets an unknown file
|
||||||
extension for the program.
|
extension for the program.
|
||||||
|
|
||||||
|
https://git.tuxfamily.org/qet/qet.git/log/?qt=grep&q=flatpak
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -175,3 +175,15 @@ Dette værk er licenseret under Creative Commons Attribution 3.0 License.
|
|||||||
For at se en kopi af denne licens, besøg
|
For at se en kopi af denne licens, besøg
|
||||||
http://creativecommons.org/licenses/by/3.0/ or send a letter to Creative
|
http://creativecommons.org/licenses/by/3.0/ or send a letter to Creative
|
||||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||||
|
|
||||||
|
[ja]
|
||||||
|
QElectroTech と一緒に提供される要素コレクションは現状のまま提供され、
|
||||||
|
あなたの目的や作業に適合することを保証するものではありません。
|
||||||
|
回路図での要素の利用、変更、統合は、回路図の最終的なライセンスに関わらず
|
||||||
|
無条件で許可されます。
|
||||||
|
回路図とは別に QElectroTech コレクションの全部または一部を
|
||||||
|
変更の有無に関わらず再配布する場合は CC-BY ライセンスを尊重しなければなりません:
|
||||||
|
この作品は Creative Commons Attribution 3.0 の下でライセンスされます。
|
||||||
|
ライセンスのコピーを見るには http://creativecommons.org/licenses/by/3.0/ にアクセスするか、
|
||||||
|
「Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.」に
|
||||||
|
手紙を送ってください。
|
||||||
|
|||||||
11
INSTALL
11
INSTALL
@@ -140,3 +140,14 @@ $ qmake (qmake-qt5 for Debian baserede systemer)
|
|||||||
$ make
|
$ make
|
||||||
# umask 0022
|
# umask 0022
|
||||||
# make install
|
# make install
|
||||||
|
|
||||||
|
[ja]
|
||||||
|
必要条件 :
|
||||||
|
libQt5 (パッケージ libqt5* を参照)
|
||||||
|
cupsys-bsd 印刷用
|
||||||
|
|
||||||
|
コンパイルの方法 :
|
||||||
|
$ qmake (Debian ベースのシステムでは qmake-qt5)
|
||||||
|
$ make
|
||||||
|
# umask 0022
|
||||||
|
# make install
|
||||||
|
|||||||
4
README
4
README
@@ -50,3 +50,7 @@ QET gebruikt XML voor de elementen en schema's en omvat een schematische editor,
|
|||||||
[da]
|
[da]
|
||||||
QElectroTech er et Qt5 program til at redigere elektriske diagrammer.
|
QElectroTech er et Qt5 program til at redigere elektriske diagrammer.
|
||||||
Det bruger XML filer for symboler og diagrammer og inkluderer diagram, symbol og titelblok redigering.
|
Det bruger XML filer for symboler og diagrammer og inkluderer diagram, symbol og titelblok redigering.
|
||||||
|
|
||||||
|
[ja]
|
||||||
|
QElectroTech は電気回路図を作成する Qt5 アプリケーションです。
|
||||||
|
QET は要素と回路図に XML 形式を利用し、回路図エディタ、要素エディタ、表題欄エディタを含みます。
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ The main goal of the developers is to provide a libre, easy to use and effective
|
|||||||
|
|
||||||
### Version
|
### Version
|
||||||
|
|
||||||
The current stable version is 0.70 and was released on 2019.07.13.
|
The current stable version is 0.80 and was released on 2021.02.21.
|
||||||
Once it has been officialy released, the stable version is always frozen and is no longer developed.
|
Once it has been officialy 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.8), 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.9), which can also be [downloaded](https://qelectrotech.org/download.html).
|
||||||
|
|
||||||
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 partialy implemented until they are done!
|
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 partialy implemented until they are done!
|
||||||
|
|
||||||
@@ -33,6 +33,7 @@ Like many other open source softwares, QElectroTech is provided as it is, withou
|
|||||||
### Development / technical choices
|
### 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.
|
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/).
|
||||||
|
|
||||||
Here are the technical choices made for the software development:
|
Here are the technical choices made for the software development:
|
||||||
|
|
||||||
@@ -172,7 +173,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
|
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.
|
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/?token=rqf80cP0Ck1F2jn4Y46G7tIPv9bq7x0crXkwt3GZ6OZYG6ihJYi8lZxmmQ8itsFwMUdd1G&country.x=GB&locale.x=GB)
|
||||||
or at [leetchi.com](https://www.leetchi.com/c/qelectroteck)
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,79 @@
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
If by accident I have forgotten to credit someone in the CHANGELOG, email me and I will fix it.
|
||||||
|
|
||||||
|
__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__
|
__3.0.18__
|
||||||
----------
|
----------
|
||||||
|
|
||||||
* Fallback to standard QApplication class on iOS and Android systems where
|
* Fallback to standard QApplication class on iOS and Android systems where
|
||||||
the library is not supported.
|
the library is not supported.
|
||||||
|
|
||||||
* Added Build CI tests to verify the library builds successfully on Linux, Windows and MacOS across multiple Qt versions.
|
* Added Build CI tests to verify the library builds successfully on Linux, Windows and MacOS across multiple Qt versions.
|
||||||
|
|
||||||
_Anton Filimonov_
|
_Anton Filimonov_
|
||||||
|
|||||||
@@ -1,43 +1,40 @@
|
|||||||
cmake_minimum_required(VERSION 3.1.0)
|
cmake_minimum_required(VERSION 3.7.0)
|
||||||
|
|
||||||
project(SingleApplication)
|
project(SingleApplication LANGUAGES CXX)
|
||||||
|
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
|
||||||
# SingleApplication base class
|
|
||||||
set(QAPPLICATION_CLASS QCoreApplication CACHE STRING "Inheritance class for SingleApplication")
|
|
||||||
set_property(CACHE QAPPLICATION_CLASS PROPERTY STRINGS QApplication QGuiApplication QCoreApplication)
|
|
||||||
|
|
||||||
# Libary target
|
|
||||||
add_library(${PROJECT_NAME} STATIC
|
add_library(${PROJECT_NAME} STATIC
|
||||||
singleapplication.cpp
|
singleapplication.cpp
|
||||||
singleapplication_p.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
|
# Find dependencies
|
||||||
find_package(Qt5Network)
|
set(QT_COMPONENTS Core Network)
|
||||||
if(QAPPLICATION_CLASS STREQUAL QApplication)
|
set(QT_LIBRARIES Qt${QT_DEFAULT_MAJOR_VERSION}::Core Qt${QT_DEFAULT_MAJOR_VERSION}::Network)
|
||||||
find_package(Qt5 COMPONENTS Widgets REQUIRED)
|
|
||||||
elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication)
|
|
||||||
find_package(Qt5 COMPONENTS Gui REQUIRED)
|
|
||||||
else()
|
|
||||||
find_package(Qt5 COMPONENTS Core REQUIRED)
|
|
||||||
endif()
|
|
||||||
add_compile_definitions(QAPPLICATION_CLASS=${QAPPLICATION_CLASS})
|
|
||||||
|
|
||||||
# Link dependencies
|
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Network)
|
|
||||||
if(QAPPLICATION_CLASS STREQUAL QApplication)
|
if(QAPPLICATION_CLASS STREQUAL QApplication)
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets)
|
list(APPEND QT_COMPONENTS Widgets)
|
||||||
|
list(APPEND QT_LIBRARIES Qt${QT_DEFAULT_MAJOR_VERSION}::Widgets)
|
||||||
elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication)
|
elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication)
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Gui)
|
list(APPEND QT_COMPONENTS Gui)
|
||||||
|
list(APPEND QT_LIBRARIES Qt${QT_DEFAULT_MAJOR_VERSION}::Gui)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core)
|
set(QAPPLICATION_CLASS QCoreApplication)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
find_package(Qt${QT_DEFAULT_MAJOR_VERSION} COMPONENTS ${QT_COMPONENTS} REQUIRED)
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT_NAME} PUBLIC ${QT_LIBRARIES})
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE advapi32)
|
target_link_libraries(${PROJECT_NAME} PRIVATE advapi32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
target_compile_definitions(${PROJECT_NAME} PUBLIC QAPPLICATION_CLASS=${QAPPLICATION_CLASS})
|
||||||
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) Itay Grudev 2015 - 2016
|
Copyright (c) Itay Grudev 2015 - 2020
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
SingleApplication
|
SingleApplication
|
||||||
=================
|
=================
|
||||||
|
[](https://github.com/itay-grudev/SingleApplication/actions)
|
||||||
|
|
||||||
This is a replacement of the QtSingleApplication for `Qt5`.
|
This is a replacement of the QtSingleApplication for `Qt5` and `Qt6`.
|
||||||
|
|
||||||
Keeps the Primary Instance of your Application and kills each subsequent
|
Keeps the Primary Instance of your Application and kills each subsequent
|
||||||
instances. It can (if enabled) spawn secondary (non-related to the primary)
|
instances. It can (if enabled) spawn secondary (non-related to the primary)
|
||||||
@@ -15,18 +16,6 @@ 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`
|
default). Further usage is similar to the use of the `Q[Core|Gui]Application`
|
||||||
classes.
|
classes.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
You can use the library as if you use any other `QCoreApplication` derived
|
You can use the library as if you use any other `QCoreApplication` derived
|
||||||
class:
|
class:
|
||||||
|
|
||||||
@@ -43,8 +32,7 @@ int main( int argc, char* argv[] )
|
|||||||
```
|
```
|
||||||
|
|
||||||
To include the library files I would recommend that you add it as a git
|
To include the library files I would recommend that you add it as a git
|
||||||
submodule to your project and include it's contents with a `.pri` file. Here is
|
submodule to your project. Here is how:
|
||||||
how:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git submodule add git@github.com:itay-grudev/SingleApplication.git singleapplication
|
git submodule add git@github.com:itay-grudev/SingleApplication.git singleapplication
|
||||||
@@ -66,13 +54,27 @@ Then include the subdirectory in your `CMakeLists.txt` project file.
|
|||||||
```cmake
|
```cmake
|
||||||
set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication")
|
set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication")
|
||||||
add_subdirectory(src/third-party/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
|
Also don't forget to specify which `QCoreApplication` class your app is using if it
|
||||||
is not `QCoreApplication` as in examples above.
|
is not `QCoreApplication` as in examples above.
|
||||||
|
|
||||||
The `Instance Started` signal
|
The `Instance Started` signal
|
||||||
------------------------
|
-----------------------------
|
||||||
|
|
||||||
The SingleApplication class implements a `instanceStarted()` signal. You can
|
The SingleApplication class implements a `instanceStarted()` signal. You can
|
||||||
bind to that signal to raise your application's window when a new instance had
|
bind to that signal to raise your application's window when a new instance had
|
||||||
@@ -137,13 +139,22 @@ app.isSecondary();
|
|||||||
*__Note:__ If your Primary Instance is terminated a newly launched instance
|
*__Note:__ If your Primary Instance is terminated a newly launched instance
|
||||||
will replace the Primary one even if the Secondary flag has been set.*
|
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
|
API
|
||||||
---
|
---
|
||||||
|
|
||||||
### Members
|
### Members
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 100 )
|
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
|
Depending on whether `allowSecondary` is set, this constructor may terminate
|
||||||
@@ -152,7 +163,7 @@ can be specified to set whether the SingleApplication block should work
|
|||||||
user-wide or system-wide. Additionally the `Mode::SecondaryNotification` may be
|
user-wide or system-wide. Additionally the `Mode::SecondaryNotification` may be
|
||||||
used to notify the primary instance whenever a secondary instance had been
|
used to notify the primary instance whenever a secondary instance had been
|
||||||
started (disabled by default). `timeout` specifies the maximum time in
|
started (disabled by default). `timeout` specifies the maximum time in
|
||||||
milliseconds to wait for blocking operations.
|
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
|
*__Note:__ `argc` and `argv` may be changed as Qt removes arguments that it
|
||||||
recognizes.*
|
recognizes.*
|
||||||
@@ -204,6 +215,22 @@ qint64 SingleApplication::primaryPid()
|
|||||||
|
|
||||||
Returns the process ID (PID) of the primary instance.
|
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
|
### Signals
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
|
|||||||
1
SingleApplication/SingleApplication
Normal file
1
SingleApplication/SingleApplication
Normal file
@@ -0,0 +1 @@
|
|||||||
|
#include "singleapplication.h"
|
||||||
12
SingleApplication/examples/basic/CMakeLists.txt
Normal file
12
SingleApplication/examples/basic/CMakeLists.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
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)
|
||||||
|
|
||||||
0
SingleApplication/examples/basic/basic.pro
Normal file → Executable file
0
SingleApplication/examples/basic/basic.pro
Normal file → Executable file
2
SingleApplication/examples/basic/main.cpp
Normal file → Executable file
2
SingleApplication/examples/basic/main.cpp
Normal file → Executable file
@@ -5,5 +5,7 @@ int main(int argc, char *argv[])
|
|||||||
// Allow secondary instances
|
// Allow secondary instances
|
||||||
SingleApplication app( argc, argv );
|
SingleApplication app( argc, argv );
|
||||||
|
|
||||||
|
qWarning() << "Started a new instance";
|
||||||
|
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|||||||
21
SingleApplication/examples/calculator/CMakeLists.txt
Normal file
21
SingleApplication/examples/calculator/CMakeLists.txt
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
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)
|
||||||
@@ -82,27 +82,27 @@ Calculator::Calculator(QWidget *parent)
|
|||||||
digitButtons[i] = createButton(QString::number(i), SLOT(digitClicked()));
|
digitButtons[i] = createButton(QString::number(i), SLOT(digitClicked()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Button *pointButton = createButton(tr("."), SLOT(pointClicked()));
|
Button *pointButton = createButton(".", SLOT(pointClicked()));
|
||||||
Button *changeSignButton = createButton(tr("\302\261"), SLOT(changeSignClicked()));
|
Button *changeSignButton = createButton("\302\261", SLOT(changeSignClicked()));
|
||||||
|
|
||||||
Button *backspaceButton = createButton(tr("Backspace"), SLOT(backspaceClicked()));
|
Button *backspaceButton = createButton("Backspace", SLOT(backspaceClicked()));
|
||||||
Button *clearButton = createButton(tr("Clear"), SLOT(clear()));
|
Button *clearButton = createButton("Clear", SLOT(clear()));
|
||||||
Button *clearAllButton = createButton(tr("Clear All"), SLOT(clearAll()));
|
Button *clearAllButton = createButton("Clear All", SLOT(clearAll()));
|
||||||
|
|
||||||
Button *clearMemoryButton = createButton(tr("MC"), SLOT(clearMemory()));
|
Button *clearMemoryButton = createButton("MC", SLOT(clearMemory()));
|
||||||
Button *readMemoryButton = createButton(tr("MR"), SLOT(readMemory()));
|
Button *readMemoryButton = createButton("MR", SLOT(readMemory()));
|
||||||
Button *setMemoryButton = createButton(tr("MS"), SLOT(setMemory()));
|
Button *setMemoryButton = createButton("MS", SLOT(setMemory()));
|
||||||
Button *addToMemoryButton = createButton(tr("M+"), SLOT(addToMemory()));
|
Button *addToMemoryButton = createButton("M+", SLOT(addToMemory()));
|
||||||
|
|
||||||
Button *divisionButton = createButton(tr("\303\267"), SLOT(multiplicativeOperatorClicked()));
|
Button *divisionButton = createButton("\303\267", SLOT(multiplicativeOperatorClicked()));
|
||||||
Button *timesButton = createButton(tr("\303\227"), SLOT(multiplicativeOperatorClicked()));
|
Button *timesButton = createButton("\303\227", SLOT(multiplicativeOperatorClicked()));
|
||||||
Button *minusButton = createButton(tr("-"), SLOT(additiveOperatorClicked()));
|
Button *minusButton = createButton("-", SLOT(additiveOperatorClicked()));
|
||||||
Button *plusButton = createButton(tr("+"), SLOT(additiveOperatorClicked()));
|
Button *plusButton = createButton("+", SLOT(additiveOperatorClicked()));
|
||||||
|
|
||||||
Button *squareRootButton = createButton(tr("Sqrt"), SLOT(unaryOperatorClicked()));
|
Button *squareRootButton = createButton("Sqrt", SLOT(unaryOperatorClicked()));
|
||||||
Button *powerButton = createButton(tr("x\302\262"), SLOT(unaryOperatorClicked()));
|
Button *powerButton = createButton("x\302\262", SLOT(unaryOperatorClicked()));
|
||||||
Button *reciprocalButton = createButton(tr("1/x"), SLOT(unaryOperatorClicked()));
|
Button *reciprocalButton = createButton("1/x", SLOT(unaryOperatorClicked()));
|
||||||
Button *equalButton = createButton(tr("="), SLOT(equalClicked()));
|
Button *equalButton = createButton("=", SLOT(equalClicked()));
|
||||||
//! [4]
|
//! [4]
|
||||||
|
|
||||||
//! [5]
|
//! [5]
|
||||||
@@ -140,7 +140,7 @@ Calculator::Calculator(QWidget *parent)
|
|||||||
mainLayout->addWidget(equalButton, 5, 5);
|
mainLayout->addWidget(equalButton, 5, 5);
|
||||||
setLayout(mainLayout);
|
setLayout(mainLayout);
|
||||||
|
|
||||||
setWindowTitle(tr("Calculator"));
|
setWindowTitle("Calculator");
|
||||||
}
|
}
|
||||||
//! [6]
|
//! [6]
|
||||||
|
|
||||||
@@ -169,15 +169,15 @@ void Calculator::unaryOperatorClicked()
|
|||||||
double operand = display->text().toDouble();
|
double operand = display->text().toDouble();
|
||||||
double result = 0.0;
|
double result = 0.0;
|
||||||
|
|
||||||
if (clickedOperator == tr("Sqrt")) {
|
if (clickedOperator == "Sqrt") {
|
||||||
if (operand < 0.0) {
|
if (operand < 0.0) {
|
||||||
abortOperation();
|
abortOperation();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
result = std::sqrt(operand);
|
result = std::sqrt(operand);
|
||||||
} else if (clickedOperator == tr("x\302\262")) {
|
} else if (clickedOperator == "x\302\262") {
|
||||||
result = std::pow(operand, 2.0);
|
result = std::pow(operand, 2.0);
|
||||||
} else if (clickedOperator == tr("1/x")) {
|
} else if (clickedOperator == "1/x") {
|
||||||
if (operand == 0.0) {
|
if (operand == 0.0) {
|
||||||
abortOperation();
|
abortOperation();
|
||||||
return;
|
return;
|
||||||
@@ -287,7 +287,7 @@ void Calculator::pointClicked()
|
|||||||
if (waitingForOperand)
|
if (waitingForOperand)
|
||||||
display->setText("0");
|
display->setText("0");
|
||||||
if (!display->text().contains('.'))
|
if (!display->text().contains('.'))
|
||||||
display->setText(display->text() + tr("."));
|
display->setText(display->text() + ".");
|
||||||
waitingForOperand = false;
|
waitingForOperand = false;
|
||||||
}
|
}
|
||||||
//! [22]
|
//! [22]
|
||||||
@@ -299,7 +299,7 @@ void Calculator::changeSignClicked()
|
|||||||
double value = text.toDouble();
|
double value = text.toDouble();
|
||||||
|
|
||||||
if (value > 0.0) {
|
if (value > 0.0) {
|
||||||
text.prepend(tr("-"));
|
text.prepend("-");
|
||||||
} else if (value < 0.0) {
|
} else if (value < 0.0) {
|
||||||
text.remove(0, 1);
|
text.remove(0, 1);
|
||||||
}
|
}
|
||||||
@@ -383,20 +383,20 @@ Button *Calculator::createButton(const QString &text, const char *member)
|
|||||||
void Calculator::abortOperation()
|
void Calculator::abortOperation()
|
||||||
{
|
{
|
||||||
clearAll();
|
clearAll();
|
||||||
display->setText(tr("####"));
|
display->setText("####");
|
||||||
}
|
}
|
||||||
//! [36]
|
//! [36]
|
||||||
|
|
||||||
//! [38]
|
//! [38]
|
||||||
bool Calculator::calculate(double rightOperand, const QString &pendingOperator)
|
bool Calculator::calculate(double rightOperand, const QString &pendingOperator)
|
||||||
{
|
{
|
||||||
if (pendingOperator == tr("+")) {
|
if (pendingOperator == "+") {
|
||||||
sumSoFar += rightOperand;
|
sumSoFar += rightOperand;
|
||||||
} else if (pendingOperator == tr("-")) {
|
} else if (pendingOperator == "-") {
|
||||||
sumSoFar -= rightOperand;
|
sumSoFar -= rightOperand;
|
||||||
} else if (pendingOperator == tr("\303\227")) {
|
} else if (pendingOperator == "\303\227") {
|
||||||
factorSoFar *= rightOperand;
|
factorSoFar *= rightOperand;
|
||||||
} else if (pendingOperator == tr("\303\267")) {
|
} else if (pendingOperator == "\303\267") {
|
||||||
if (rightOperand == 0.0)
|
if (rightOperand == 0.0)
|
||||||
return false;
|
return false;
|
||||||
factorSoFar /= rightOperand;
|
factorSoFar /= rightOperand;
|
||||||
|
|||||||
20
SingleApplication/examples/sending_arguments/CMakeLists.txt
Normal file
20
SingleApplication/examples/sending_arguments/CMakeLists.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
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)
|
||||||
3
SingleApplication/examples/sending_arguments/main.cpp
Normal file → Executable file
3
SingleApplication/examples/sending_arguments/main.cpp
Normal file → Executable file
@@ -11,6 +11,9 @@ int main(int argc, char *argv[])
|
|||||||
// If this is a secondary instance
|
// If this is a secondary instance
|
||||||
if( app.isSecondary() ) {
|
if( app.isSecondary() ) {
|
||||||
app.sendMessage( app.arguments().join(' ').toUtf8() );
|
app.sendMessage( app.arguments().join(' ').toUtf8() );
|
||||||
|
qDebug() << "App already running.";
|
||||||
|
qDebug() << "Primary instance PID: " << app.primaryPid();
|
||||||
|
qDebug() << "Primary instance user: " << app.primaryUser();
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
|
|||||||
0
SingleApplication/examples/sending_arguments/sending_arguments.pro
Normal file → Executable file
0
SingleApplication/examples/sending_arguments/sending_arguments.pro
Normal file → Executable file
@@ -1,6 +1,6 @@
|
|||||||
// The MIT License (MIT)
|
// The MIT License (MIT)
|
||||||
//
|
//
|
||||||
// Copyright (c) Itay Grudev 2015 - 2018
|
// Copyright (c) Itay Grudev 2015 - 2020
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -20,15 +20,10 @@
|
|||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
// THE SOFTWARE.
|
// THE SOFTWARE.
|
||||||
|
|
||||||
#include <QtCore/QTime>
|
#include <QtCore/QElapsedTimer>
|
||||||
#include <QtCore/QThread>
|
|
||||||
#include <QtCore/QDateTime>
|
|
||||||
#include <QtCore/QByteArray>
|
#include <QtCore/QByteArray>
|
||||||
#include <QtCore/QSharedMemory>
|
#include <QtCore/QSharedMemory>
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) // ### Qt 6: remove
|
|
||||||
#else
|
|
||||||
#include <QRandomGenerator>
|
|
||||||
#endif
|
|
||||||
#include "singleapplication.h"
|
#include "singleapplication.h"
|
||||||
#include "singleapplication_p.h"
|
#include "singleapplication_p.h"
|
||||||
|
|
||||||
@@ -37,153 +32,243 @@
|
|||||||
* if another instance already exists
|
* if another instance already exists
|
||||||
* @param argc
|
* @param argc
|
||||||
* @param argv
|
* @param argv
|
||||||
* @param {bool} allowSecondaryInstances
|
* @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 )
|
SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary, Options options, int timeout, const QString &userData )
|
||||||
: app_t( argc, argv ), d_ptr( new SingleApplicationPrivate( this ) )
|
: app_t( argc, argv ), d_ptr( new SingleApplicationPrivate( this ) )
|
||||||
{
|
{
|
||||||
Q_D(SingleApplication);
|
Q_D( SingleApplication );
|
||||||
|
|
||||||
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
|
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
|
||||||
// On Android and iOS since the library is not supported fallback to
|
// On Android and iOS since the library is not supported fallback to
|
||||||
// standard QApplication behaviour by simply returning at this point.
|
// standard QApplication behaviour by simply returning at this point.
|
||||||
qWarning() << "SingleApplication is not supported on Android and iOS systems.";
|
qWarning() << "SingleApplication is not supported on Android and iOS systems.";
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Store the current mode of the program
|
// Store the current mode of the program
|
||||||
d->options = options;
|
d->options = options;
|
||||||
|
|
||||||
// Generating an application ID used for identifying the shared memory
|
// Add any unique user data
|
||||||
// block and QLocalServer
|
if ( ! userData.isEmpty() )
|
||||||
d->genBlockServerName();
|
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
|
#ifdef Q_OS_UNIX
|
||||||
// By explicitly attaching it and then deleting it we make sure that the
|
// By explicitly attaching it and then deleting it we make sure that the
|
||||||
// memory is deleted even after the process has crashed on Unix.
|
// memory is deleted even after the process has crashed on Unix.
|
||||||
d->memory = new QSharedMemory( d->blockServerName );
|
d->memory = new QSharedMemory( d->blockServerName );
|
||||||
d->memory->attach();
|
d->memory->attach();
|
||||||
delete d->memory;
|
delete d->memory;
|
||||||
#endif
|
#endif
|
||||||
// Guarantee thread safe behaviour with a shared memory block.
|
// Guarantee thread safe behaviour with a shared memory block.
|
||||||
d->memory = new QSharedMemory( d->blockServerName );
|
d->memory = new QSharedMemory( d->blockServerName );
|
||||||
|
|
||||||
// Create a shared memory block
|
// Create a shared memory block
|
||||||
if( d->memory->create( sizeof( InstancesInfo ) ) ) {
|
if( d->memory->create( sizeof( InstancesInfo ) )){
|
||||||
// Initialize the shared memory block
|
// Initialize the shared memory block
|
||||||
d->memory->lock();
|
if( ! d->memory->lock() ){
|
||||||
d->initializeMemoryBlock();
|
qCritical() << "SingleApplication: Unable to lock memory block after create.";
|
||||||
d->memory->unlock();
|
abortSafely();
|
||||||
} else {
|
}
|
||||||
// Attempt to attach to the memory segment
|
d->initializeMemoryBlock();
|
||||||
if( ! d->memory->attach() ) {
|
} else {
|
||||||
qCritical() << "SingleApplication: Unable to attach to shared memory block.";
|
if( d->memory->error() == QSharedMemory::AlreadyExists ){
|
||||||
qCritical() << d->memory->errorString();
|
// Attempt to attach to the memory segment
|
||||||
delete d;
|
if( ! d->memory->attach() ){
|
||||||
::exit( EXIT_FAILURE );
|
qCritical() << "SingleApplication: Unable to attach to shared memory block.";
|
||||||
}
|
abortSafely();
|
||||||
}
|
}
|
||||||
|
if( ! d->memory->lock() ){
|
||||||
InstancesInfo* inst = static_cast<InstancesInfo*>( d->memory->data() );
|
qCritical() << "SingleApplication: Unable to lock memory block after attach.";
|
||||||
QElapsedTimer time;
|
abortSafely();
|
||||||
time.start();
|
}
|
||||||
|
} else {
|
||||||
// Make sure the shared memory block is initialised and in consistent state
|
qCritical() << "SingleApplication: Unable to create block.";
|
||||||
while( true ) {
|
abortSafely();
|
||||||
d->memory->lock();
|
}
|
||||||
|
}
|
||||||
if( d->blockChecksum() == inst->checksum ) break;
|
|
||||||
|
auto *inst = static_cast<InstancesInfo*>( d->memory->data() );
|
||||||
if( time.elapsed() > 5000 ) {
|
QElapsedTimer time;
|
||||||
qWarning() << "SingleApplication: Shared memory block has been in an inconsistent state from more than 5s. Assuming primary instance failure.";
|
time.start();
|
||||||
d->initializeMemoryBlock();
|
|
||||||
}
|
// Make sure the shared memory block is initialised and in consistent state
|
||||||
|
while( true ){
|
||||||
d->memory->unlock();
|
// If the shared memory block's checksum is valid continue
|
||||||
|
if( d->blockChecksum() == inst->checksum ) break;
|
||||||
// Random sleep here limits the probability of a collision between two racing apps
|
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) // ### Qt 6: remove
|
// If more than 5s have elapsed, assume the primary instance crashed and
|
||||||
qsrand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits<uint>::max() );
|
// assume it's position
|
||||||
QThread::sleep( 8 + static_cast <unsigned long>( static_cast <float>( qrand() ) / RAND_MAX * 10 ) );
|
if( time.elapsed() > 5000 ){
|
||||||
#else
|
qWarning() << "SingleApplication: Shared memory block has been in an inconsistent state from more than 5s. Assuming primary instance failure.";
|
||||||
quint32 value = QRandomGenerator::global()->generate();
|
d->initializeMemoryBlock();
|
||||||
QThread::sleep( 8 + static_cast <unsigned long>( static_cast <float>( value ) / RAND_MAX * 10 ) );
|
}
|
||||||
#endif
|
|
||||||
}
|
// Otherwise wait for a random period and try again. The random sleep here
|
||||||
|
// limits the probability of a collision between two racing apps and
|
||||||
if( inst->primary == false) {
|
// allows the app to initialise faster
|
||||||
d->startPrimary();
|
if( ! d->memory->unlock() ){
|
||||||
d->memory->unlock();
|
qDebug() << "SingleApplication: Unable to unlock memory for random wait.";
|
||||||
return;
|
qDebug() << d->memory->errorString();
|
||||||
}
|
}
|
||||||
|
SingleApplicationPrivate::randomSleep();
|
||||||
// Check if another instance can be started
|
if( ! d->memory->lock() ){
|
||||||
if( allowSecondary ) {
|
qCritical() << "SingleApplication: Unable to lock memory after random wait.";
|
||||||
inst->secondary += 1;
|
abortSafely();
|
||||||
inst->checksum = d->blockChecksum();
|
}
|
||||||
d->instanceNumber = inst->secondary;
|
}
|
||||||
d->startSecondary();
|
|
||||||
if( d->options & Mode::SecondaryNotification ) {
|
if( inst->primary == false ){
|
||||||
d->connectToPrimary( timeout, SingleApplicationPrivate::SecondaryInstance );
|
d->startPrimary();
|
||||||
}
|
if( ! d->memory->unlock() ){
|
||||||
d->memory->unlock();
|
qDebug() << "SingleApplication: Unable to unlock memory after primary start.";
|
||||||
return;
|
qDebug() << d->memory->errorString();
|
||||||
}
|
}
|
||||||
|
return;
|
||||||
d->memory->unlock();
|
}
|
||||||
|
|
||||||
d->connectToPrimary( timeout, SingleApplicationPrivate::NewInstance );
|
// Check if another instance can be started
|
||||||
|
if( allowSecondary ){
|
||||||
delete d;
|
d->startSecondary();
|
||||||
|
if( d->options & Mode::SecondaryNotification ){
|
||||||
::exit( EXIT_SUCCESS );
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Destructor
|
* Checks if the current application instance is primary.
|
||||||
|
* @return Returns true if the instance is primary, false otherwise.
|
||||||
*/
|
*/
|
||||||
SingleApplication::~SingleApplication()
|
bool SingleApplication::isPrimary() const
|
||||||
{
|
{
|
||||||
Q_D(SingleApplication);
|
Q_D( const SingleApplication );
|
||||||
delete d;
|
return d->server != nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SingleApplication::isPrimary()
|
/**
|
||||||
|
* Checks if the current application instance is secondary.
|
||||||
|
* @return Returns true if the instance is secondary, false otherwise.
|
||||||
|
*/
|
||||||
|
bool SingleApplication::isSecondary() const
|
||||||
{
|
{
|
||||||
Q_D(SingleApplication);
|
Q_D( const SingleApplication );
|
||||||
return d->server != nullptr;
|
return d->server == nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SingleApplication::isSecondary()
|
/**
|
||||||
|
* 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(SingleApplication);
|
Q_D( const SingleApplication );
|
||||||
return d->server == nullptr;
|
return d->instanceNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
quint32 SingleApplication::instanceId()
|
/**
|
||||||
|
* 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(SingleApplication);
|
Q_D( const SingleApplication );
|
||||||
return d->instanceNumber;
|
return d->primaryPid();
|
||||||
}
|
}
|
||||||
|
|
||||||
qint64 SingleApplication::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(SingleApplication);
|
Q_D( const SingleApplication );
|
||||||
return d->primaryPid();
|
return d->primaryUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SingleApplication::sendMessage( QByteArray message, int timeout )
|
/**
|
||||||
|
* Returns the username the current instance is running as.
|
||||||
|
* @return Returns the username the current instance is running as.
|
||||||
|
*/
|
||||||
|
QString SingleApplication::currentUser() const
|
||||||
{
|
{
|
||||||
Q_D(SingleApplication);
|
return SingleApplicationPrivate::getUsername();
|
||||||
|
}
|
||||||
// Nobody to connect to
|
|
||||||
if( isPrimary() ) return false;
|
/**
|
||||||
|
* Sends message to the Primary Instance.
|
||||||
// Make sure the socket is connected
|
* @param message The message to send.
|
||||||
d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect );
|
* @param timeout the maximum timeout in milliseconds for blocking functions.
|
||||||
|
* @return true if the message was sent successfuly, false otherwise.
|
||||||
d->socket->write( message );
|
*/
|
||||||
bool dataWritten = d->socket->waitForBytesWritten( timeout );
|
bool SingleApplication::sendMessage( const QByteArray &message, int timeout )
|
||||||
d->socket->flush();
|
{
|
||||||
return dataWritten;
|
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;
|
||||||
|
|
||||||
|
d->socket->write( message );
|
||||||
|
bool dataWritten = d->socket->waitForBytesWritten( timeout );
|
||||||
|
d->socket->flush();
|
||||||
|
return dataWritten;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
#include <QtCore/QtGlobal>
|
#include <QtCore/QtGlobal>
|
||||||
#include <QtNetwork/QLocalSocket>
|
#include <QtNetwork/QLocalSocket>
|
||||||
#include <QElapsedTimer>
|
|
||||||
|
|
||||||
#ifndef QAPPLICATION_CLASS
|
#ifndef QAPPLICATION_CLASS
|
||||||
#define QAPPLICATION_CLASS QCoreApplication
|
#define QAPPLICATION_CLASS QCoreApplication
|
||||||
@@ -42,93 +41,112 @@ class SingleApplicationPrivate;
|
|||||||
*/
|
*/
|
||||||
class SingleApplication : public QAPPLICATION_CLASS
|
class SingleApplication : public QAPPLICATION_CLASS
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
typedef QAPPLICATION_CLASS app_t;
|
using app_t = QAPPLICATION_CLASS;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief Mode of operation of SingleApplication.
|
* @brief Mode of operation of SingleApplication.
|
||||||
* Whether the block should be user-wide or system-wide and whether the
|
* Whether the block should be user-wide or system-wide and whether the
|
||||||
* primary instance should be notified when a secondary instance had been
|
* primary instance should be notified when a secondary instance had been
|
||||||
* started.
|
* started.
|
||||||
* @note Operating system can restrict the shared memory blocks to the same
|
* @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
|
* user, in which case the User/System modes will have no effect and the
|
||||||
* block will be user wide.
|
* block will be user wide.
|
||||||
* @enum
|
* @enum
|
||||||
*/
|
*/
|
||||||
enum Mode {
|
enum Mode {
|
||||||
User = 1 << 0,
|
User = 1 << 0,
|
||||||
System = 1 << 1,
|
System = 1 << 1,
|
||||||
SecondaryNotification = 1 << 2,
|
SecondaryNotification = 1 << 2,
|
||||||
ExcludeAppVersion = 1 << 3,
|
ExcludeAppVersion = 1 << 3,
|
||||||
ExcludeAppPath = 1 << 4
|
ExcludeAppPath = 1 << 4
|
||||||
};
|
};
|
||||||
Q_DECLARE_FLAGS(Options, Mode)
|
Q_DECLARE_FLAGS(Options, Mode)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Intitializes a SingleApplication instance with argc command line
|
* @brief Intitializes a SingleApplication instance with argc command line
|
||||||
* arguments in argv
|
* arguments in argv
|
||||||
* @arg {int &} argc - Number of arguments in argv
|
* @arg {int &} argc - Number of arguments in argv
|
||||||
* @arg {const char *[]} argv - Supplied command line arguments
|
* @arg {const char *[]} argv - Supplied command line arguments
|
||||||
* @arg {bool} allowSecondary - Whether to start the instance as secondary
|
* @arg {bool} allowSecondary - Whether to start the instance as secondary
|
||||||
* if there is already a primary instance.
|
* if there is already a primary instance.
|
||||||
* @arg {Mode} mode - Whether for the SingleApplication block to be applied
|
* @arg {Mode} mode - Whether for the SingleApplication block to be applied
|
||||||
* User wide or System wide.
|
* User wide or System wide.
|
||||||
* @arg {int} timeout - Timeout to wait in milliseconds.
|
* @arg {int} timeout - Timeout to wait in milliseconds.
|
||||||
* @note argc and argv may be changed as Qt removes arguments that it
|
* @note argc and argv may be changed as Qt removes arguments that it
|
||||||
* recognizes
|
* recognizes
|
||||||
* @note Mode::SecondaryNotification only works if set on both the primary
|
* @note Mode::SecondaryNotification only works if set on both the primary
|
||||||
* instance and the secondary instance.
|
* instance and the secondary instance.
|
||||||
* @note The timeout is just a hint for the maximum time of blocking
|
* @note The timeout is just a hint for the maximum time of blocking
|
||||||
* operations. It does not guarantee that the SingleApplication
|
* operations. It does not guarantee that the SingleApplication
|
||||||
* initialisation will be completed in given time, though is a good hint.
|
* initialisation will be completed in given time, though is a good hint.
|
||||||
* Usually 4*timeout would be the worst case (fail) scenario.
|
* Usually 4*timeout would be the worst case (fail) scenario.
|
||||||
* @see See the corresponding QAPPLICATION_CLASS constructor for reference
|
* @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 );
|
explicit SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 1000, const QString &userData = {} );
|
||||||
~SingleApplication();
|
~SingleApplication() override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Returns if the instance is the primary instance
|
* @brief Returns if the instance is the primary instance
|
||||||
* @returns {bool}
|
* @returns {bool}
|
||||||
*/
|
*/
|
||||||
bool isPrimary();
|
bool isPrimary() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Returns if the instance is a secondary instance
|
* @brief Returns if the instance is a secondary instance
|
||||||
* @returns {bool}
|
* @returns {bool}
|
||||||
*/
|
*/
|
||||||
bool isSecondary();
|
bool isSecondary() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Returns a unique identifier for the current instance
|
* @brief Returns a unique identifier for the current instance
|
||||||
* @returns {qint32}
|
* @returns {qint32}
|
||||||
*/
|
*/
|
||||||
quint32 instanceId();
|
quint32 instanceId() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Returns the process ID (PID) of the primary instance
|
* @brief Returns the process ID (PID) of the primary instance
|
||||||
* @returns {qint64}
|
* @returns {qint64}
|
||||||
*/
|
*/
|
||||||
qint64 primaryPid();
|
qint64 primaryPid() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sends a message to the primary instance. Returns true on success.
|
* @brief Returns the username of the user running the primary instance
|
||||||
* @param {int} timeout - Timeout for connecting
|
* @returns {QString}
|
||||||
* @returns {bool}
|
*/
|
||||||
* @note sendMessage() will return false if invoked from the primary
|
QString primaryUser() const;
|
||||||
* instance.
|
|
||||||
*/
|
/**
|
||||||
bool sendMessage( QByteArray message, int timeout = 100 );
|
* @brief Returns the username of the current user
|
||||||
|
* @returns {QString}
|
||||||
Q_SIGNALS:
|
*/
|
||||||
void instanceStarted();
|
QString currentUser() const;
|
||||||
void receivedMessage( quint32 instanceId, QByteArray message );
|
|
||||||
|
/**
|
||||||
private:
|
* @brief Sends a message to the primary instance. Returns true on success.
|
||||||
SingleApplicationPrivate *d_ptr;
|
* @param {int} timeout - Timeout for connecting
|
||||||
Q_DECLARE_PRIVATE(SingleApplication)
|
* @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)
|
Q_DECLARE_OPERATORS_FOR_FLAGS(SingleApplication::Options)
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
QT += core network
|
QT += core network
|
||||||
CONFIG += c++11
|
CONFIG += c++11
|
||||||
|
|
||||||
HEADERS += $$PWD/singleapplication.h \
|
HEADERS += $$PWD/SingleApplication \
|
||||||
|
$$PWD/singleapplication.h \
|
||||||
$$PWD/singleapplication_p.h
|
$$PWD/singleapplication_p.h
|
||||||
SOURCES += $$PWD/singleapplication.cpp \
|
SOURCES += $$PWD/singleapplication.cpp \
|
||||||
$$PWD/singleapplication_p.cpp
|
$$PWD/singleapplication_p.cpp
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// The MIT License (MIT)
|
// The MIT License (MIT)
|
||||||
//
|
//
|
||||||
// Copyright (c) Itay Grudev 2015 - 2018
|
// Copyright (c) Itay Grudev 2015 - 2020
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -33,12 +33,20 @@
|
|||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
|
||||||
#include <QtCore/QDir>
|
#include <QtCore/QDir>
|
||||||
|
#include <QtCore/QThread>
|
||||||
#include <QtCore/QByteArray>
|
#include <QtCore/QByteArray>
|
||||||
#include <QtCore/QDataStream>
|
#include <QtCore/QDataStream>
|
||||||
|
#include <QtCore/QElapsedTimer>
|
||||||
#include <QtCore/QCryptographicHash>
|
#include <QtCore/QCryptographicHash>
|
||||||
#include <QtNetwork/QLocalServer>
|
#include <QtNetwork/QLocalServer>
|
||||||
#include <QtNetwork/QLocalSocket>
|
#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.h"
|
||||||
#include "singleapplication_p.h"
|
#include "singleapplication_p.h"
|
||||||
|
|
||||||
@@ -49,212 +57,260 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
#include <windows.h>
|
#ifndef NOMINMAX
|
||||||
#include <lmcons.h>
|
#define NOMINMAX 1
|
||||||
|
#endif
|
||||||
|
#include <windows.h>
|
||||||
|
#include <lmcons.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SingleApplicationPrivate::SingleApplicationPrivate( SingleApplication *q_ptr )
|
SingleApplicationPrivate::SingleApplicationPrivate( SingleApplication *q_ptr )
|
||||||
: q_ptr( q_ptr )
|
: q_ptr( q_ptr )
|
||||||
{
|
{
|
||||||
server = nullptr;
|
server = nullptr;
|
||||||
socket = nullptr;
|
socket = nullptr;
|
||||||
memory = nullptr;
|
memory = nullptr;
|
||||||
instanceNumber = -1;
|
instanceNumber = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
SingleApplicationPrivate::~SingleApplicationPrivate()
|
SingleApplicationPrivate::~SingleApplicationPrivate()
|
||||||
{
|
{
|
||||||
if( socket != nullptr ) {
|
if( socket != nullptr ){
|
||||||
socket->close();
|
socket->close();
|
||||||
delete socket;
|
delete socket;
|
||||||
}
|
}
|
||||||
|
|
||||||
memory->lock();
|
if( memory != nullptr ){
|
||||||
InstancesInfo* inst = static_cast<InstancesInfo*>(memory->data());
|
memory->lock();
|
||||||
if( server != nullptr ) {
|
auto *inst = static_cast<InstancesInfo*>(memory->data());
|
||||||
server->close();
|
if( server != nullptr ){
|
||||||
delete server;
|
server->close();
|
||||||
inst->primary = false;
|
delete server;
|
||||||
inst->primaryPid = -1;
|
inst->primary = false;
|
||||||
inst->checksum = blockChecksum();
|
inst->primaryPid = -1;
|
||||||
}
|
inst->primaryUser[0] = '\0';
|
||||||
memory->unlock();
|
inst->checksum = blockChecksum();
|
||||||
|
}
|
||||||
delete memory;
|
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()
|
void SingleApplicationPrivate::genBlockServerName()
|
||||||
{
|
{
|
||||||
QCryptographicHash appData( QCryptographicHash::Sha256 );
|
QCryptographicHash appData( QCryptographicHash::Sha256 );
|
||||||
appData.addData( "SingleApplication", 17 );
|
appData.addData( "SingleApplication", 17 );
|
||||||
appData.addData( SingleApplication::app_t::applicationName().toUtf8() );
|
appData.addData( SingleApplication::app_t::applicationName().toUtf8() );
|
||||||
appData.addData( SingleApplication::app_t::organizationName().toUtf8() );
|
appData.addData( SingleApplication::app_t::organizationName().toUtf8() );
|
||||||
appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() );
|
appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() );
|
||||||
|
|
||||||
if( ! (options & SingleApplication::Mode::ExcludeAppVersion) ) {
|
if ( ! appDataList.isEmpty() )
|
||||||
appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() );
|
appData.addData( appDataList.join( "" ).toUtf8() );
|
||||||
}
|
|
||||||
|
if( ! (options & SingleApplication::Mode::ExcludeAppVersion) ){
|
||||||
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ) {
|
appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ){
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
|
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
|
||||||
#else
|
#else
|
||||||
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
|
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// User level block requires a user specific data in the hash
|
// User level block requires a user specific data in the hash
|
||||||
if( options & SingleApplication::Mode::User ) {
|
if( options & SingleApplication::Mode::User ){
|
||||||
#ifdef Q_OS_WIN
|
appData.addData( getUsername().toUtf8() );
|
||||||
wchar_t username [ UNLEN + 1 ];
|
}
|
||||||
// Specifies size of the buffer on input
|
|
||||||
DWORD usernameLength = UNLEN + 1;
|
// Replace the backslash in RFC 2045 Base64 [a-zA-Z0-9+/=] to comply with
|
||||||
if( GetUserNameW( username, &usernameLength ) ) {
|
// server naming requirements.
|
||||||
appData.addData( QString::fromWCharArray(username).toUtf8() );
|
blockServerName = appData.result().toBase64().replace("/", "_");
|
||||||
} else {
|
|
||||||
appData.addData( qgetenv("USERNAME") );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef Q_OS_UNIX
|
|
||||||
QByteArray username;
|
|
||||||
uid_t uid = geteuid();
|
|
||||||
struct passwd *pw = getpwuid(uid);
|
|
||||||
if( pw ) {
|
|
||||||
username = pw->pw_name;
|
|
||||||
}
|
|
||||||
if( username.isEmpty() ) {
|
|
||||||
username = qgetenv("USER");
|
|
||||||
}
|
|
||||||
appData.addData(username);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace the backslash in RFC 2045 Base64 [a-zA-Z0-9+/=] to comply with
|
|
||||||
// server naming requirements.
|
|
||||||
blockServerName = appData.result().toBase64().replace("/", "_");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SingleApplicationPrivate::initializeMemoryBlock()
|
void SingleApplicationPrivate::initializeMemoryBlock() const
|
||||||
{
|
{
|
||||||
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
|
auto *inst = static_cast<InstancesInfo*>( memory->data() );
|
||||||
inst->primary = false;
|
inst->primary = false;
|
||||||
inst->secondary = 0;
|
inst->secondary = 0;
|
||||||
inst->primaryPid = -1;
|
inst->primaryPid = -1;
|
||||||
inst->checksum = blockChecksum();
|
inst->primaryUser[0] = '\0';
|
||||||
|
inst->checksum = blockChecksum();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SingleApplicationPrivate::startPrimary()
|
void SingleApplicationPrivate::startPrimary()
|
||||||
{
|
{
|
||||||
Q_Q(SingleApplication);
|
// Reset the number of connections
|
||||||
|
auto *inst = static_cast <InstancesInfo*>( memory->data() );
|
||||||
// Successful creation means that no main process exists
|
|
||||||
// So we start a QLocalServer to listen for connections
|
inst->primary = true;
|
||||||
QLocalServer::removeServer( blockServerName );
|
inst->primaryPid = QCoreApplication::applicationPid();
|
||||||
server = new QLocalServer();
|
qstrncpy( inst->primaryUser, getUsername().toUtf8().data(), sizeof(inst->primaryUser) );
|
||||||
|
inst->checksum = blockChecksum();
|
||||||
// Restrict access to the socket according to the
|
instanceNumber = 0;
|
||||||
// SingleApplication::Mode::User flag on User level or no restrictions
|
// Successful creation means that no main process exists
|
||||||
if( options & SingleApplication::Mode::User ) {
|
// So we start a QLocalServer to listen for connections
|
||||||
server->setSocketOptions( QLocalServer::UserAccessOption );
|
QLocalServer::removeServer( blockServerName );
|
||||||
} else {
|
server = new QLocalServer();
|
||||||
server->setSocketOptions( QLocalServer::WorldAccessOption );
|
|
||||||
}
|
// Restrict access to the socket according to the
|
||||||
|
// SingleApplication::Mode::User flag on User level or no restrictions
|
||||||
server->listen( blockServerName );
|
if( options & SingleApplication::Mode::User ){
|
||||||
QObject::connect(
|
server->setSocketOptions( QLocalServer::UserAccessOption );
|
||||||
server,
|
} else {
|
||||||
&QLocalServer::newConnection,
|
server->setSocketOptions( QLocalServer::WorldAccessOption );
|
||||||
this,
|
}
|
||||||
&SingleApplicationPrivate::slotConnectionEstablished
|
|
||||||
);
|
server->listen( blockServerName );
|
||||||
|
QObject::connect(
|
||||||
// Reset the number of connections
|
server,
|
||||||
InstancesInfo* inst = static_cast <InstancesInfo*>( memory->data() );
|
&QLocalServer::newConnection,
|
||||||
|
this,
|
||||||
inst->primary = true;
|
&SingleApplicationPrivate::slotConnectionEstablished
|
||||||
inst->primaryPid = q->applicationPid();
|
);
|
||||||
inst->checksum = blockChecksum();
|
|
||||||
|
|
||||||
instanceNumber = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SingleApplicationPrivate::startSecondary()
|
void SingleApplicationPrivate::startSecondary()
|
||||||
{
|
{
|
||||||
|
auto *inst = static_cast <InstancesInfo*>( memory->data() );
|
||||||
|
|
||||||
|
inst->secondary += 1;
|
||||||
|
inst->checksum = blockChecksum();
|
||||||
|
instanceNumber = inst->secondary;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType connectionType )
|
bool SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType connectionType )
|
||||||
{
|
{
|
||||||
// Connect to the Local Server of the Primary Instance if not already
|
QElapsedTimer time;
|
||||||
// connected.
|
time.start();
|
||||||
if( socket == nullptr ) {
|
|
||||||
socket = new QLocalSocket();
|
// Connect to the Local Server of the Primary Instance if not already
|
||||||
}
|
// connected.
|
||||||
|
if( socket == nullptr ){
|
||||||
// If already connected - we are done;
|
socket = new QLocalSocket();
|
||||||
if( socket->state() == QLocalSocket::ConnectedState )
|
}
|
||||||
return;
|
|
||||||
|
if( socket->state() == QLocalSocket::ConnectedState ) return true;
|
||||||
// If not connect
|
|
||||||
if( socket->state() == QLocalSocket::UnconnectedState ||
|
if( socket->state() != QLocalSocket::ConnectedState ){
|
||||||
socket->state() == QLocalSocket::ClosingState ) {
|
|
||||||
socket->connectToServer( blockServerName );
|
while( true ){
|
||||||
}
|
randomSleep();
|
||||||
|
|
||||||
// Wait for being connected
|
if( socket->state() != QLocalSocket::ConnectingState )
|
||||||
if( socket->state() == QLocalSocket::ConnectingState ) {
|
socket->connectToServer( blockServerName );
|
||||||
socket->waitForConnected( msecs );
|
|
||||||
}
|
if( socket->state() == QLocalSocket::ConnectingState ){
|
||||||
|
socket->waitForConnected( static_cast<int>(msecs - time.elapsed()) );
|
||||||
// Initialisation message according to the SingleApplication protocol
|
}
|
||||||
if( socket->state() == QLocalSocket::ConnectedState ) {
|
|
||||||
// Notify the parent that a new instance had been started;
|
// If connected break out of the loop
|
||||||
QByteArray initMsg;
|
if( socket->state() == QLocalSocket::ConnectedState ) break;
|
||||||
QDataStream writeStream(&initMsg, QIODevice::WriteOnly);
|
|
||||||
|
// 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))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||||
writeStream.setVersion(QDataStream::Qt_5_6);
|
writeStream.setVersion(QDataStream::Qt_5_6);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
writeStream << blockServerName.toLatin1();
|
writeStream << blockServerName.toLatin1();
|
||||||
writeStream << static_cast<quint8>(connectionType);
|
writeStream << static_cast<quint8>(connectionType);
|
||||||
writeStream << instanceNumber;
|
writeStream << instanceNumber;
|
||||||
quint16 checksum = qChecksum(initMsg.constData(), static_cast<quint32>(initMsg.length()));
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||||
writeStream << checksum;
|
quint16 checksum = qChecksum(QByteArray(initMsg, static_cast<quint32>(initMsg.length())));
|
||||||
|
#else
|
||||||
// The header indicates the message length that follows
|
quint16 checksum = qChecksum(initMsg.constData(), static_cast<quint32>(initMsg.length()));
|
||||||
QByteArray header;
|
#endif
|
||||||
QDataStream headerStream(&header, QIODevice::WriteOnly);
|
writeStream << checksum;
|
||||||
|
|
||||||
|
// The header indicates the message length that follows
|
||||||
|
QByteArray header;
|
||||||
|
QDataStream headerStream(&header, QIODevice::WriteOnly);
|
||||||
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||||
headerStream.setVersion(QDataStream::Qt_5_6);
|
headerStream.setVersion(QDataStream::Qt_5_6);
|
||||||
#endif
|
#endif
|
||||||
headerStream << static_cast <quint64>( initMsg.length() );
|
headerStream << static_cast <quint64>( initMsg.length() );
|
||||||
|
|
||||||
socket->write( header );
|
socket->write( header );
|
||||||
socket->write( initMsg );
|
socket->write( initMsg );
|
||||||
socket->flush();
|
bool result = socket->waitForBytesWritten( static_cast<int>(msecs - time.elapsed()) );
|
||||||
socket->waitForBytesWritten( msecs );
|
socket->flush();
|
||||||
}
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
quint16 SingleApplicationPrivate::blockChecksum()
|
quint16 SingleApplicationPrivate::blockChecksum() const
|
||||||
{
|
{
|
||||||
return qChecksum(
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||||
static_cast <const char *>( memory->data() ),
|
quint16 checksum = qChecksum(QByteArray(static_cast<const char*>(memory->constData()), offsetof(InstancesInfo, checksum)));
|
||||||
offsetof( InstancesInfo, checksum )
|
#else
|
||||||
);
|
quint16 checksum = qChecksum(static_cast<const char*>(memory->constData()), offsetof(InstancesInfo, checksum));
|
||||||
|
#endif
|
||||||
|
return checksum;
|
||||||
}
|
}
|
||||||
|
|
||||||
qint64 SingleApplicationPrivate::primaryPid()
|
qint64 SingleApplicationPrivate::primaryPid() const
|
||||||
{
|
{
|
||||||
qint64 pid;
|
qint64 pid;
|
||||||
|
|
||||||
memory->lock();
|
memory->lock();
|
||||||
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
|
auto *inst = static_cast<InstancesInfo*>( memory->data() );
|
||||||
pid = inst->primaryPid;
|
pid = inst->primaryPid;
|
||||||
memory->unlock();
|
memory->unlock();
|
||||||
|
|
||||||
return pid;
|
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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -262,144 +318,169 @@ qint64 SingleApplicationPrivate::primaryPid()
|
|||||||
*/
|
*/
|
||||||
void SingleApplicationPrivate::slotConnectionEstablished()
|
void SingleApplicationPrivate::slotConnectionEstablished()
|
||||||
{
|
{
|
||||||
QLocalSocket *nextConnSocket = server->nextPendingConnection();
|
QLocalSocket *nextConnSocket = server->nextPendingConnection();
|
||||||
connectionMap.insert(nextConnSocket, ConnectionInfo());
|
connectionMap.insert(nextConnSocket, ConnectionInfo());
|
||||||
|
|
||||||
QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose,
|
QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose,
|
||||||
[nextConnSocket, this]() {
|
[nextConnSocket, this](){
|
||||||
auto &info = connectionMap[nextConnSocket];
|
auto &info = connectionMap[nextConnSocket];
|
||||||
Q_EMIT this->slotClientConnectionClosed( nextConnSocket, info.instanceId );
|
Q_EMIT this->slotClientConnectionClosed( nextConnSocket, info.instanceId );
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
QObject::connect(nextConnSocket, &QLocalSocket::disconnected,
|
QObject::connect(nextConnSocket, &QLocalSocket::disconnected, nextConnSocket, &QLocalSocket::deleteLater);
|
||||||
[nextConnSocket, this](){
|
|
||||||
connectionMap.remove(nextConnSocket);
|
QObject::connect(nextConnSocket, &QLocalSocket::destroyed,
|
||||||
nextConnSocket->deleteLater();
|
[nextConnSocket, this](){
|
||||||
}
|
connectionMap.remove(nextConnSocket);
|
||||||
);
|
}
|
||||||
|
);
|
||||||
QObject::connect(nextConnSocket, &QLocalSocket::readyRead,
|
|
||||||
[nextConnSocket, this]() {
|
QObject::connect(nextConnSocket, &QLocalSocket::readyRead,
|
||||||
auto &info = connectionMap[nextConnSocket];
|
[nextConnSocket, this](){
|
||||||
switch(info.stage) {
|
auto &info = connectionMap[nextConnSocket];
|
||||||
case StageHeader:
|
switch(info.stage){
|
||||||
readInitMessageHeader(nextConnSocket);
|
case StageHeader:
|
||||||
break;
|
readInitMessageHeader(nextConnSocket);
|
||||||
case StageBody:
|
break;
|
||||||
readInitMessageBody(nextConnSocket);
|
case StageBody:
|
||||||
break;
|
readInitMessageBody(nextConnSocket);
|
||||||
case StageConnected:
|
break;
|
||||||
Q_EMIT this->slotDataAvailable( nextConnSocket, info.instanceId );
|
case StageConnected:
|
||||||
break;
|
Q_EMIT this->slotDataAvailable( nextConnSocket, info.instanceId );
|
||||||
default:
|
break;
|
||||||
break;
|
default:
|
||||||
};
|
break;
|
||||||
}
|
};
|
||||||
);
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock )
|
void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock )
|
||||||
{
|
{
|
||||||
if (!connectionMap.contains( sock )) {
|
if (!connectionMap.contains( sock )){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ) {
|
if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDataStream headerStream( sock );
|
QDataStream headerStream( sock );
|
||||||
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||||
headerStream.setVersion( QDataStream::Qt_5_6 );
|
headerStream.setVersion( QDataStream::Qt_5_6 );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Read the header to know the message length
|
// Read the header to know the message length
|
||||||
quint64 msgLen = 0;
|
quint64 msgLen = 0;
|
||||||
headerStream >> msgLen;
|
headerStream >> msgLen;
|
||||||
ConnectionInfo &info = connectionMap[sock];
|
ConnectionInfo &info = connectionMap[sock];
|
||||||
info.stage = StageBody;
|
info.stage = StageBody;
|
||||||
info.msgLen = msgLen;
|
info.msgLen = msgLen;
|
||||||
|
|
||||||
if ( sock->bytesAvailable() >= (qint64) msgLen ) {
|
if ( sock->bytesAvailable() >= (qint64) msgLen ){
|
||||||
readInitMessageBody( sock );
|
readInitMessageBody( sock );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
|
void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
|
||||||
{
|
{
|
||||||
Q_Q(SingleApplication);
|
Q_Q(SingleApplication);
|
||||||
|
|
||||||
if (!connectionMap.contains( sock )) {
|
if (!connectionMap.contains( sock )){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConnectionInfo &info = connectionMap[sock];
|
ConnectionInfo &info = connectionMap[sock];
|
||||||
if( sock->bytesAvailable() < ( qint64 )info.msgLen ) {
|
if( sock->bytesAvailable() < ( qint64 )info.msgLen ){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the message body
|
// Read the message body
|
||||||
QByteArray msgBytes = sock->read(info.msgLen);
|
QByteArray msgBytes = sock->read(info.msgLen);
|
||||||
QDataStream readStream(msgBytes);
|
QDataStream readStream(msgBytes);
|
||||||
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||||
readStream.setVersion( QDataStream::Qt_5_6 );
|
readStream.setVersion( QDataStream::Qt_5_6 );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// server name
|
// server name
|
||||||
QByteArray latin1Name;
|
QByteArray latin1Name;
|
||||||
readStream >> latin1Name;
|
readStream >> latin1Name;
|
||||||
|
|
||||||
// connection type
|
// connection type
|
||||||
ConnectionType connectionType = InvalidConnection;
|
ConnectionType connectionType = InvalidConnection;
|
||||||
quint8 connTypeVal = InvalidConnection;
|
quint8 connTypeVal = InvalidConnection;
|
||||||
readStream >> connTypeVal;
|
readStream >> connTypeVal;
|
||||||
connectionType = static_cast <ConnectionType>( connTypeVal );
|
connectionType = static_cast <ConnectionType>( connTypeVal );
|
||||||
|
|
||||||
// instance id
|
// instance id
|
||||||
quint32 instanceId = 0;
|
quint32 instanceId = 0;
|
||||||
readStream >> instanceId;
|
readStream >> instanceId;
|
||||||
|
|
||||||
// checksum
|
// checksum
|
||||||
quint16 msgChecksum = 0;
|
quint16 msgChecksum = 0;
|
||||||
readStream >> msgChecksum;
|
readStream >> msgChecksum;
|
||||||
|
|
||||||
const quint16 actualChecksum = qChecksum( msgBytes.constData(), static_cast<quint32>( msgBytes.length() - sizeof( quint16 ) ) );
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
const quint16 actualChecksum = qChecksum(QByteArray(msgBytes, static_cast<quint32>(msgBytes.length() - sizeof(quint16))));
|
||||||
bool isValid = readStream.status() == QDataStream::Ok &&
|
#else
|
||||||
QLatin1String(latin1Name) == blockServerName &&
|
const quint16 actualChecksum = qChecksum(msgBytes.constData(), static_cast<quint32>(msgBytes.length() - sizeof(quint16)));
|
||||||
msgChecksum == actualChecksum;
|
#endif
|
||||||
|
|
||||||
if( !isValid ) {
|
bool isValid = readStream.status() == QDataStream::Ok &&
|
||||||
sock->close();
|
QLatin1String(latin1Name) == blockServerName &&
|
||||||
return;
|
msgChecksum == actualChecksum;
|
||||||
}
|
|
||||||
|
if( !isValid ){
|
||||||
info.instanceId = instanceId;
|
sock->close();
|
||||||
info.stage = StageConnected;
|
return;
|
||||||
|
}
|
||||||
if( connectionType == NewInstance ||
|
|
||||||
( connectionType == SecondaryInstance &&
|
info.instanceId = instanceId;
|
||||||
options & SingleApplication::Mode::SecondaryNotification ) )
|
info.stage = StageConnected;
|
||||||
{
|
|
||||||
Q_EMIT q->instanceStarted();
|
if( connectionType == NewInstance ||
|
||||||
}
|
( connectionType == SecondaryInstance &&
|
||||||
|
options & SingleApplication::Mode::SecondaryNotification ) )
|
||||||
if (sock->bytesAvailable() > 0) {
|
{
|
||||||
Q_EMIT this->slotDataAvailable( sock, instanceId );
|
Q_EMIT q->instanceStarted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sock->bytesAvailable() > 0){
|
||||||
|
Q_EMIT this->slotDataAvailable( sock, instanceId );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quint32 instanceId )
|
void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quint32 instanceId )
|
||||||
{
|
{
|
||||||
Q_Q(SingleApplication);
|
Q_Q(SingleApplication);
|
||||||
Q_EMIT q->receivedMessage( instanceId, dataSocket->readAll() );
|
Q_EMIT q->receivedMessage( instanceId, dataSocket->readAll() );
|
||||||
}
|
}
|
||||||
|
|
||||||
void SingleApplicationPrivate::slotClientConnectionClosed( QLocalSocket *closedSocket, quint32 instanceId )
|
void SingleApplicationPrivate::slotClientConnectionClosed( QLocalSocket *closedSocket, quint32 instanceId )
|
||||||
{
|
{
|
||||||
if( closedSocket->bytesAvailable() > 0 )
|
if( closedSocket->bytesAvailable() > 0 )
|
||||||
Q_EMIT slotDataAvailable( closedSocket, instanceId );
|
Q_EMIT 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( 8 + static_cast <unsigned long>( static_cast <float>( qrand() ) / RAND_MAX * 10 ));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void SingleApplicationPrivate::addAppData(const QString &data)
|
||||||
|
{
|
||||||
|
appDataList.push_back(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList SingleApplicationPrivate::appData() const
|
||||||
|
{
|
||||||
|
return appDataList;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// The MIT License (MIT)
|
// The MIT License (MIT)
|
||||||
//
|
//
|
||||||
// Copyright (c) Itay Grudev 2015 - 2016
|
// Copyright (c) Itay Grudev 2015 - 2020
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -38,62 +38,67 @@
|
|||||||
#include "singleapplication.h"
|
#include "singleapplication.h"
|
||||||
|
|
||||||
struct InstancesInfo {
|
struct InstancesInfo {
|
||||||
bool primary;
|
bool primary;
|
||||||
quint32 secondary;
|
quint32 secondary;
|
||||||
qint64 primaryPid;
|
qint64 primaryPid;
|
||||||
quint16 checksum;
|
char primaryUser[128];
|
||||||
|
quint16 checksum; // Must be the last field
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ConnectionInfo {
|
struct ConnectionInfo {
|
||||||
explicit ConnectionInfo() :
|
qint64 msgLen = 0;
|
||||||
msgLen(0), instanceId(0), stage(0) {}
|
quint32 instanceId = 0;
|
||||||
qint64 msgLen;
|
quint8 stage = 0;
|
||||||
quint32 instanceId;
|
|
||||||
quint8 stage;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class SingleApplicationPrivate : public QObject {
|
class SingleApplicationPrivate : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
enum ConnectionType : quint8 {
|
enum ConnectionType : quint8 {
|
||||||
InvalidConnection = 0,
|
InvalidConnection = 0,
|
||||||
NewInstance = 1,
|
NewInstance = 1,
|
||||||
SecondaryInstance = 2,
|
SecondaryInstance = 2,
|
||||||
Reconnect = 3
|
Reconnect = 3
|
||||||
};
|
};
|
||||||
enum ConnectionStage : quint8 {
|
enum ConnectionStage : quint8 {
|
||||||
StageHeader = 0,
|
StageHeader = 0,
|
||||||
StageBody = 1,
|
StageBody = 1,
|
||||||
StageConnected = 2,
|
StageConnected = 2,
|
||||||
};
|
};
|
||||||
Q_DECLARE_PUBLIC(SingleApplication)
|
Q_DECLARE_PUBLIC(SingleApplication)
|
||||||
|
|
||||||
SingleApplicationPrivate( SingleApplication *q_ptr );
|
SingleApplicationPrivate( SingleApplication *q_ptr );
|
||||||
~SingleApplicationPrivate();
|
~SingleApplicationPrivate() override;
|
||||||
|
|
||||||
void genBlockServerName();
|
static QString getUsername();
|
||||||
void initializeMemoryBlock();
|
void genBlockServerName();
|
||||||
void startPrimary();
|
void initializeMemoryBlock() const;
|
||||||
void startSecondary();
|
void startPrimary();
|
||||||
void connectToPrimary(int msecs, ConnectionType connectionType );
|
void startSecondary();
|
||||||
quint16 blockChecksum();
|
bool connectToPrimary( int msecs, ConnectionType connectionType );
|
||||||
qint64 primaryPid();
|
quint16 blockChecksum() const;
|
||||||
void readInitMessageHeader(QLocalSocket *socket);
|
qint64 primaryPid() const;
|
||||||
void readInitMessageBody(QLocalSocket *socket);
|
QString primaryUser() const;
|
||||||
|
void readInitMessageHeader(QLocalSocket *socket);
|
||||||
SingleApplication *q_ptr;
|
void readInitMessageBody(QLocalSocket *socket);
|
||||||
QSharedMemory *memory;
|
static void randomSleep();
|
||||||
QLocalSocket *socket;
|
void addAppData(const QString &data);
|
||||||
QLocalServer *server;
|
QStringList appData() const;
|
||||||
quint32 instanceNumber;
|
|
||||||
QString blockServerName;
|
SingleApplication *q_ptr;
|
||||||
SingleApplication::Options options;
|
QSharedMemory *memory;
|
||||||
QMap<QLocalSocket*, ConnectionInfo> connectionMap;
|
QLocalSocket *socket;
|
||||||
|
QLocalServer *server;
|
||||||
public Q_SLOTS:
|
quint32 instanceNumber;
|
||||||
void slotConnectionEstablished();
|
QString blockServerName;
|
||||||
void slotDataAvailable( QLocalSocket*, quint32 );
|
SingleApplication::Options options;
|
||||||
void slotClientConnectionClosed( QLocalSocket*, quint32 );
|
QMap<QLocalSocket*, ConnectionInfo> connectionMap;
|
||||||
|
QStringList appDataList;
|
||||||
|
|
||||||
|
public Q_SLOTS:
|
||||||
|
void slotConnectionEstablished();
|
||||||
|
void slotDataAvailable( QLocalSocket*, quint32 );
|
||||||
|
void slotClientConnectionClosed( QLocalSocket*, quint32 );
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SINGLEAPPLICATION_P_H
|
#endif // SINGLEAPPLICATION_P_H
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "org.qelectrotech.QElectroTech",
|
"id": "org.qelectrotech.QElectroTech",
|
||||||
"runtime": "org.kde.Platform",
|
"runtime": "org.kde.Platform",
|
||||||
"runtime-version": "5.14",
|
"runtime-version": "5.15",
|
||||||
"sdk": "org.kde.Sdk",
|
"sdk": "org.kde.Sdk",
|
||||||
"command": "qelectrotech",
|
"command": "qelectrotech",
|
||||||
"rename-desktop-file": "qelectrotech.desktop",
|
"rename-desktop-file": "qelectrotech.desktop",
|
||||||
@@ -10,17 +10,61 @@
|
|||||||
"copy-icon": true,
|
"copy-icon": true,
|
||||||
"finish-args": [
|
"finish-args": [
|
||||||
"--socket=wayland",
|
"--socket=wayland",
|
||||||
"--socket=x11",
|
"--socket=fallback-x11",
|
||||||
"--device=dri",
|
"--device=dri",
|
||||||
"--share=ipc",
|
"--share=ipc",
|
||||||
"--filesystem=host"
|
"--filesystem=host"
|
||||||
],
|
],
|
||||||
"modules": [
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "tkinter",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"pip3 install --prefix=${FLATPAK_DEST} ."
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/iwalton3/tkinter-standalone",
|
||||||
|
"commit": "2301112d142ebaf7532b25600c77d1a2edc9ef04"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"name": "tcl",
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"url": "https://sourceforge.net/projects/tcl/files/Tcl/8.6.11/tcl8.6.11-src.tar.gz",
|
||||||
|
"sha256": "8c0486668586672c5693d7d95817cb05a18c5ecca2f40e2836b9578064088258"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subdir": "unix",
|
||||||
|
"post-install": [
|
||||||
|
"chmod +w ${FLATPAK_DEST}/lib/libtcl8.6.so"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "tk",
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"url": "https://sourceforge.net/projects/tcl/files/Tcl/8.6.11/tk8.6.11-src.tar.gz",
|
||||||
|
"sha256": "5228a8187a7f70fa0791ef0f975270f068ba9557f57456f51eb02d9d4ea31282"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subdir": "unix",
|
||||||
|
"post-install": [
|
||||||
|
"chmod +w ${FLATPAK_DEST}/lib/libtk8.6.so"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "qelectrotech",
|
"name": "qelectrotech",
|
||||||
"buildsystem": "qmake",
|
"buildsystem": "qmake",
|
||||||
"post-install": [
|
"post-install": [
|
||||||
"mv /app/share/mime/packages/qelectrotech.xml /app/share/mime/packages/org.qelectrotech.QElectroTech.xml"
|
"mv ${FLATPAK_DEST}/share/mime/packages/qelectrotech.xml ${FLATPAK_DEST}/share/mime/packages/org.qelectrotech.QElectroTech.xml"
|
||||||
],
|
],
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
@@ -32,6 +76,50 @@
|
|||||||
"path": "patches/0001-build-Fix-the-installation-paths.patch"
|
"path": "patches/0001-build-Fix-the-installation-paths.patch"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"name": "python3.6.0",
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"url": "https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz",
|
||||||
|
"sha256": "b0c5f904f685e32d9232f7bdcbece9819a892929063b6e385414ad2dd6a23622"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"config-opts": ["--enable-shared"],
|
||||||
|
"post-install": [
|
||||||
|
"chmod +w ${FLATPAK_DEST}/lib/libpython3.6m.so.1.0",
|
||||||
|
"chmod +w ${FLATPAK_DEST}/lib/libpython3.so"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "python3-qet-tb-generator",
|
||||||
|
"buildsystem": "simple",
|
||||||
|
"build-commands": [
|
||||||
|
"pip3 install --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} qet-tb-generator"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"url": "https://files.pythonhosted.org/packages/9e/c3/aaad3309a5f2ca08e2fa0ab01123bb6fafb15a92854bff88042039192a67/qet_tb_generator-1.1.7.tar.gz",
|
||||||
|
"sha256": "f626ab7bf4d9091fc85f63d33136585e611272b347499b448ece4e33cc04eeed"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DXFtoQET-2020-1",
|
||||||
|
"buildsystem": "qmake",
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/qelectrotech/DXFtoQET-2020.git",
|
||||||
|
"commit": "01fbb2afe0fe66782cb1d1f901c73616c7d5299d"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-install": [
|
||||||
|
"mkdir -p ${FLATPAK_DEST}/bin",
|
||||||
|
"cp DXFtoQET ${FLATPAK_DEST}/bin/"
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
From 579ee22f1d2bef560ec90d324a0e476b81faf495 Mon Sep 17 00:00:00 2001
|
From 2a390b5188fe070295090b1bd37273d12963b371 Mon Sep 17 00:00:00 2001
|
||||||
From: Mathieu Bridon <mathieu@hashbang.fr>
|
From: Laurent Trinques <scorpio@qelectrotech.org>
|
||||||
Date: Tue, 7 Jan 2020 14:39:08 +0100
|
Date: Sat, 26 Sep 2020 22:52:52 +0200
|
||||||
Subject: [PATCH] build: Fix the installation paths
|
Subject: [PATCH] build: Fix the installation paths
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -8,37 +8,37 @@ Subject: [PATCH] build: Fix the installation paths
|
|||||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
diff --git a/qelectrotech.pro b/qelectrotech.pro
|
diff --git a/qelectrotech.pro b/qelectrotech.pro
|
||||||
index 07e51fb..2a86b91 100644
|
index 2901a30d5..1019a9870 100644
|
||||||
--- a/qelectrotech.pro
|
--- a/qelectrotech.pro
|
||||||
+++ b/qelectrotech.pro
|
+++ b/qelectrotech.pro
|
||||||
@@ -5,20 +5,20 @@
|
@@ -5,20 +5,20 @@
|
||||||
# Chemins utilises pour la compilation et l'installation de QET
|
# Chemins utilises pour la compilation et l'installation de QET
|
||||||
unix {
|
unix {
|
||||||
# Chemins UNIX
|
# Chemins UNIX
|
||||||
- COMPIL_PREFIX = '/usr/local/'
|
- COMPIL_PREFIX = '/usr/local/'
|
||||||
- INSTALL_PREFIX = '/usr/local/'
|
- INSTALL_PREFIX = '/usr/local/'
|
||||||
+ COMPIL_PREFIX = '/app/'
|
+ COMPIL_PREFIX = '/app/'
|
||||||
+ INSTALL_PREFIX = '/app/'
|
+ INSTALL_PREFIX = '/app/'
|
||||||
QET_BINARY_PATH = 'bin/'
|
QET_BINARY_PATH = 'bin/'
|
||||||
QET_COMMON_COLLECTION_PATH = 'share/qelectrotech/elements/'
|
QET_COMMON_COLLECTION_PATH = 'share/qelectrotech/elements/'
|
||||||
QET_COMMON_TBT_PATH = 'share/qelectrotech/titleblocks/'
|
QET_COMMON_TBT_PATH = 'share/qelectrotech/titleblocks/'
|
||||||
QET_LANG_PATH = 'share/qelectrotech/lang/'
|
QET_LANG_PATH = 'share/qelectrotech/lang/'
|
||||||
QET_EXAMPLES_PATH = 'share/qelectrotech/examples/'
|
QET_EXAMPLES_PATH = 'share/qelectrotech/examples/'
|
||||||
- QET_LICENSE_PATH = 'doc/qelectrotech/'
|
- QET_LICENSE_PATH = 'doc/qelectrotech/'
|
||||||
- QET_MIME_XML_PATH = '../share/mime/application/'
|
- QET_MIME_XML_PATH = '../share/mime/application/'
|
||||||
- QET_MIME_DESKTOP_PATH = '../share/mimelnk/application/'
|
- QET_MIME_DESKTOP_PATH = '../share/mimelnk/application/'
|
||||||
- QET_MIME_PACKAGE_PATH = '../share/mime/packages/'
|
- QET_MIME_PACKAGE_PATH = '../share/mime/packages/'
|
||||||
+ QET_LICENSE_PATH = 'share/doc/qelectrotech/'
|
+ QET_LICENSE_PATH = 'share/doc/qelectrotech/'
|
||||||
+ QET_MIME_XML_PATH = 'share/mime/application/'
|
+ QET_MIME_XML_PATH = 'share/mime/application/'
|
||||||
+ QET_MIME_DESKTOP_PATH = 'share/mimelnk/application/'
|
+ QET_MIME_DESKTOP_PATH = 'share/mimelnk/application/'
|
||||||
+ QET_MIME_PACKAGE_PATH = 'share/mime/packages/'
|
+ QET_MIME_PACKAGE_PATH = 'share/mime/packages/'
|
||||||
QET_DESKTOP_PATH = 'share/applications/'
|
QET_DESKTOP_PATH = 'share/applications/'
|
||||||
QET_ICONS_PATH = 'share/icons/hicolor/'
|
QET_ICONS_PATH = 'share/icons/hicolor/'
|
||||||
- QET_MAN_PATH = 'man/'
|
- QET_MAN_PATH = 'man/'
|
||||||
+ QET_MAN_PATH = 'share/man/'
|
+ QET_MAN_PATH = 'share/man/'
|
||||||
QET_APPDATA_PATH = 'share/appdata'
|
QET_APPDATA_PATH = 'share/appdata'
|
||||||
}
|
}
|
||||||
win32 {
|
win32 {
|
||||||
--
|
--
|
||||||
2.24.1
|
2.28.0
|
||||||
|
|
||||||
|
|||||||
@@ -36,3 +36,6 @@ Elementen collectie voor QElectroTech.
|
|||||||
|
|
||||||
[da]
|
[da]
|
||||||
Symbol samling for QElectroTech.
|
Symbol samling for QElectroTech.
|
||||||
|
|
||||||
|
[ja]
|
||||||
|
QElectroTech の要素コレクション。
|
||||||
|
|||||||
@@ -91,8 +91,10 @@ parts:
|
|||||||
after: [kde-sdk-setup]
|
after: [kde-sdk-setup]
|
||||||
plugin: nil
|
plugin: nil
|
||||||
source: .
|
source: .
|
||||||
|
stage-packages: [ git, sqlite3 ]
|
||||||
build-packages:
|
build-packages:
|
||||||
- git
|
- git
|
||||||
|
- libsqlite3-dev
|
||||||
override-pull: |
|
override-pull: |
|
||||||
snapcraftctl pull
|
snapcraftctl pull
|
||||||
snap_version=$(git describe --dirty)
|
snap_version=$(git describe --dirty)
|
||||||
|
|||||||
34
cmake/copyright_message.cmake
Normal file
34
cmake/copyright_message.cmake
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
message(
|
||||||
|
"_____________________________________________________________________"
|
||||||
|
"\nCopyright 2006 The QElectroTech Team"
|
||||||
|
"\nThis file is part of QElectroTech."
|
||||||
|
|
||||||
|
"\n\nQElectroTech is free software: you can redistribute it and/or modify"
|
||||||
|
"\nit under the terms of the GNU General Public License as published by"
|
||||||
|
"\nthe Free Software Foundation, either version 2 of the License, or"
|
||||||
|
"\n(at your option) any later version."
|
||||||
|
|
||||||
|
"\nQElectroTech is distributed in the hope that it will be useful,"
|
||||||
|
"\nbut WITHOUT ANY WARRANTY; without even the implied warranty of"
|
||||||
|
"\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"
|
||||||
|
"\nGNU General Public License for more details."
|
||||||
|
|
||||||
|
"\n\nYou should have received a copy of the GNU General Public License"
|
||||||
|
"\nalong with QElectroTech. If not, see <http://www.gnu.org/licenses/>.\n"
|
||||||
|
"_____________________________________________________________________")
|
||||||
73
cmake/define_definitions.cmake
Normal file
73
cmake/define_definitions.cmake
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# Paths used for compilation and installation of QET
|
||||||
|
|
||||||
|
message(" - define_definitions")
|
||||||
|
|
||||||
|
message("Paths used for compilation and installation of QET")
|
||||||
|
message("--------------------------------------------------")
|
||||||
|
message("COMPIL_PREFIX " ${COMPIL_PREFIX})
|
||||||
|
message("INSTALL_PREFIX " ${INSTALL_PREFIX})
|
||||||
|
message("QET_BINARY_PATH " ${QET_BINARY_PATH})
|
||||||
|
|
||||||
|
if(${QET_COMMON_COLLECTION_PATH} STRGREATER "")
|
||||||
|
message("QET_COMMON_COLLECTION_PATH " ${INSTALL_PREFIX}${QET_COMMON_COLLECTION_PATH})
|
||||||
|
add_definitions(-DQET_COMMON_COLLECTION_PATH=${INSTALL_PREFIX}${QET_COMMON_COLLECTION_PATH})
|
||||||
|
endif()
|
||||||
|
if(${QET_COMMON_TBT_PATH} STRGREATER "")
|
||||||
|
message("QET_COMMON_TBT_PATH " ${INSTALL_PREFIX}${QET_COMMON_TBT_PATH})
|
||||||
|
add_definitions(-DQET_COMMON_TBT_PATH=${INSTALL_PREFIX}${QET_COMMON_TBT_PATH})
|
||||||
|
endif()
|
||||||
|
if(${QET_LANG_PATH_RELATIVE_TO_BINARY_PATH})
|
||||||
|
add_definitions(-DQET_LANG_PATH_RELATIVE_TO_BINARY_PATH)
|
||||||
|
endif()
|
||||||
|
if(${QET_LANG_PATH} STRGREATER "")
|
||||||
|
message("QET_LANG_PATH " ${INSTALL_PREFIX}${QET_LANG_PATH})
|
||||||
|
add_definitions(-DQET_LANG_PATH=${INSTALL_PREFIX}${QET_LANG_PATH})
|
||||||
|
endif()
|
||||||
|
if (NOT MINGW)
|
||||||
|
if(${QET_EXAMPLES_PATH} STRGREATER "")
|
||||||
|
message("QET_EXAMPLES_PATH " ${INSTALL_PREFIX}${QET_EXAMPLES_PATH})
|
||||||
|
add_definitions(-DQET_EXAMPLES_PATH=${INSTALL_PREFIX}${QET_EXAMPLES_PATH})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message("QET_LICENSE_PATH " ${QET_LICENSE_PATH})
|
||||||
|
message("QET_MIME_XML_PATH " ${QET_MIME_XML_PATH})
|
||||||
|
message("QET_MIME_DESKTOP_PATH " ${QET_MIME_DESKTOP_PATH})
|
||||||
|
message("QET_MIME_PACKAGE_PATH " ${QET_MIME_PACKAGE_PATH})
|
||||||
|
message("QET_DESKTOP_PATH " ${QET_DESKTOP_PATH})
|
||||||
|
message("QET_ICONS_PATH " ${QET_ICONS_PATH})
|
||||||
|
message("QET_MAN_PATH " ${QET_MAN_PATH})
|
||||||
|
message("QET_APPDATA_PATH " ${QET_APPDATA_PATH})
|
||||||
|
message("ICON " ${ICON})
|
||||||
|
message("--------------------------------------------------")
|
||||||
|
message("PROJECT_NAME :" ${PROJECT_NAME})
|
||||||
|
message("PROJECT_VERSION :" ${PROJECT_VERSION})
|
||||||
|
message("PROJECT_DESCRIPTION :" ${PROJECT_DESCRIPTION})
|
||||||
|
message("PROJECT_HOMEPAGE_URL :" ${PROJECT_HOMEPAGE_URL})
|
||||||
|
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)
|
||||||
|
endif()
|
||||||
|
message("QET_COMPONENTS :" ${QET_COMPONENTS})
|
||||||
|
message("QT_VERSION_MAJOR :" ${QT_VERSION_MAJOR})
|
||||||
35
cmake/developer_options.cmake
Normal file
35
cmake/developer_options.cmake
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
message(" - developer_options")
|
||||||
|
|
||||||
|
# warn on *any* usage of deprecated APIs
|
||||||
|
add_definitions(-DQT_DEPRECATED_WARNINGS)
|
||||||
|
|
||||||
|
# You can make your code fail to compile if it uses deprecated APIs.
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
# disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
#add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000)
|
||||||
|
|
||||||
|
# to enable function names and line numbers even for release builds
|
||||||
|
add_definitions(-DQT_MESSAGELOGCONTEXT)
|
||||||
|
|
||||||
|
# You can make your code warn on compile time for the TODO's
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
#add_definitions(-DTODO_LIST)
|
||||||
|
|
||||||
|
# Build with KF5
|
||||||
|
option(BUILD_WITH_KF5 "Build with KF5" ON)
|
||||||
67
cmake/fetch_kdeaddons.cmake
Normal file
67
cmake/fetch_kdeaddons.cmake
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
message(" - fetch_kdeaddons")
|
||||||
|
|
||||||
|
if(DEFINED BUILD_WITH_KF5)
|
||||||
|
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)
|
||||||
|
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})
|
||||||
|
FetchContent_MakeAvailable(kcoreaddons)
|
||||||
|
|
||||||
|
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)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(KF5_PRIVATE_LIBRARIES
|
||||||
|
KF5::WidgetsAddons
|
||||||
|
KF5::CoreAddons
|
||||||
|
)
|
||||||
|
endif()
|
||||||
33
cmake/fetch_pugixml.cmake
Normal file
33
cmake/fetch_pugixml.cmake
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
message(" - fetch_pugixml")
|
||||||
|
|
||||||
|
Include(FetchContent)
|
||||||
|
|
||||||
|
option(BUILD_PUGIXML "Build pugixml library, use system one otherwise" YES)
|
||||||
|
|
||||||
|
if(BUILD_PUGIXML)
|
||||||
|
|
||||||
|
FetchContent_Declare(
|
||||||
|
pugixml
|
||||||
|
GIT_REPOSITORY https://github.com/zeux/pugixml.git
|
||||||
|
GIT_TAG v1.11.4)
|
||||||
|
|
||||||
|
FetchContent_MakeAvailable(pugixml)
|
||||||
|
else()
|
||||||
|
find_package(pugixml REQUIRED)
|
||||||
|
endif()
|
||||||
31
cmake/fetch_singleapplication.cmake
Normal file
31
cmake/fetch_singleapplication.cmake
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
message(" - fetch_singleapplication")
|
||||||
|
|
||||||
|
# https://github.com/itay-grudev/SingleApplication/issues/18
|
||||||
|
#qmake
|
||||||
|
#DEFINES += QAPPLICATION_CLASS=QGuiApplication
|
||||||
|
set(QAPPLICATION_CLASS QApplication)
|
||||||
|
|
||||||
|
Include(FetchContent)
|
||||||
|
|
||||||
|
FetchContent_Declare(
|
||||||
|
SingleApplication
|
||||||
|
GIT_REPOSITORY https://github.com/itay-grudev/SingleApplication.git
|
||||||
|
GIT_TAG v3.2.0)
|
||||||
|
|
||||||
|
FetchContent_MakeAvailable(SingleApplication)
|
||||||
41
cmake/git_last_commit_sha.cmake
Normal file
41
cmake/git_last_commit_sha.cmake
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
message(" - git_last_commit_sha")
|
||||||
|
|
||||||
|
find_package(Git QUIET)
|
||||||
|
|
||||||
|
if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||||
|
#get GIT COMMIT SHA
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${GIT_EXECUTABLE} -C ${QET_DIR} rev-parse --verify HEAD
|
||||||
|
OUTPUT_VARIABLE GIT_COMMIT_SHA
|
||||||
|
RESULT_VARIABLE GIT_COMMIT_RESULT)
|
||||||
|
|
||||||
|
# This strips terminating newline in the variable
|
||||||
|
string(REGEX REPLACE "\n$" "" GIT_COMMIT_SHA "${GIT_COMMIT_SHA}")
|
||||||
|
|
||||||
|
if(NOT GIT_COMMIT_RESULT EQUAL "0")
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
"git rev-parse --verify HEAD failed with "
|
||||||
|
${GIT_COMMIT_RESULT}
|
||||||
|
", please check")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# This adds to definitions => .cpp
|
||||||
|
add_definitions(-DGIT_COMMIT_SHA="${GIT_COMMIT_SHA}")
|
||||||
35
cmake/git_update_submodules.cmake
Normal file
35
cmake/git_update_submodules.cmake
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
message(" - git_update_submodules")
|
||||||
|
|
||||||
|
find_package(Git QUIET)
|
||||||
|
|
||||||
|
if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||||
|
# updates all git submodules
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
RESULT_VARIABLE GIT_SUBMOD_RESULT)
|
||||||
|
|
||||||
|
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
"git submodule update --init failed with "
|
||||||
|
${GIT_SUBMOD_RESULT}
|
||||||
|
", please checkout submodules")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
25
cmake/hoto_update_cmake_message.cmake
Normal file
25
cmake/hoto_update_cmake_message.cmake
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
if(${CMAKE_VERSION} VERSION_LESS 3.14)
|
||||||
|
message(
|
||||||
|
"_____________________________________________________________________")
|
||||||
|
message("to update Cmake on linux:")
|
||||||
|
message("https://github.com/Kitware/CMake/")
|
||||||
|
message("linux => cmake-3.19.1-Linux-x86_64.sh")
|
||||||
|
message(" sudo ./cmake.sh --prefix=/usr/local/ --exclude-subdir")
|
||||||
|
message("windows good luck :)")
|
||||||
|
endif()
|
||||||
69
cmake/paths_compilation_installation.cmake
Normal file
69
cmake/paths_compilation_installation.cmake
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# Paths used for compilation and installation of QET
|
||||||
|
|
||||||
|
message(" - paths_compilation_installation")
|
||||||
|
|
||||||
|
if(UNIX AND NOT APPLE)
|
||||||
|
# for Linux, BSD, Solaris, Minix
|
||||||
|
set(COMPIL_PREFIX "/usr/local/")
|
||||||
|
set(INSTALL_PREFIX "/usr/local/")
|
||||||
|
set(QET_BINARY_PATH "bin/")
|
||||||
|
set(QET_COMMON_COLLECTION_PATH "share/qelectrotech/elements/")
|
||||||
|
set(QET_COMMON_TBT_PATH "share/qelectrotech/titleblocks/")
|
||||||
|
set(QET_LANG_PATH "share/qelectrotech/lang/")
|
||||||
|
set(QET_EXAMPLES_PATH "share/qelectrotech/examples/")
|
||||||
|
set(QET_LICENSE_PATH "doc/qelectrotech/")
|
||||||
|
set(QET_MIME_XML_PATH "../share/mime/application/")
|
||||||
|
set(QET_MIME_DESKTOP_PATH "../share/mimelnk/application/")
|
||||||
|
set(QET_MIME_PACKAGE_PATH "../share/mime/packages/")
|
||||||
|
set(QET_DESKTOP_PATH "share/applications/")
|
||||||
|
set(QET_ICONS_PATH "share/icons/hicolor/")
|
||||||
|
set(QET_MAN_PATH "man/")
|
||||||
|
set(QET_APPDATA_PATH "share/appdata")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
# for MacOS X or iOS, watchOS, tvOS (since 3.10.3)
|
||||||
|
set(COMPIL_PREFIX "./")
|
||||||
|
set(INSTALL_PREFIX "/usr/local/")
|
||||||
|
set(QET_BINARY_PATH "bin/")
|
||||||
|
set(QET_COMMON_COLLECTION_PATH "../Resources/elements/")
|
||||||
|
set(QET_COMMON_TBT_PATH "../Resources/titleblocks/")
|
||||||
|
set(QET_LANG_PATH "../Resources/lang/")
|
||||||
|
set(QET_EXAMPLES_PATH "share/qelectrotech/examples/")
|
||||||
|
set(QET_LICENSE_PATH "doc/qelectrotech/")
|
||||||
|
set(QET_MIME_XML_PATH "../share/mime/application/")
|
||||||
|
set(QET_MIME_DESKTOP_PATH "../share/mimelnk/application/")
|
||||||
|
set(QET_DESKTOP_PATH "share/applications/")
|
||||||
|
set(QET_ICONS_PATH "share/icons/hicolor/")
|
||||||
|
set(QET_MAN_PATH "man/")
|
||||||
|
set(ICON "ico/mac_icon/qelectrotech.icns")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
# for Windows operating system in general
|
||||||
|
set(COMPIL_PREFIX "./")
|
||||||
|
set(INSTALL_PREFIX "./")
|
||||||
|
set(QET_BINARY_PATH "./")
|
||||||
|
set(QET_COMMON_COLLECTION_PATH "elements/")
|
||||||
|
set(QET_COMMON_TBT_PATH "titleblocks/")
|
||||||
|
set(QET_LANG_PATH "l10n/")
|
||||||
|
set(QET_LICENSE_PATH "./")
|
||||||
|
# Liste des ressources Windows
|
||||||
|
#RC_FILE = qelectrotech.rc
|
||||||
|
endif()
|
||||||
645
cmake/qet_compilation_vars.cmake
Normal file
645
cmake/qet_compilation_vars.cmake
Normal file
@@ -0,0 +1,645 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
message(" - qet_compilation_vars")
|
||||||
|
|
||||||
|
set(QET_COMPONENTS
|
||||||
|
LinguistTools
|
||||||
|
PrintSupport
|
||||||
|
Xml
|
||||||
|
Svg
|
||||||
|
Sql
|
||||||
|
Network
|
||||||
|
Widgets
|
||||||
|
Concurrent)
|
||||||
|
|
||||||
|
set(QET_PRIVATE_LIBRARIES
|
||||||
|
Qt::PrintSupport
|
||||||
|
Qt::Gui
|
||||||
|
Qt::Xml
|
||||||
|
Qt::Svg
|
||||||
|
Qt::Sql
|
||||||
|
Qt::Network
|
||||||
|
Qt::Widgets
|
||||||
|
Qt::Concurrent
|
||||||
|
)
|
||||||
|
|
||||||
|
set(QET_RES_FILES
|
||||||
|
${QET_DIR}/sources/autoNum/ui/autonumberingdockwidget.ui
|
||||||
|
${QET_DIR}/sources/autoNum/ui/autonumberingmanagementw.ui
|
||||||
|
${QET_DIR}/sources/autoNum/ui/folioautonumbering.ui
|
||||||
|
${QET_DIR}/sources/autoNum/ui/formulaautonumberingw.ui
|
||||||
|
${QET_DIR}/sources/autoNum/ui/numparteditorw.ui
|
||||||
|
${QET_DIR}/sources/autoNum/ui/selectautonumw.ui
|
||||||
|
${QET_DIR}/sources/dataBase/ui/elementquerywidget.ui
|
||||||
|
${QET_DIR}/sources/dataBase/ui/summaryquerywidget.ui
|
||||||
|
${QET_DIR}/sources/editor/ui/dynamictextfieldeditor.ui
|
||||||
|
${QET_DIR}/sources/editor/ui/elementpropertieseditorwidget.ui
|
||||||
|
${QET_DIR}/sources/editor/ui/ellipseeditor.ui
|
||||||
|
${QET_DIR}/sources/editor/ui/lineeditor.ui
|
||||||
|
${QET_DIR}/sources/editor/ui/polygoneditor.ui
|
||||||
|
${QET_DIR}/sources/editor/ui/rectangleeditor.ui
|
||||||
|
${QET_DIR}/sources/editor/ui/qetelementeditor.ui
|
||||||
|
${QET_DIR}/sources/editor/ui/terminaleditor.ui
|
||||||
|
${QET_DIR}/sources/ElementsCollection/ui/renamedialog.ui
|
||||||
|
${QET_DIR}/sources/factory/ui/addtabledialog.ui
|
||||||
|
${QET_DIR}/sources/NameList/ui/namelistdialog.ui
|
||||||
|
${QET_DIR}/sources/NameList/ui/namelistwidget.ui
|
||||||
|
${QET_DIR}/sources/print/projectprintwindow.ui
|
||||||
|
${QET_DIR}/sources/PropertiesEditor/propertieseditordockwidget.ui
|
||||||
|
${QET_DIR}/sources/richtext/addlinkdialog.ui
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replaceadvanceddialog.ui
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replaceconductordialog.ui
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replaceelementdialog.ui
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replacefoliowidget.ui
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.ui
|
||||||
|
${QET_DIR}/sources/ui/aboutqetdialog.ui
|
||||||
|
${QET_DIR}/sources/ui/alignmenttextdialog.ui
|
||||||
|
${QET_DIR}/sources/ui/bomexportdialog.ui
|
||||||
|
${QET_DIR}/sources/ui/borderpropertieswidget.ui
|
||||||
|
${QET_DIR}/sources/ui/compositetexteditdialog.ui
|
||||||
|
${QET_DIR}/sources/ui/conductorpropertiesdialog.ui
|
||||||
|
${QET_DIR}/sources/ui/conductorpropertieswidget.ui
|
||||||
|
${QET_DIR}/sources/ui/configsaveloaderwidget.ui
|
||||||
|
${QET_DIR}/sources/ui/diagramcontextwidget.ui
|
||||||
|
${QET_DIR}/sources/ui/diagramselection.ui
|
||||||
|
${QET_DIR}/sources/ui/dialogwaiting.ui
|
||||||
|
${QET_DIR}/sources/ui/dynamicelementtextitemeditor.ui
|
||||||
|
${QET_DIR}/sources/ui/elementinfopartwidget.ui
|
||||||
|
${QET_DIR}/sources/ui/elementinfowidget.ui
|
||||||
|
${QET_DIR}/sources/ui/formulaassistantdialog.ui
|
||||||
|
${QET_DIR}/sources/ui/imagepropertieswidget.ui
|
||||||
|
${QET_DIR}/sources/ui/importelementdialog.ui
|
||||||
|
${QET_DIR}/sources/ui/importelementtextpatterndialog.ui
|
||||||
|
${QET_DIR}/sources/ui/linksingleelementwidget.ui
|
||||||
|
${QET_DIR}/sources/ui/marginseditdialog.ui
|
||||||
|
${QET_DIR}/sources/ui/masterpropertieswidget.ui
|
||||||
|
${QET_DIR}/sources/ui/multipastedialog.ui
|
||||||
|
${QET_DIR}/sources/ui/potentialselectordialog.ui
|
||||||
|
${QET_DIR}/sources/ui/reportpropertiewidget.ui
|
||||||
|
${QET_DIR}/sources/ui/shapegraphicsitempropertieswidget.ui
|
||||||
|
${QET_DIR}/sources/ui/titleblockpropertieswidget.ui
|
||||||
|
${QET_DIR}/sources/ui/xrefpropertieswidget.ui
|
||||||
|
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.ui
|
||||||
|
)
|
||||||
|
set(QET_SRC_FILES
|
||||||
|
${QET_DIR}/sources/borderproperties.cpp
|
||||||
|
${QET_DIR}/sources/borderproperties.h
|
||||||
|
${QET_DIR}/sources/bordertitleblock.cpp
|
||||||
|
${QET_DIR}/sources/bordertitleblock.h
|
||||||
|
${QET_DIR}/sources/conductorautonumerotation.cpp
|
||||||
|
${QET_DIR}/sources/conductorautonumerotation.h
|
||||||
|
${QET_DIR}/sources/conductornumexport.cpp
|
||||||
|
${QET_DIR}/sources/conductornumexport.h
|
||||||
|
${QET_DIR}/sources/conductorprofile.cpp
|
||||||
|
${QET_DIR}/sources/conductorprofile.h
|
||||||
|
${QET_DIR}/sources/conductorproperties.cpp
|
||||||
|
${QET_DIR}/sources/conductorproperties.h
|
||||||
|
${QET_DIR}/sources/conductorsegment.cpp
|
||||||
|
${QET_DIR}/sources/conductorsegment.h
|
||||||
|
${QET_DIR}/sources/conductorsegmentprofile.h
|
||||||
|
${QET_DIR}/sources/configdialog.cpp
|
||||||
|
${QET_DIR}/sources/configdialog.h
|
||||||
|
${QET_DIR}/sources/configpage.h
|
||||||
|
${QET_DIR}/sources/configpages.cpp
|
||||||
|
${QET_DIR}/sources/configpages.h
|
||||||
|
${QET_DIR}/sources/createdxf.cpp
|
||||||
|
${QET_DIR}/sources/createdxf.h
|
||||||
|
${QET_DIR}/sources/diagramcommands.cpp
|
||||||
|
${QET_DIR}/sources/diagramcommands.h
|
||||||
|
${QET_DIR}/sources/diagramcontent.cpp
|
||||||
|
${QET_DIR}/sources/diagramcontent.h
|
||||||
|
${QET_DIR}/sources/diagramcontext.cpp
|
||||||
|
${QET_DIR}/sources/diagramcontext.h
|
||||||
|
${QET_DIR}/sources/diagram.cpp
|
||||||
|
${QET_DIR}/sources/diagram.h
|
||||||
|
${QET_DIR}/sources/diagramposition.cpp
|
||||||
|
${QET_DIR}/sources/diagramposition.h
|
||||||
|
${QET_DIR}/sources/diagramview.cpp
|
||||||
|
${QET_DIR}/sources/diagramview.h
|
||||||
|
${QET_DIR}/sources/elementdialog.cpp
|
||||||
|
${QET_DIR}/sources/elementdialog.h
|
||||||
|
${QET_DIR}/sources/elementprovider.cpp
|
||||||
|
${QET_DIR}/sources/elementprovider.h
|
||||||
|
${QET_DIR}/sources/elementscategoryeditor.cpp
|
||||||
|
${QET_DIR}/sources/elementscategoryeditor.h
|
||||||
|
${QET_DIR}/sources/elementscollectioncache.cpp
|
||||||
|
${QET_DIR}/sources/elementscollectioncache.h
|
||||||
|
${QET_DIR}/sources/elementsmover.cpp
|
||||||
|
${QET_DIR}/sources/elementsmover.h
|
||||||
|
${QET_DIR}/sources/elementspanel.cpp
|
||||||
|
${QET_DIR}/sources/elementspanel.h
|
||||||
|
${QET_DIR}/sources/elementspanelwidget.cpp
|
||||||
|
${QET_DIR}/sources/elementspanelwidget.h
|
||||||
|
${QET_DIR}/sources/elementtextpattern.cpp
|
||||||
|
${QET_DIR}/sources/elementtextpattern.h
|
||||||
|
${QET_DIR}/sources/elementtextsmover.cpp
|
||||||
|
${QET_DIR}/sources/elementtextsmover.h
|
||||||
|
${QET_DIR}/sources/exportdialog.cpp
|
||||||
|
${QET_DIR}/sources/exportdialog.h
|
||||||
|
${QET_DIR}/sources/exportproperties.cpp
|
||||||
|
${QET_DIR}/sources/exportproperties.h
|
||||||
|
${QET_DIR}/sources/exportpropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/exportpropertieswidget.h
|
||||||
|
${QET_DIR}/sources/genericpanel.cpp
|
||||||
|
${QET_DIR}/sources/genericpanel.h
|
||||||
|
${QET_DIR}/sources/machine_info.cpp
|
||||||
|
${QET_DIR}/sources/machine_info.h
|
||||||
|
${QET_DIR}/sources/main.cpp
|
||||||
|
${QET_DIR}/sources/newelementwizard.cpp
|
||||||
|
${QET_DIR}/sources/newelementwizard.h
|
||||||
|
${QET_DIR}/sources/projectconfigpages.cpp
|
||||||
|
${QET_DIR}/sources/projectconfigpages.h
|
||||||
|
${QET_DIR}/sources/projectview.cpp
|
||||||
|
${QET_DIR}/sources/projectview.h
|
||||||
|
${QET_DIR}/sources/qetapp.cpp
|
||||||
|
${QET_DIR}/sources/qetapp.h
|
||||||
|
${QET_DIR}/sources/qetarguments.cpp
|
||||||
|
${QET_DIR}/sources/qetarguments.h
|
||||||
|
${QET_DIR}/sources/qet.cpp
|
||||||
|
${QET_DIR}/sources/qetdiagrameditor.cpp
|
||||||
|
${QET_DIR}/sources/qetdiagrameditor.h
|
||||||
|
${QET_DIR}/sources/qet.h
|
||||||
|
${QET_DIR}/sources/qeticons.cpp
|
||||||
|
${QET_DIR}/sources/qeticons.h
|
||||||
|
${QET_DIR}/sources/qetinformation.cpp
|
||||||
|
${QET_DIR}/sources/qetinformation.h
|
||||||
|
${QET_DIR}/sources/qetmainwindow.cpp
|
||||||
|
${QET_DIR}/sources/qetmainwindow.h
|
||||||
|
${QET_DIR}/sources/qetmessagebox.cpp
|
||||||
|
${QET_DIR}/sources/qetmessagebox.h
|
||||||
|
${QET_DIR}/sources/qetproject.cpp
|
||||||
|
${QET_DIR}/sources/qetproject.h
|
||||||
|
${QET_DIR}/sources/qetregexpvalidator.cpp
|
||||||
|
${QET_DIR}/sources/qetregexpvalidator.h
|
||||||
|
${QET_DIR}/sources/qetresult.cpp
|
||||||
|
${QET_DIR}/sources/qetresult.h
|
||||||
|
${QET_DIR}/sources/qetxml.cpp
|
||||||
|
${QET_DIR}/sources/qetxml.h
|
||||||
|
${QET_DIR}/sources/qfilenameedit.cpp
|
||||||
|
${QET_DIR}/sources/qfilenameedit.h
|
||||||
|
${QET_DIR}/sources/qgimanager.cpp
|
||||||
|
${QET_DIR}/sources/qgimanager.h
|
||||||
|
${QET_DIR}/sources/qtextorientationspinboxwidget.cpp
|
||||||
|
${QET_DIR}/sources/qtextorientationspinboxwidget.h
|
||||||
|
${QET_DIR}/sources/qtextorientationwidget.cpp
|
||||||
|
${QET_DIR}/sources/qtextorientationwidget.h
|
||||||
|
${QET_DIR}/sources/recentfiles.cpp
|
||||||
|
${QET_DIR}/sources/recentfiles.h
|
||||||
|
${QET_DIR}/sources/titleblockcell.cpp
|
||||||
|
${QET_DIR}/sources/titleblockcell.h
|
||||||
|
${QET_DIR}/sources/titleblockproperties.cpp
|
||||||
|
${QET_DIR}/sources/titleblockproperties.h
|
||||||
|
${QET_DIR}/sources/titleblocktemplate.cpp
|
||||||
|
${QET_DIR}/sources/titleblocktemplate.h
|
||||||
|
${QET_DIR}/sources/titleblocktemplaterenderer.cpp
|
||||||
|
${QET_DIR}/sources/titleblocktemplaterenderer.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/autoNum/assignvariables.cpp
|
||||||
|
${QET_DIR}/sources/autoNum/assignvariables.h
|
||||||
|
${QET_DIR}/sources/autoNum/numerotationcontextcommands.cpp
|
||||||
|
${QET_DIR}/sources/autoNum/numerotationcontextcommands.h
|
||||||
|
${QET_DIR}/sources/autoNum/numerotationcontext.cpp
|
||||||
|
${QET_DIR}/sources/autoNum/numerotationcontext.h
|
||||||
|
${QET_DIR}/sources/autoNum/ui/autonumberingdockwidget.cpp
|
||||||
|
${QET_DIR}/sources/autoNum/ui/autonumberingdockwidget.h
|
||||||
|
${QET_DIR}/sources/autoNum/ui/autonumberingmanagementw.cpp
|
||||||
|
${QET_DIR}/sources/autoNum/ui/autonumberingmanagementw.h
|
||||||
|
${QET_DIR}/sources/autoNum/ui/folioautonumbering.cpp
|
||||||
|
${QET_DIR}/sources/autoNum/ui/folioautonumbering.h
|
||||||
|
${QET_DIR}/sources/autoNum/ui/formulaautonumberingw.cpp
|
||||||
|
${QET_DIR}/sources/autoNum/ui/formulaautonumberingw.h
|
||||||
|
${QET_DIR}/sources/autoNum/ui/numparteditorw.cpp
|
||||||
|
${QET_DIR}/sources/autoNum/ui/numparteditorw.h
|
||||||
|
${QET_DIR}/sources/autoNum/ui/selectautonumw.cpp
|
||||||
|
${QET_DIR}/sources/autoNum/ui/selectautonumw.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/dataBase/projectdatabase.cpp
|
||||||
|
${QET_DIR}/sources/dataBase/projectdatabase.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/dataBase/ui/elementquerywidget.cpp
|
||||||
|
${QET_DIR}/sources/dataBase/ui/elementquerywidget.h
|
||||||
|
${QET_DIR}/sources/dataBase/ui/summaryquerywidget.cpp
|
||||||
|
${QET_DIR}/sources/dataBase/ui/summaryquerywidget.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventaddelement.cpp
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventaddelement.h
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventaddimage.cpp
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventaddimage.h
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventaddshape.cpp
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventaddshape.h
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventaddtext.cpp
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventaddtext.h
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventinterface.cpp
|
||||||
|
${QET_DIR}/sources/diagramevent/diagrameventinterface.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/dvevent/dveventinterface.cpp
|
||||||
|
${QET_DIR}/sources/dvevent/dveventinterface.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/editor/arceditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/arceditor.h
|
||||||
|
${QET_DIR}/sources/editor/editorcommands.cpp
|
||||||
|
${QET_DIR}/sources/editor/editorcommands.h
|
||||||
|
${QET_DIR}/sources/editor/elementcontent.h
|
||||||
|
${QET_DIR}/sources/editor/elementitemeditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/elementitemeditor.h
|
||||||
|
${QET_DIR}/sources/editor/elementprimitivedecorator.cpp
|
||||||
|
${QET_DIR}/sources/editor/elementprimitivedecorator.h
|
||||||
|
${QET_DIR}/sources/editor/elementscene.cpp
|
||||||
|
${QET_DIR}/sources/editor/elementscene.h
|
||||||
|
${QET_DIR}/sources/editor/elementview.cpp
|
||||||
|
${QET_DIR}/sources/editor/elementview.h
|
||||||
|
${QET_DIR}/sources/editor/styleeditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/styleeditor.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddarc.cpp
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddarc.h
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventadddynamictextfield.cpp
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventadddynamictextfield.h
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddellipse.cpp
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddellipse.h
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddline.cpp
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddline.h
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddpolygon.cpp
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddpolygon.h
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddrect.cpp
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddrect.h
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddterminal.cpp
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddterminal.h
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddtext.cpp
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventaddtext.h
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventinterface.cpp
|
||||||
|
${QET_DIR}/sources/editor/esevent/eseventinterface.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/abstractpartellipse.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/abstractpartellipse.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/customelementgraphicpart.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/customelementgraphicpart.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/customelementpart.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/customelementpart.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partarc.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partarc.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partdynamictextfield.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partdynamictextfield.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partellipse.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partellipse.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partline.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partline.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partpolygon.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partpolygon.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partrectangle.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partrectangle.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partterminal.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/partterminal.h
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/parttext.cpp
|
||||||
|
${QET_DIR}/sources/editor/graphicspart/parttext.h
|
||||||
|
${QET_DIR}/sources/editor/ui/dynamictextfieldeditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/ui/dynamictextfieldeditor.h
|
||||||
|
${QET_DIR}/sources/editor/ui/elementpropertieseditorwidget.cpp
|
||||||
|
${QET_DIR}/sources/editor/ui/elementpropertieseditorwidget.h
|
||||||
|
${QET_DIR}/sources/editor/ui/ellipseeditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/ui/ellipseeditor.h
|
||||||
|
${QET_DIR}/sources/editor/ui/lineeditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/ui/lineeditor.h
|
||||||
|
${QET_DIR}/sources/editor/ui/polygoneditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/ui/polygoneditor.h
|
||||||
|
${QET_DIR}/sources/editor/ui/rectangleeditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/ui/rectangleeditor.h
|
||||||
|
${QET_DIR}/sources/editor/ui/terminaleditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/ui/terminaleditor.h
|
||||||
|
${QET_DIR}/sources/editor/ui/texteditor.cpp
|
||||||
|
${QET_DIR}/sources/editor/ui/texteditor.h
|
||||||
|
${QET_DIR}/sources/editor/ui/qetelementeditor.h
|
||||||
|
${QET_DIR}/sources/editor/ui/qetelementeditor.cpp
|
||||||
|
|
||||||
|
${QET_DIR}/sources/editor/UndoCommand/pastepartscommand.cpp
|
||||||
|
${QET_DIR}/sources/editor/UndoCommand/pastepartscommand.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.h
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementcollectionitem.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementcollectionitem.h
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementscollectionmodel.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementscollectionmodel.h
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementscollectionwidget.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementscollectionwidget.h
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementslocation.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementslocation.h
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementstreeview.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/elementstreeview.h
|
||||||
|
${QET_DIR}/sources/ElementsCollection/fileelementcollectionitem.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/fileelementcollectionitem.h
|
||||||
|
${QET_DIR}/sources/ElementsCollection/xmlelementcollection.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/xmlelementcollection.h
|
||||||
|
${QET_DIR}/sources/ElementsCollection/xmlprojectelementcollectionitem.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/xmlprojectelementcollectionitem.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/ElementsCollection/ui/renamedialog.cpp
|
||||||
|
${QET_DIR}/sources/ElementsCollection/ui/renamedialog.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/factory/elementfactory.cpp
|
||||||
|
${QET_DIR}/sources/factory/elementfactory.h
|
||||||
|
${QET_DIR}/sources/factory/elementpicturefactory.cpp
|
||||||
|
${QET_DIR}/sources/factory/elementpicturefactory.h
|
||||||
|
${QET_DIR}/sources/factory/propertieseditorfactory.cpp
|
||||||
|
${QET_DIR}/sources/factory/propertieseditorfactory.h
|
||||||
|
${QET_DIR}/sources/factory/qetgraphicstablefactory.cpp
|
||||||
|
${QET_DIR}/sources/factory/qetgraphicstablefactory.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/factory/ui/addtabledialog.cpp
|
||||||
|
${QET_DIR}/sources/factory/ui/addtabledialog.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/NameList/nameslist.cpp
|
||||||
|
${QET_DIR}/sources/NameList/nameslist.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/NameList/ui/namelistdialog.cpp
|
||||||
|
${QET_DIR}/sources/NameList/ui/namelistdialog.h
|
||||||
|
${QET_DIR}/sources/NameList/ui/namelistwidget.cpp
|
||||||
|
${QET_DIR}/sources/NameList/ui/namelistwidget.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/print/projectprintwindow.cpp
|
||||||
|
${QET_DIR}/sources/print/projectprintwindow.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/properties/elementdata.cpp
|
||||||
|
${QET_DIR}/sources/properties/elementdata.h
|
||||||
|
${QET_DIR}/sources/properties/propertiesinterface.cpp
|
||||||
|
${QET_DIR}/sources/properties/propertiesinterface.h
|
||||||
|
${QET_DIR}/sources/properties/reportproperties.cpp
|
||||||
|
${QET_DIR}/sources/properties/reportproperties.h
|
||||||
|
${QET_DIR}/sources/properties/terminaldata.cpp
|
||||||
|
${QET_DIR}/sources/properties/terminaldata.h
|
||||||
|
${QET_DIR}/sources/properties/xrefproperties.cpp
|
||||||
|
${QET_DIR}/sources/properties/xrefproperties.h
|
||||||
|
${QET_DIR}/sources/properties/userproperties.cpp
|
||||||
|
${QET_DIR}/sources/properties/userproperties.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/PropertiesEditor/propertieseditordialog.h
|
||||||
|
${QET_DIR}/sources/PropertiesEditor/propertieseditordockwidget.cpp
|
||||||
|
${QET_DIR}/sources/PropertiesEditor/propertieseditordockwidget.h
|
||||||
|
${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}/sources/qetgraphicsitem/conductor.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/conductor.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/conductortextitem.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/conductortextitem.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/crossrefitem.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/crossrefitem.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/diagramimageitem.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/diagramimageitem.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/diagramtextitem.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/diagramtextitem.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/dynamicelementtextitem.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/dynamicelementtextitem.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/element.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/element.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/elementtextitemgroup.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/elementtextitemgroup.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/independenttextitem.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/independenttextitem.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/masterelement.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/masterelement.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/qetgraphicsitem.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/qetgraphicsitem.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/qetshapeitem.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/qetshapeitem.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/qgraphicsitemutility.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/qgraphicsitemutility.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/reportelement.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/reportelement.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/simpleelement.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/simpleelement.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/slaveelement.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/slaveelement.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/terminal.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/terminalelement.cpp
|
||||||
|
${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
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/ViewItem/qetgraphicsheaderitem.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui/graphicstablepropertieseditor.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui/graphicstablepropertieseditor.h
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui/projectdbmodelpropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/qetgraphicsitem/ViewItem/ui/projectdbmodelpropertieswidget.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandleritem.cpp
|
||||||
|
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandleritem.h
|
||||||
|
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandlerutility.cpp
|
||||||
|
${QET_DIR}/sources/QetGraphicsItemModeler/qetgraphicshandlerutility.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/QPropertyUndoCommand/qpropertyundocommand.cpp
|
||||||
|
${QET_DIR}/sources/QPropertyUndoCommand/qpropertyundocommand.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/QWidgetAnimation/qwidgetanimation.cpp
|
||||||
|
${QET_DIR}/sources/QWidgetAnimation/qwidgetanimation.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/richtext/richtexteditor.cpp
|
||||||
|
${QET_DIR}/sources/richtext/richtexteditor_p.h
|
||||||
|
${QET_DIR}/sources/richtext/ui_addlinkdialog.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/searchandreplaceworker.cpp
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/searchandreplaceworker.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replaceadvanceddialog.cpp
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replaceadvanceddialog.h
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replaceconductordialog.cpp
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replaceconductordialog.h
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replaceelementdialog.cpp
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replaceelementdialog.h
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replacefoliowidget.cpp
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/replacefoliowidget.h
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.cpp
|
||||||
|
${QET_DIR}/sources/SearchAndReplace/ui/searchandreplacewidget.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/titleblock/dimension.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/dimension.h
|
||||||
|
${QET_DIR}/sources/titleblock/dimensionwidget.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/dimensionwidget.h
|
||||||
|
${QET_DIR}/sources/titleblock/gridlayoutanimation.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/gridlayoutanimation.h
|
||||||
|
${QET_DIR}/sources/titleblock/helpercell.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/helpercell.h
|
||||||
|
${QET_DIR}/sources/titleblock/integrationmovetemplateshandler.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/integrationmovetemplateshandler.h
|
||||||
|
${QET_DIR}/sources/titleblock/movetemplateshandler.h
|
||||||
|
${QET_DIR}/sources/titleblock/qettemplateeditor.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/qettemplateeditor.h
|
||||||
|
${QET_DIR}/sources/titleblock/splittedhelpercell.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/splittedhelpercell.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatecellsset.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatecellsset.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatecellwidget.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatecellwidget.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatecommands.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatecommands.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatedeleter.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatedeleter.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatelocationchooser.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatelocationchooser.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatelocation.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatelocation.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatelocationsaver.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatelocationsaver.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatelogomanager.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatelogomanager.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatescollection.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatescollection.h
|
||||||
|
${QET_DIR}/sources/titleblock/templateview.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templateview.h
|
||||||
|
${QET_DIR}/sources/titleblock/templatevisualcell.cpp
|
||||||
|
${QET_DIR}/sources/titleblock/templatevisualcell.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/ui/aboutqetdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/aboutqetdialog.h
|
||||||
|
${QET_DIR}/sources/ui/abstractelementpropertieseditorwidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/abstractelementpropertieseditorwidget.h
|
||||||
|
${QET_DIR}/sources/ui/alignmenttextdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/alignmenttextdialog.h
|
||||||
|
${QET_DIR}/sources/ui/bomexportdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/bomexportdialog.h
|
||||||
|
${QET_DIR}/sources/ui/borderpropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/borderpropertieswidget.h
|
||||||
|
${QET_DIR}/sources/ui/compositetexteditdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/compositetexteditdialog.h
|
||||||
|
${QET_DIR}/sources/ui/conductorpropertiesdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/conductorpropertiesdialog.h
|
||||||
|
${QET_DIR}/sources/ui/conductorpropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/conductorpropertieswidget.h
|
||||||
|
${QET_DIR}/sources/ui/configsaveloaderwidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/configsaveloaderwidget.h
|
||||||
|
${QET_DIR}/sources/ui/diagramcontextwidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/diagramcontextwidget.h
|
||||||
|
${QET_DIR}/sources/ui/diagrampropertiesdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/diagrampropertiesdialog.h
|
||||||
|
${QET_DIR}/sources/ui/diagrampropertieseditordockwidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/diagrampropertieseditordockwidget.h
|
||||||
|
${QET_DIR}/sources/ui/diagramselection.cpp
|
||||||
|
${QET_DIR}/sources/ui/diagramselection.h
|
||||||
|
${QET_DIR}/sources/ui/dialogwaiting.cpp
|
||||||
|
${QET_DIR}/sources/ui/dialogwaiting.h
|
||||||
|
${QET_DIR}/sources/ui/dynamicelementtextitemeditor.cpp
|
||||||
|
${QET_DIR}/sources/ui/dynamicelementtextitemeditor.h
|
||||||
|
${QET_DIR}/sources/ui/dynamicelementtextmodel.cpp
|
||||||
|
${QET_DIR}/sources/ui/dynamicelementtextmodel.h
|
||||||
|
${QET_DIR}/sources/ui/elementinfopartwidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/elementinfopartwidget.h
|
||||||
|
${QET_DIR}/sources/ui/elementinfowidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/elementinfowidget.h
|
||||||
|
${QET_DIR}/sources/ui/elementpropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/elementpropertieswidget.h
|
||||||
|
${QET_DIR}/sources/ui/formulaassistantdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/formulaassistantdialog.h
|
||||||
|
${QET_DIR}/sources/ui/imagepropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/imagepropertieswidget.h
|
||||||
|
${QET_DIR}/sources/ui/importelementdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/importelementdialog.h
|
||||||
|
${QET_DIR}/sources/ui/importelementtextpatterndialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/importelementtextpatterndialog.h
|
||||||
|
${QET_DIR}/sources/ui/inditextpropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/inditextpropertieswidget.h
|
||||||
|
${QET_DIR}/sources/ui/linksingleelementwidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/linksingleelementwidget.h
|
||||||
|
${QET_DIR}/sources/ui/marginseditdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/marginseditdialog.h
|
||||||
|
${QET_DIR}/sources/ui/masterpropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/masterpropertieswidget.h
|
||||||
|
${QET_DIR}/sources/ui/multipastedialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/multipastedialog.h
|
||||||
|
${QET_DIR}/sources/ui/potentialselectordialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/potentialselectordialog.h
|
||||||
|
${QET_DIR}/sources/ui/projectpropertiesdialog.cpp
|
||||||
|
${QET_DIR}/sources/ui/projectpropertiesdialog.h
|
||||||
|
${QET_DIR}/sources/ui/reportpropertiewidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/reportpropertiewidget.h
|
||||||
|
${QET_DIR}/sources/ui/shapegraphicsitempropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/shapegraphicsitempropertieswidget.h
|
||||||
|
${QET_DIR}/sources/ui/titleblockpropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/titleblockpropertieswidget.h
|
||||||
|
${QET_DIR}/sources/ui/xrefpropertieswidget.cpp
|
||||||
|
${QET_DIR}/sources/ui/xrefpropertieswidget.h
|
||||||
|
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.cpp
|
||||||
|
|
||||||
|
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.h
|
||||||
|
|
||||||
|
${QET_DIR}/sources/undocommand/addelementtextcommand.cpp
|
||||||
|
${QET_DIR}/sources/undocommand/addelementtextcommand.h
|
||||||
|
${QET_DIR}/sources/undocommand/addgraphicsobjectcommand.cpp
|
||||||
|
${QET_DIR}/sources/undocommand/addgraphicsobjectcommand.h
|
||||||
|
${QET_DIR}/sources/undocommand/changeelementinformationcommand.cpp
|
||||||
|
${QET_DIR}/sources/undocommand/changeelementinformationcommand.h
|
||||||
|
${QET_DIR}/sources/undocommand/changetitleblockcommand.cpp
|
||||||
|
${QET_DIR}/sources/undocommand/changetitleblockcommand.h
|
||||||
|
${QET_DIR}/sources/undocommand/deleteqgraphicsitemcommand.cpp
|
||||||
|
${QET_DIR}/sources/undocommand/deleteqgraphicsitemcommand.h
|
||||||
|
${QET_DIR}/sources/undocommand/itemmodelcommand.cpp
|
||||||
|
${QET_DIR}/sources/undocommand/itemmodelcommand.h
|
||||||
|
${QET_DIR}/sources/undocommand/linkelementcommand.cpp
|
||||||
|
${QET_DIR}/sources/undocommand/linkelementcommand.h
|
||||||
|
${QET_DIR}/sources/undocommand/rotateselectioncommand.cpp
|
||||||
|
${QET_DIR}/sources/undocommand/rotateselectioncommand.h
|
||||||
|
${QET_DIR}/sources/undocommand/rotatetextscommand.cpp
|
||||||
|
${QET_DIR}/sources/undocommand/rotatetextscommand.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/qetutils.cpp
|
||||||
|
${QET_DIR}/sources/utils/qetutils.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_cs.ts
|
||||||
|
${QET_DIR}/lang/qet_el.ts
|
||||||
|
${QET_DIR}/lang/qet_hr.ts
|
||||||
|
${QET_DIR}/lang/qet_ja.ts
|
||||||
|
${QET_DIR}/lang/qet_nb.ts
|
||||||
|
${QET_DIR}/lang/qet_no.ts
|
||||||
|
${QET_DIR}/lang/qet_pt.ts
|
||||||
|
${QET_DIR}/lang/qet_sl.ts
|
||||||
|
${QET_DIR}/lang/qet_tr.ts
|
||||||
|
)
|
||||||
29
cmake/start_options.cmake
Normal file
29
cmake/start_options.cmake
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Copyright 2006 The QElectroTech Team
|
||||||
|
# This file is part of QElectroTech.
|
||||||
|
#
|
||||||
|
# QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
message(" - start_options")
|
||||||
|
|
||||||
|
# Comment the line below to deactivate the --common-elements-dir option
|
||||||
|
add_definitions(-DQET_ALLOW_OVERRIDE_CED_OPTION)
|
||||||
|
|
||||||
|
# Comment the line below to disable the --common-tbt-dir option
|
||||||
|
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 disable the project database export
|
||||||
|
#add_definitions(-DQET_EXPORT_PROJECT_DB) #error Todo
|
||||||
@@ -1,24 +1,28 @@
|
|||||||
<definition width="70" version="0.3" hotspot_x="49" hotspot_y="15" height="30" type="element" ic="true" orientation="dyyy"
|
<definition height="20" version="0.80" width="30" hotspot_x="8" link_type="previous_report" hotspot_y="10" type="element">
|
||||||
link_type="previous_report">
|
<uuid uuid="{994d5b97-25b5-49aa-93ae-c1857ab866ea}"/>
|
||||||
<uuid uuid="{F549BEFB-F0CF-44ED-A948-F6F796BFB421}"/><names>
|
<names>
|
||||||
<name lang="ru">Предыдущая страница</name>
|
|
||||||
<name lang="ar">الصفحة السابقة</name>
|
<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="de">Vorherige Folie</name>
|
||||||
<name lang="el">Προηγούμενη σελίδα</name>
|
<name lang="el">Προηγούμενη σελίδα</name>
|
||||||
<name lang="en">Coming arrow</name>
|
<name lang="en">Coming arrow</name>
|
||||||
<name lang="it">Foglio precedente</name>
|
<name lang="cs">Předchozí list</name>
|
||||||
<name lang="fr">Folio précédent</name>
|
<name lang="fr">Folio précédent</name>
|
||||||
<name lang="pl">Wejście adresowe</name>
|
<name lang="pl">Wejście adresowe</name>
|
||||||
<name lang="es">folio anterior</name>
|
<name lang="hu">Beérkező hivatkozás</name>
|
||||||
<name lang="cs">Předchozí list</name>
|
|
||||||
<name lang="nl">Referentie Vorig</name>
|
<name lang="nl">Referentie Vorig</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<description>
|
||||||
<polygon x4="-1" antialias="true" style="line-style:normal;line-weight:normal;filling:black;color:black" closed="false" y1="-4" x1="-1" y2="4" x2="-1" y3="0" x3="9" y4="-4"/>
|
<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 length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="9" y2="0" x2="12"/>
|
<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"/>
|
||||||
<input x="-44" y="0" size="9" rotate="true" text="/"/>
|
<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">
|
||||||
<terminal x="13" y="0" nameHidden="0" number="" name="" orientation="e"/>
|
<text></text>
|
||||||
|
<info_name>label</info_name>
|
||||||
|
</dynamic_text>
|
||||||
|
<terminal x="13" uuid="{d7fd0bec-9f05-4651-a50b-29d7ffabeb41}" name="" y="0" orientation="e"/>
|
||||||
</description>
|
</description>
|
||||||
</definition>
|
</definition>
|
||||||
|
|||||||
@@ -1,24 +1,28 @@
|
|||||||
<definition width="40" version="0.3" hotspot_x="18" hotspot_y="15" height="30" type="element" ic="true" orientation="dyyy"
|
<definition hotspot_x="21" hotspot_y="10" version="0.80" type="element" height="20" link_type="next_report" width="30">
|
||||||
link_type="next_report">
|
<uuid uuid="{2e596a05-ef45-4895-b826-942d28c2d038}"/>
|
||||||
<uuid uuid="{717352A1-F3C7-49C7-9A06-51620AB5CA00}"/><names>
|
<names>
|
||||||
<name lang="ru">Следующая страница</name>
|
|
||||||
<name lang="ar">الصفحة التالية</name>
|
|
||||||
<name lang="de">Nächste Folie</name>
|
<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="el">Επόμενη σελίδα</name>
|
||||||
<name lang="en">Going arrow</name>
|
<name lang="en">Going arrow</name>
|
||||||
<name lang="it">Foglio successivo</name>
|
|
||||||
<name lang="fr">Folio suivant</name>
|
|
||||||
<name lang="pl">Wyjście adresowe</name>
|
|
||||||
<name lang="es">Folio siguiente</name>
|
<name lang="es">Folio siguiente</name>
|
||||||
<name lang="cs">Další list</name>
|
|
||||||
<name lang="nl">Referentie volgend</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>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<description>
|
||||||
<polygon x4="-9" antialias="true" style="line-style:normal;line-weight:normal;filling:black;color:black" closed="false" y1="-4" x1="-9" y2="4" x2="-9" y3="0" x3="2" y4="-4"/>
|
<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 length1="1.5" length2="1.5" antialias="false" end1="none" end2="none" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" x1="-9" y2="0" x2="-12"/>
|
<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"/>
|
||||||
<input x="6" y="0" size="9" rotate="true" text="/"/>
|
<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">
|
||||||
<terminal x="-13" y="0" nameHidden="0" number="" name="" orientation="w"/>
|
<text></text>
|
||||||
|
<info_name>label</info_name>
|
||||||
|
</dynamic_text>
|
||||||
|
<terminal uuid="{975add6f-4ba5-44af-a4c0-e1f1c2024601}" name="" x="-13" orientation="w" y="0"/>
|
||||||
</description>
|
</description>
|
||||||
</definition>
|
</definition>
|
||||||
|
|||||||
@@ -2,15 +2,18 @@
|
|||||||
<names>
|
<names>
|
||||||
<name lang="ru">Точки разрыва</name>
|
<name lang="ru">Точки разрыва</name>
|
||||||
<name lang="ar">إحالات</name>
|
<name lang="ar">إحالات</name>
|
||||||
<name lang="cs">Výstupy</name>
|
<name lang="cs">Odkazování listů</name>
|
||||||
<name lang="de">Folienverweise</name>
|
<name lang="de">Folienverweise</name>
|
||||||
<name lang="el">Αναφορές σελίδας</name>
|
<name lang="el">Αναφορές σελίδας</name>
|
||||||
<name lang="en">Folio referencing</name>
|
<name lang="en">Folio referencing</name>
|
||||||
<name lang="fr">Reports de folio</name>
|
<name lang="fr">Reports de folio</name>
|
||||||
<name lang="it">Riferimenti</name>
|
<name lang="it">Riferimenti</name>
|
||||||
<name lang="pl">Odsyłacze</name>
|
<name lang="pl">Odsyłacze</name>
|
||||||
|
<name lang="pt_br">Referências</name>
|
||||||
<name lang="es">Referencias</name>
|
<name lang="es">Referencias</name>
|
||||||
<name lang="nl">Referenties</name>
|
<name lang="nl">Referenties</name>
|
||||||
<name lang="da">Ark henvisninger</name>
|
<name lang="da">Ark henvisninger</name>
|
||||||
|
<name lang="ja">フォリオ参照</name>
|
||||||
|
<name lang="hu">Tervlap hivatkozások</name>
|
||||||
</names>
|
</names>
|
||||||
</qet-directory>
|
</qet-directory>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition type="element" orientation="dyyy" height="80" hotspot_y="40" version="0.70" width="50" hotspot_x="23" link_type="simple">
|
<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}"/>
|
<uuid uuid="{65b9e889-c2eb-4d85-aa9e-c1dff55678f5}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="en">Three-pole source + PEN</name>
|
<name lang="en">Three-pole source + PEN</name>
|
||||||
@@ -11,7 +11,8 @@
|
|||||||
<name lang="ru">Трёхполюсный + PEN</name>
|
<name lang="ru">Трёхполюсный + PEN</name>
|
||||||
<name lang="fr">Source tripolaire + PEN</name>
|
<name lang="fr">Source tripolaire + PEN</name>
|
||||||
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
|
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
|
||||||
<name lang="cs">3 fáze + PEN pravý</name>
|
<name lang="cs">Přípojnice 3f+PEN pravá</name>
|
||||||
|
<name lang="hu">3F + PEN</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<definition type="element" orientation="dyyy" height="100" hotspot_y="40" version="0.70" width="40" hotspot_x="20" link_type="simple">
|
<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}"/>
|
<uuid uuid="{b4b70d3d-8784-4323-b17b-d8ff3677cdc1}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="en">Three-pole source + PEN</name>
|
<name lang="en">Three-pole source + N + PE</name>
|
||||||
<name lang="el">Τριφασικό + PEN</name>
|
<name lang="el">Τριφασικό + PEN</name>
|
||||||
<name lang="es">Fuente tripolar + PEN</name>
|
<name lang="es">Fuente tripolar + PEN</name>
|
||||||
<name lang="nl">driefasen + aardenul</name>
|
<name lang="nl">driefasen + aardenul</name>
|
||||||
@@ -11,7 +11,8 @@
|
|||||||
<name lang="ru">Трёхполюсный + PEN</name>
|
<name lang="ru">Трёхполюсный + PEN</name>
|
||||||
<name lang="fr">Source tripolaire + PEN</name>
|
<name lang="fr">Source tripolaire + PEN</name>
|
||||||
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
|
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
|
||||||
<name lang="cs">3 fáze + N+PE pravý</name>
|
<name lang="cs">Přípojnice 3f+N+PE pravá</name>
|
||||||
|
<name lang="hu">3F + N + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition height="50" width="30" link_type="terminal" hotspot_x="16" version="0.80" orientation="dyyy" type="element" hotspot_y="29">
|
<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}"/>
|
<uuid uuid="{a98ac40d-9055-4b9b-88ab-cffe6b08ed37}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="ro">Masă</name>
|
<name lang="ro">Masă</name>
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
<name lang="es">Masa</name>
|
<name lang="es">Masa</name>
|
||||||
<name lang="ar">هيكل معدني</name>
|
<name lang="ar">هيكل معدني</name>
|
||||||
<name lang="fr">Masse</name>
|
<name lang="fr">Masse</name>
|
||||||
|
<name lang="hu">Test</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations>
|
<elementInformations>
|
||||||
<elementInformation name="comment" show="1"></elementInformation>
|
<elementInformation name="comment" show="1"></elementInformation>
|
||||||
@@ -28,7 +29,7 @@
|
|||||||
<elementInformation name="plant" show="1"></elementInformation>
|
<elementInformation name="plant" show="1"></elementInformation>
|
||||||
<elementInformation name="label" show="1"></elementInformation>
|
<elementInformation name="label" show="1"></elementInformation>
|
||||||
</elementInformations>
|
</elementInformations>
|
||||||
<informations>titus
|
<informations>titus
|
||||||
titus0818@yahoo.com</informations>
|
titus0818@yahoo.com</informations>
|
||||||
<description>
|
<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="-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"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="20" link_type="simple" version="0.5" hotspot_x="9" orientation="dyyy" height="30" hotspot_y="20" type="element">
|
<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}"/>
|
<uuid uuid="{5983fe6f-de69-4368-a387-a6ce3b9c2951}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="pt">Massa</name>
|
<name lang="pt">Massa</name>
|
||||||
@@ -13,6 +13,7 @@
|
|||||||
<name lang="en">Chassis</name>
|
<name lang="en">Chassis</name>
|
||||||
<name lang="fr">Masse</name>
|
<name lang="fr">Masse</name>
|
||||||
<name lang="ru">Шасси</name>
|
<name lang="ru">Шасси</name>
|
||||||
|
<name lang="hu">Vázszerkezet</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
|
|||||||
@@ -5,11 +5,14 @@
|
|||||||
<name lang="fr">Sources réseau</name>
|
<name lang="fr">Sources réseau</name>
|
||||||
<name lang="it">Alimentazione da rete</name>
|
<name lang="it">Alimentazione da rete</name>
|
||||||
<name lang="pl">Sieć elektroenergetyczna</name>
|
<name lang="pl">Sieć elektroenergetyczna</name>
|
||||||
|
<name lang="pt_br">Alimentação</name>
|
||||||
<name lang="de">Netzquellen</name>
|
<name lang="de">Netzquellen</name>
|
||||||
<name lang="el">Παροχές δικτύου</name>
|
<name lang="el">Παροχές δικτύου</name>
|
||||||
<name lang="nl">Netvoedingen</name>
|
<name lang="nl">Netvoedingen</name>
|
||||||
<name lang="cs">Síťové zdroje</name>
|
<name lang="cs">Napájení</name>
|
||||||
<name lang="es">Fuentes de red</name>
|
<name lang="es">Fuentes de red</name>
|
||||||
<name lang="da">Netværkskilder</name>
|
<name lang="da">Netværkskilder</name>
|
||||||
|
<name lang="ja">電源網</name>
|
||||||
|
<name lang="hu">Hálózati források</name>
|
||||||
</names>
|
</names>
|
||||||
</qet-directory>
|
</qet-directory>
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="60" hotspot_y="30" type="element">
|
<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}"/>
|
<uuid uuid="{35f2834a-308b-4e79-bc2a-1c00486b24e7}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="es">Fuente unipolo + PE +N</name>
|
<name lang="es">Fuente unipolo + PE +N</name>
|
||||||
<name lang="nl">1 fase + aarde + nul</name>
|
<name lang="nl">1 fase + aarde + nul</name>
|
||||||
<name lang="el">Μονοφασικό +N +PE</name>
|
<name lang="el">Μονοφασικό +N +PE</name>
|
||||||
<name lang="de">Wechselstrom + PE +N</name>
|
<name lang="de">Wechselstrom + PE +N</name>
|
||||||
<name lang="cs">1 fáze + PE +N</name>
|
<name lang="cs">Přípojnice 1f+N+PE</name>
|
||||||
<name lang="pl">Linia jednofazowa (trójprzewodowa)</name>
|
<name lang="pl">Linia jednofazowa (trójprzewodowa)</name>
|
||||||
<name lang="it">Sorgente unipolare + PE +N</name>
|
<name lang="it">Sorgente unipolare + PE +N</name>
|
||||||
<name lang="ar">مصدر وحيد القطبية + أرضي PE + محايد N</name>
|
<name lang="ar">مصدر وحيد القطبية + أرضي PE + محايد N</name>
|
||||||
<name lang="en">Single-pole source + PE +N</name>
|
<name lang="en">Single-pole source + PE +N</name>
|
||||||
<name lang="fr">Source unipolaire + PE +N</name>
|
<name lang="fr">Source unipolaire + PE +N</name>
|
||||||
<name lang="ru">Однополюсный + PE +N</name>
|
<name lang="ru">Однополюсный + PE +N</name>
|
||||||
|
<name lang="hu">F + N + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
<definition width="40" link_type="simple" version="0.5" hotspot_x="22" orientation="dyyy" height="40" hotspot_y="20" type="element">
|
<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}"/>
|
<uuid uuid="{fd042050-e73b-4f95-b4c1-834aa403b07a}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="es">Fuente unipolo + PEN</name>
|
<name lang="es">Fuente unipolo + PEN</name>
|
||||||
<name lang="nl">1 fase + aardenul</name>
|
<name lang="nl">1 fase + aardenul</name>
|
||||||
<name lang="el">Μονοφασικό +PEN</name>
|
<name lang="el">Μονοφασικό +PEN</name>
|
||||||
<name lang="de">Wechselstrom + PEN</name>
|
<name lang="de">Wechselstrom + PEN</name>
|
||||||
<name lang="cs">1 fáze + PEN</name>
|
<name lang="cs">Přípojnice 1f+PEN</name>
|
||||||
<name lang="pl">Linia jednofazowa (TN-C)</name>
|
<name lang="pl">Linia jednofazowa (TN-C)</name>
|
||||||
<name lang="it">Sorgente unipolare + PEN</name>
|
<name lang="it">Sorgente unipolare + PEN</name>
|
||||||
<name lang="ar">مصدر وحيد القطبية +PEN</name>
|
<name lang="ar">مصدر وحيد القطبية +PEN</name>
|
||||||
<name lang="en">Single-pole source +PEN</name>
|
<name lang="en">Single-pole source +PEN</name>
|
||||||
<name lang="fr">Source unipolaire + PEN</name>
|
<name lang="fr">Source unipolaire + PEN</name>
|
||||||
<name lang="ru">Однополюсный + PEN</name>
|
<name lang="ru">Однополюсный + PEN</name>
|
||||||
|
<name lang="hu">F + PEN</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="40" hotspot_y="20" type="element">
|
<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}"/>
|
<uuid uuid="{457a0c01-871c-40fd-83d7-14033333fb95}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="pt">Fonte unipolar + neutro</name>
|
<name lang="pt">Fonte unipolar + neutro</name>
|
||||||
@@ -6,15 +6,16 @@
|
|||||||
<name lang="nl">Wisselspanning L + nul N</name>
|
<name lang="nl">Wisselspanning L + nul N</name>
|
||||||
<name lang="el">Μονοφασικό + Ουδέτερος</name>
|
<name lang="el">Μονοφασικό + Ουδέτερος</name>
|
||||||
<name lang="de">Wechselstrom L + N</name>
|
<name lang="de">Wechselstrom L + N</name>
|
||||||
<name lang="cs">Jednopólový zdroj + nulový</name>
|
<name lang="cs">Přípojnice 1f+N</name>
|
||||||
<name lang="pl">Linia jednofazowa (dwuprzewodowa)</name>
|
<name lang="pl">Linia jednofazowa (dwuprzewodowa)</name>
|
||||||
<name lang="it">Sorgente unipolare + neutro</name>
|
<name lang="it">Sorgente unipolare + neutro</name>
|
||||||
<name lang="ar">مصدر وحيد القطبية + محايد N</name>
|
<name lang="ar">مصدر وحيد القطبية + محايد N</name>
|
||||||
<name lang="en">Single-pole source + neutral</name>
|
<name lang="en">Single-pole source + neutral</name>
|
||||||
<name lang="fr">Source unipolaire + neutre</name>
|
<name lang="fr">Source unipolaire + neutre</name>
|
||||||
<name lang="ru">Однополюсный + нейтраль</name>
|
<name lang="ru">Однополюсный + нейтраль</name>
|
||||||
|
<name lang="hu">F + N</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<description>
|
||||||
<input x="-5" y="-25.45" tagg="label" size="9" rotate="true" text="_"/>
|
<input x="-5" y="-25.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="60" hotspot_y="30" type="element">
|
<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}"/>
|
<uuid uuid="{03b9e482-cb45-4bee-8030-96b93624fc60}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="pt">Fonte tripolar</name>
|
<name lang="pt">Fonte tripolar</name>
|
||||||
@@ -6,15 +6,16 @@
|
|||||||
<name lang="nl">3fasen</name>
|
<name lang="nl">3fasen</name>
|
||||||
<name lang="el">Τριφασικό</name>
|
<name lang="el">Τριφασικό</name>
|
||||||
<name lang="de">Drehstrom</name>
|
<name lang="de">Drehstrom</name>
|
||||||
<name lang="cs">Třípólový zdroj</name>
|
<name lang="cs">Přípojnice 3f</name>
|
||||||
<name lang="pl">Linia trójfazowa (trójprzewodowa)</name>
|
<name lang="pl">Linia trójfazowa (trójprzewodowa)</name>
|
||||||
<name lang="it">Sorgente tripolare</name>
|
<name lang="it">Sorgente tripolare</name>
|
||||||
<name lang="ar">مصدر ثلاثي القطبيّة</name>
|
<name lang="ar">مصدر ثلاثي القطبيّة</name>
|
||||||
<name lang="en">Three-pole source</name>
|
<name lang="en">Three-pole source</name>
|
||||||
<name lang="fr">Source tripolaire</name>
|
<name lang="fr">Source tripolaire</name>
|
||||||
<name lang="ru">Трёхполюсный</name>
|
<name lang="ru">Трёхполюсный</name>
|
||||||
|
<name lang="hu">3F</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<description>
|
||||||
<input x="-2" y="-34.45" tagg="label" size="9" rotate="true" text="_"/>
|
<input x="-2" y="-34.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="100" hotspot_y="50" type="element">
|
<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}"/>
|
<uuid uuid="{0e017749-6c0f-44c0-8726-6804be8bbee7}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="es">Fuente tripolar + PE +N</name>
|
<name lang="es">Fuente tripolar + PE +N</name>
|
||||||
<name lang="nl">driefase + aarde + nul</name>
|
<name lang="nl">driefase + aarde + nul</name>
|
||||||
<name lang="el">Τριφασικό +N +PE</name>
|
<name lang="el">Τριφασικό +N +PE</name>
|
||||||
<name lang="de">Drehstrom + PE +N</name>
|
<name lang="de">Drehstrom + PE +N</name>
|
||||||
<name lang="cs">3 fáze + PE +N</name>
|
<name lang="cs">Přípojnice 3f+N+PE</name>
|
||||||
<name lang="pl">Linia trójfazowa (pięcioprzewodowa)</name>
|
<name lang="pl">Linia trójfazowa (pięcioprzewodowa)</name>
|
||||||
<name lang="it">Sorgente tripolare +PE + N</name>
|
<name lang="it">Sorgente tripolare +PE + N</name>
|
||||||
<name lang="ar">مصدر ثلاثي القطبية + PE + N</name>
|
<name lang="ar">مصدر ثلاثي القطبية + PE + N</name>
|
||||||
<name lang="en">Three-pole source + PE +N</name>
|
<name lang="en">Three-pole source + PE +N</name>
|
||||||
<name lang="fr">Source tripolaire + PE +N</name>
|
<name lang="fr">Source tripolaire + PE +N</name>
|
||||||
<name lang="ru">Трёхполюсный + PE +N</name>
|
<name lang="ru">Трёхполюсный + PE +N</name>
|
||||||
|
<name lang="hu">3F + N + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
<definition width="40" link_type="simple" version="0.5" hotspot_x="23" orientation="dyyy" height="80" hotspot_y="41" type="element">
|
<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}"/>
|
<uuid uuid="{c0913e95-3b3c-4dc2-a74d-bc73ded78c32}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="es">Fuente tripolar + PEN</name>
|
<name lang="es">Fuente tripolar + PEN</name>
|
||||||
<name lang="nl">driefasen + aardenul</name>
|
<name lang="nl">driefasen + aardenul</name>
|
||||||
<name lang="el">Τριφασικό + PEN</name>
|
<name lang="el">Τριφασικό + PEN</name>
|
||||||
<name lang="de">Drehstrom + PEN</name>
|
<name lang="de">Drehstrom + PEN</name>
|
||||||
<name lang="cs">3 fáze + PEN</name>
|
<name lang="cs">Přípojnice 3f+PEN</name>
|
||||||
<name lang="pl">Linia trójfazowa (PEN)</name>
|
<name lang="pl">Linia trójfazowa (PEN)</name>
|
||||||
<name lang="it">Sorgente tripolare + PEN</name>
|
<name lang="it">Sorgente tripolare + PEN</name>
|
||||||
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
|
<name lang="ar">مصدر ثلاثي القطبيّة + PEN</name>
|
||||||
<name lang="en">Three-pole source + PEN</name>
|
<name lang="en">Three-pole source + PEN</name>
|
||||||
<name lang="fr">Source tripolaire + PEN</name>
|
<name lang="fr">Source tripolaire + PEN</name>
|
||||||
<name lang="ru">Трёхполюсный + PEN</name>
|
<name lang="ru">Трёхполюсный + PEN</name>
|
||||||
|
<name lang="hu">3F + PEN</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="80" hotspot_y="40" type="element">
|
<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}"/>
|
<uuid uuid="{8bfb1790-0735-47d5-88a2-8b4d91aba2f1}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="pt">Fonte tripolar + neutro</name>
|
<name lang="pt">Fonte tripolar + neutro</name>
|
||||||
@@ -6,15 +6,16 @@
|
|||||||
<name lang="nl">Driefasen + nul</name>
|
<name lang="nl">Driefasen + nul</name>
|
||||||
<name lang="el">Τριφασικό + Ουδέτερος</name>
|
<name lang="el">Τριφασικό + Ουδέτερος</name>
|
||||||
<name lang="de">Dreiphasig + Neutral</name>
|
<name lang="de">Dreiphasig + Neutral</name>
|
||||||
<name lang="cs">Třípólový zdroj + nulový</name>
|
<name lang="cs">Přípojnice 3f+N</name>
|
||||||
<name lang="pl">Linia trójfazowa (czteroprzewodowa)</name>
|
<name lang="pl">Linia trójfazowa (czteroprzewodowa)</name>
|
||||||
<name lang="it">Sorgente tripolare + neutro</name>
|
<name lang="it">Sorgente tripolare + neutro</name>
|
||||||
<name lang="ar">مصدر ثلاثي القطبيّة + محايد</name>
|
<name lang="ar">مصدر ثلاثي القطبيّة + محايد</name>
|
||||||
<name lang="en">Three-pole source + neutral</name>
|
<name lang="en">Three-pole source + neutral</name>
|
||||||
<name lang="fr">Source tripolaire + neutre</name>
|
<name lang="fr">Source tripolaire + neutre</name>
|
||||||
<name lang="ru">Трёхполюсный + нейтраль</name>
|
<name lang="ru">Трёхполюсный + нейтраль</name>
|
||||||
|
<name lang="hu">3F + N</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<description>
|
||||||
<input x="-7" y="-44.45" tagg="label" size="9" rotate="true" text="_"/>
|
<input x="-7" y="-44.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="20" hotspot_y="10" type="element">
|
<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}"/>
|
<uuid uuid="{b5ad2e41-804d-4745-99be-e8951cffdf98}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="pt">Fonte de neutro</name>
|
<name lang="pt">Fonte de neutro</name>
|
||||||
@@ -6,13 +6,14 @@
|
|||||||
<name lang="nl">Nul voeding</name>
|
<name lang="nl">Nul voeding</name>
|
||||||
<name lang="el">Ουδέτερος</name>
|
<name lang="el">Ουδέτερος</name>
|
||||||
<name lang="de">Neutralleiter</name>
|
<name lang="de">Neutralleiter</name>
|
||||||
<name lang="cs">Nulový zdroj</name>
|
<name lang="cs">Přípojnice N</name>
|
||||||
<name lang="pl">Przewód neutralny</name>
|
<name lang="pl">Przewód neutralny</name>
|
||||||
<name lang="it">Sorgente neutro</name>
|
<name lang="it">Sorgente neutro</name>
|
||||||
<name lang="ar">مصدر محايد</name>
|
<name lang="ar">مصدر محايد</name>
|
||||||
<name lang="en">Neutral source</name>
|
<name lang="en">Neutral source</name>
|
||||||
<name lang="fr">Source neutre</name>
|
<name lang="fr">Source neutre</name>
|
||||||
<name lang="ru">Нейтраль</name>
|
<name lang="ru">Нейтраль</name>
|
||||||
|
<name lang="hu">N</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="20" hotspot_y="10" type="element">
|
<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}"/>
|
<uuid uuid="{7693c5e0-762b-4309-8d97-cb74619f9efd}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="pt">Fonte de fase</name>
|
<name lang="pt">Fonte de fase</name>
|
||||||
@@ -6,15 +6,16 @@
|
|||||||
<name lang="nl">Fase</name>
|
<name lang="nl">Fase</name>
|
||||||
<name lang="el">Φάση</name>
|
<name lang="el">Φάση</name>
|
||||||
<name lang="de">Phase</name>
|
<name lang="de">Phase</name>
|
||||||
<name lang="cs">Fázový zdroj</name>
|
<name lang="cs">Přípojnice L</name>
|
||||||
<name lang="pl">Przewód liniowy</name>
|
<name lang="pl">Przewód liniowy</name>
|
||||||
<name lang="it">Sorgente fase</name>
|
<name lang="it">Sorgente fase</name>
|
||||||
<name lang="ar">مصدر وجه</name>
|
<name lang="ar">مصدر وجه</name>
|
||||||
<name lang="en">Phase source</name>
|
<name lang="en">Phase source</name>
|
||||||
<name lang="fr">Source phase</name>
|
<name lang="fr">Source phase</name>
|
||||||
<name lang="ru">Фаза</name>
|
<name lang="ru">Фаза</name>
|
||||||
|
<name lang="hu">F</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<description>
|
||||||
<input x="-6" y="-14.45" tagg="label" size="9" rotate="true" text="_"/>
|
<input x="-6" y="-14.45" tagg="label" size="9" rotate="true" text="_"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="70" link_type="simple" version="0.5" hotspot_x="34" orientation="dyyy" height="100" hotspot_y="40" type="element">
|
<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}"/>
|
<uuid uuid="{4b9794cf-e7c0-4f59-aa0a-bb1fce4dfe48}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="es">Punto de distribución TN-C > TN-S</name>
|
<name lang="es">Punto de distribución TN-C > TN-S</name>
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
<name lang="en">Distribution point TN-C >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="fr">Point de distribution TN-C >TN-S</name>
|
||||||
<name lang="ru">Распределительный пункт 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>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<definition height="30" width="20" link_type="terminal" hotspot_x="10" version="0.80" orientation="dyyy" type="element" hotspot_y="19">
|
<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}"/>
|
<uuid uuid="{e4e753a8-9fde-4e8e-9256-0cf99d67e3de}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="pt">Terra</name>
|
<name lang="pt">Terra</name>
|
||||||
<name lang="cs">Země</name>
|
<name lang="cs">Uzemnění</name>
|
||||||
<name lang="it">Terra</name>
|
<name lang="it">Terra</name>
|
||||||
<name lang="el">Γείωση</name>
|
<name lang="el">Γείωση</name>
|
||||||
<name lang="nl">Aarde</name>
|
<name lang="nl">Aarde</name>
|
||||||
@@ -13,6 +13,7 @@
|
|||||||
<name lang="es">Tierra</name>
|
<name lang="es">Tierra</name>
|
||||||
<name lang="ar">تأريض</name>
|
<name lang="ar">تأريض</name>
|
||||||
<name lang="fr">Terre</name>
|
<name lang="fr">Terre</name>
|
||||||
|
<name lang="hu">Földelő</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations>
|
<elementInformations>
|
||||||
<elementInformation name="comment" show="1"></elementInformation>
|
<elementInformation name="comment" show="1"></elementInformation>
|
||||||
@@ -27,7 +28,7 @@
|
|||||||
<elementInformation name="plant" show="1"></elementInformation>
|
<elementInformation name="plant" show="1"></elementInformation>
|
||||||
<elementInformation name="label" show="1"></elementInformation>
|
<elementInformation name="label" show="1"></elementInformation>
|
||||||
</elementInformations>
|
</elementInformations>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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">
|
<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">
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
<definition width="20" height="20" hotspot_y="9" type="element" orientation="dyyy" link_type="simple" hotspot_x="9" version="0.60">
|
<definition width="20" height="20" hotspot_y="9" type="element" link_type="simple" hotspot_x="9" version="0.60">
|
||||||
<uuid uuid="{079913f8-18b5-4524-84bd-aadf75dfefbf}"/>
|
<uuid uuid="{079913f8-18b5-4524-84bd-aadf75dfefbf}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="cs">Bod</name>
|
<name lang="cs">Bod</name>
|
||||||
|
<name lang="de">Verbindung</name>
|
||||||
|
<name lang="hu">Keresztezés pont alakzatban</name>
|
||||||
</names>
|
</names>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<definition hotspot_x="11" hotspot_y="4" version="0.70" type="element" height="20" orientation="dyyy" link_type="terminal" width="30">
|
<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}"/>
|
<uuid uuid="{141e7e1e-4f7f-456d-9f04-52c32109b969}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="en">Combine</name>
|
<name lang="en">Combine</name>
|
||||||
|
<name lang="de">Klemmstelle (2)</name>
|
||||||
<name lang="fr">Jonction</name>
|
<name lang="fr">Jonction</name>
|
||||||
<name lang="es">Unión</name>
|
<name lang="es">Unión</name>
|
||||||
<name lang="it">Collegamento</name>
|
<name lang="it">Collegamento</name>
|
||||||
@@ -9,6 +10,7 @@
|
|||||||
<name lang="ar">وصلة</name>
|
<name lang="ar">وصلة</name>
|
||||||
<name lang="ru">Соединение</name>
|
<name lang="ru">Соединение</name>
|
||||||
<name lang="cs">Spoj</name>
|
<name lang="cs">Spoj</name>
|
||||||
|
<name lang="hu">Egyesítő három vezetékhez</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
|
|||||||
@@ -1,22 +1,25 @@
|
|||||||
<definition hotspot_y="7" width="20" orientation="dyyy" type="element" height="20" version="0.70" hotspot_x="11" link_type="terminal">
|
<definition link_type="terminal" width="20" height="20" hotspot_y="7" type="element" version="0.80" hotspot_x="11">
|
||||||
<uuid uuid="{2d505b61-db0f-4784-9b9c-189366058272}"/>
|
<uuid uuid="{95725a69-d9bf-4186-938c-1f1b9256530b}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="es">Esquina</name>
|
<name lang="it">Angolo</name>
|
||||||
<name lang="en">Corner</name>
|
|
||||||
<name lang="cs">Roh</name>
|
|
||||||
<name lang="fr">Coin</name>
|
<name lang="fr">Coin</name>
|
||||||
<name lang="ru">Угол</name>
|
|
||||||
<name lang="pl">Narożnik</name>
|
<name lang="pl">Narożnik</name>
|
||||||
<name lang="ar">ركن</name>
|
<name lang="ar">ركن</name>
|
||||||
<name lang="it">Angolo</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>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
<dynamic_text rotation="0" x="-0.5" y="-5.45" uuid="{9b8dd22d-096a-4989-b6f7-1de9e0339f53}" font_size="1" z="1" frame="false" text_from="UserText" text_width="-1">
|
<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>
|
<text>_</text>
|
||||||
</dynamic_text>
|
</dynamic_text>
|
||||||
<terminal x="0" y="4" orientation="s"/>
|
<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 x="-4" y="0" orientation="w"/>
|
<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>
|
</description>
|
||||||
</definition>
|
</definition>
|
||||||
|
|||||||
@@ -1,25 +1,29 @@
|
|||||||
<definition height="20" link_type="terminal" hotspot_x="9" width="20" orientation="dyyy" hotspot_y="9" version="0.70" type="element">
|
<definition hotspot_y="9" link_type="terminal" height="20" hotspot_x="9" version="0.80" type="element" width="20">
|
||||||
<uuid uuid="{8c0d3e9c-dc37-41d7-bfd5-fe4dbf8dc4fb}"/>
|
<uuid uuid="{30794dcd-a269-4b6b-8231-c88d89a91e27}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="ru">Пересечение</name>
|
|
||||||
<name lang="cs">Kříž</name>
|
<name lang="cs">Kříž</name>
|
||||||
<name lang="pl">Połączenie 2</name>
|
|
||||||
<name lang="it">Croce</name>
|
|
||||||
<name lang="es">Cruzar</name>
|
|
||||||
<name lang="en">Cross</name>
|
|
||||||
<name lang="ar">صليب</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="fr">Croix</name>
|
||||||
|
<name lang="de">Kreuz</name>
|
||||||
|
<name lang="en">Cross</name>
|
||||||
|
<name lang="es">Cruzar</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
<circle y="-1" style="line-style:normal;line-weight:normal;filling:black;color:black" x="-1" antialias="true" diameter="2"/>
|
<circle y="-1" x="-1" antialias="true" diameter="2" style="line-style:normal;line-weight:normal;filling:black;color:black"/>
|
||||||
<dynamic_text uuid="{fc5c039b-1fca-40d9-a6ff-a9e1775de38b}" text_width="-1" frame="false" y="-9.45" font_size="1" x="-0.5" z="2" rotation="0" text_from="UserText">
|
<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>
|
<text>_</text>
|
||||||
</dynamic_text>
|
</dynamic_text>
|
||||||
<terminal y="0" orientation="e" x="4"/>
|
<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"/>
|
||||||
<terminal y="4" orientation="s" x="0"/>
|
<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" orientation="n" x="0"/>
|
<terminal y="-4" name="" x="0" orientation="n" uuid="{667d83d2-8840-40ec-bf41-8dc659926fe2}"/>
|
||||||
<terminal y="0" orientation="w" x="-4"/>
|
<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>
|
</description>
|
||||||
</definition>
|
</definition>
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<definition width="10" hotspot_y="14" hotspot_x="5" height="30" link_type="terminal" orientation="dyyy" version="0.70" type="element">
|
<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}"/>
|
<uuid uuid="{b5abb4c2-455d-45ff-95f2-328521f4e2e1}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="en">Jump</name>
|
<name lang="en">Jump</name>
|
||||||
|
<name lang="de">Sprung</name>
|
||||||
<name lang="fr">Saut</name>
|
<name lang="fr">Saut</name>
|
||||||
<name lang="ar">قفز</name>
|
<name lang="ar">قفز</name>
|
||||||
<name lang="cs">Skok</name>
|
<name lang="cs">Skok</name>
|
||||||
@@ -9,6 +10,7 @@
|
|||||||
<name lang="pl">Brak połączenia</name>
|
<name lang="pl">Brak połączenia</name>
|
||||||
<name lang="ru">Перемычка</name>
|
<name lang="ru">Перемычка</name>
|
||||||
<name lang="es">Puente</name>
|
<name lang="es">Puente</name>
|
||||||
|
<name lang="hu">Átugrás összekötés nélkül</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
|
|||||||
@@ -1,19 +1,22 @@
|
|||||||
<definition version="0.70" height="30" type="element" width="30" hotspot_x="14" link_type="simple" hotspot_y="12" orientation="dyyy">
|
<definition hotspot_x="14" height="30" link_type="simple" width="30" version="0.80" type="element" hotspot_y="12">
|
||||||
<uuid uuid="{3015326e-2599-495e-8ef0-c12ff5313dd0}"/>
|
<uuid uuid="{0b6817fe-dd44-42a8-8e7c-3c110d13b8a2}"/>
|
||||||
<names>
|
<names>
|
||||||
|
<name lang="hu">Egyesítő négy vezetékhez</name>
|
||||||
|
<name lang="de">Klemmstelle (3)</name>
|
||||||
<name lang="cs">Všestranný spoj</name>
|
<name lang="cs">Všestranný spoj</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
<polygon x6="6" x2="-5" x8="6" y5="5" y2="0" closed="false" x10="0" x3="0" x7="10" y7="0" y4="10" y11="-5" antialias="false" x9="0" x11="0" style="line-style:normal;line-weight:normal;filling:none;color:black" x5="0" y9="5" y10="-5" y1="0" y6="0" x4="0" x1="-10" y8="0" y3="5"/>
|
<dynamic_text Valignment="AlignTop" x="-13" text_from="ElementInfo" text_width="-1" z="2" uuid="{14c0b70c-c028-49ef-bf72-3c3c9cd64669}" y="-12" rotation="0" frame="false" Halignment="AlignLeft" font="Sans Serif,9,-1,5,50,0,0,0,0,0">
|
||||||
<dynamic_text font="Sans Serif,9,-1,5,50,0,0,0,0,0" frame="false" x="-13" text_from="ElementInfo" y="-12" z="2" rotation="0" Valignment="AlignTop" text_width="-1" uuid="{14c0b70c-c028-49ef-bf72-3c3c9cd64669}" Halignment="AlignLeft">
|
|
||||||
<text></text>
|
<text></text>
|
||||||
<info_name>label</info_name>
|
<info_name>label</info_name>
|
||||||
</dynamic_text>
|
</dynamic_text>
|
||||||
<terminal x="0" y="-5" orientation="n"/>
|
<polygon x1="-10" y5="0" x3="0" x5="10" y2="0" y3="5" closed="false" style="line-style:normal;line-weight:normal;filling:none;color:black" x4="5" x2="-5" antialias="false" y4="0" y1="0"/>
|
||||||
<terminal x="0" y="10" orientation="s"/>
|
<line x1="0" end1="none" y2="10" style="line-style:normal;line-weight:normal;filling:none;color:black" x2="0" length1="1.5" antialias="false" end2="none" y1="-5" length2="1.5"/>
|
||||||
<terminal x="-10" y="0" orientation="w"/>
|
<terminal x="10" orientation="e" uuid="{06bf5c9f-6986-45bf-b11f-02e876abc4b8}" y="0" name=""/>
|
||||||
<terminal x="10" y="0" orientation="e"/>
|
<terminal x="0" orientation="n" uuid="{33c03677-8555-4b42-ae2c-4b4308978086}" y="-5" name=""/>
|
||||||
|
<terminal x="-10" orientation="w" uuid="{95bef6e9-343e-45d7-9705-4aa81f62bed0}" y="0" name=""/>
|
||||||
|
<terminal x="0" orientation="s" uuid="{e9329e22-255b-4763-9dc6-65da277e1ac7}" y="10" name=""/>
|
||||||
</description>
|
</description>
|
||||||
</definition>
|
</definition>
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
<definition type="element" hotspot_x="35" orientation="dyyy" version="0.80" width="70" height="80" hotspot_y="46" link_type="simple">
|
|
||||||
<uuid uuid="{e5a46987-e259-4ca4-9e40-eedc3652f738}"/>
|
|
||||||
<names>
|
|
||||||
<name lang="cs">Pokus</name>
|
|
||||||
</names>
|
|
||||||
<elementInformations/>
|
|
||||||
<informations></informations>
|
|
||||||
<description>
|
|
||||||
<rect width="60" x="-30" style="line-style:normal;line-weight:normal;filling:none;color:black" height="65" rx="0" y="-35" antialias="false" ry="0"/>
|
|
||||||
<dynamic_text z="3" font="Sans Serif,9,-1,5,0,0,0,0,0,0,normal" Valignment="AlignTop" uuid="{cec75afa-b854-41b8-aed8-6edba82c76ff}" text_from="ElementInfo" x="-45" text_width="-1" y="-20" frame="false" rotation="0" Halignment="AlignLeft">
|
|
||||||
<text></text>
|
|
||||||
<info_name>label</info_name>
|
|
||||||
</dynamic_text>
|
|
||||||
<terminal orientation="n" x="20" y="-40"/>
|
|
||||||
<terminal orientation="n" x="-20" y="-40"/>
|
|
||||||
</description>
|
|
||||||
</definition>
|
|
||||||
@@ -6,10 +6,13 @@
|
|||||||
<name lang="fr">Connections</name>
|
<name lang="fr">Connections</name>
|
||||||
<name lang="it">Collegamenti</name>
|
<name lang="it">Collegamenti</name>
|
||||||
<name lang="pl">Połączenia</name>
|
<name lang="pl">Połączenia</name>
|
||||||
|
<name lang="pt_br">Conexões</name>
|
||||||
<name lang="cs">Spojení</name>
|
<name lang="cs">Spojení</name>
|
||||||
<name lang="el">Ενώσεις</name>
|
<name lang="el">Ενώσεις</name>
|
||||||
<name lang="nl">Verbindingen</name>
|
<name lang="nl">Verbindingen</name>
|
||||||
<name lang="es">Conexiones</name>
|
<name lang="es">Conexiones</name>
|
||||||
<name lang="da">Forbindelser</name>
|
<name lang="da">Forbindelser</name>
|
||||||
|
<name lang="ja">接続</name>
|
||||||
|
<name lang="hu">Csatlakozások</name>
|
||||||
</names>
|
</names>
|
||||||
</qet-directory>
|
</qet-directory>
|
||||||
|
|||||||
@@ -1,25 +1,26 @@
|
|||||||
<definition type="element" height="20" width="30" orientation="dyyy" version="0.70" hotspot_y="4" link_type="terminal" hotspot_x="17">
|
<definition width="30" version="0.80" hotspot_x="17" hotspot_y="4" link_type="terminal" type="element" height="20">
|
||||||
<uuid uuid="{709e6400-adc2-4faf-ba46-aa513d1dcaf1}"/>
|
<uuid uuid="{5a3d6c01-db95-45ec-be2c-dd861938525b}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="fr">Epissure</name>
|
<name lang="fr">Epissure</name>
|
||||||
<name lang="pl">Połączenie 3</name>
|
|
||||||
<name lang="cs">Spojka</name>
|
<name lang="cs">Spojka</name>
|
||||||
<name lang="en">Splice</name>
|
|
||||||
<name lang="it">Spaziatura</name>
|
|
||||||
<name lang="ru">Сращивание</name>
|
|
||||||
<name lang="es">Empalme</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>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
<dynamic_text text_width="-1" x="1.5" rotation="0" frame="false" uuid="{b653b162-d4c8-4660-a5ca-e6ca05a56de9}" font_size="1" z="1" text_from="ElementInfo" y="-1.45">
|
<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>
|
<text></text>
|
||||||
<info_name>label</info_name>
|
<info_name>label</info_name>
|
||||||
</dynamic_text>
|
</dynamic_text>
|
||||||
<line x2="-6" antialias="false" x1="0" end2="none" y2="0" end1="none" length2="1.5" length1="1.5" y1="6" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
<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"/>
|
||||||
<line x2="-5" antialias="false" x1="1" end2="none" y2="0" end1="none" length2="1.5" length1="1.5" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black"/>
|
<terminal y="10" x="0" uuid="{1d3bb613-e8e2-4bcd-8515-ff9a0459b3c3}" name="" orientation="s"/>
|
||||||
<terminal x="0" orientation="s" y="10"/>
|
<terminal y="0" x="-10" uuid="{367dd739-791b-4d8f-9e49-4a70fd990b19}" name="" orientation="w"/>
|
||||||
<terminal x="-10" orientation="w" y="0"/>
|
<terminal y="0" x="4" uuid="{f75b8c8d-508b-4346-a6df-8cda82201d98}" name="" orientation="e"/>
|
||||||
<terminal x="4" orientation="e" y="0"/>
|
|
||||||
</description>
|
</description>
|
||||||
</definition>
|
</definition>
|
||||||
|
|||||||
@@ -1,25 +1,27 @@
|
|||||||
<definition hotspot_y="4" height="20" hotspot_x="17" type="element" width="30" link_type="terminal" orientation="dyyy" version="0.70">
|
<definition height="20" version="0.80" hotspot_x="17" link_type="terminal" width="30" type="element" hotspot_y="4">
|
||||||
<uuid uuid="{9e88368e-1b20-4a56-8941-5d17a4cce2d4}"/>
|
<uuid uuid="{3dd412d9-6882-42ae-9f5f-eb04f2224214}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="cs">Levé spojení</name>
|
<name lang="hu">Balra továbbmenő leágazás</name>
|
||||||
<name lang="ru">Справа налево</name>
|
|
||||||
<name lang="fr">Liaison gauche</name>
|
|
||||||
<name lang="en">Thru left</name>
|
|
||||||
<name lang="ar">ربط يسار</name>
|
|
||||||
<name lang="it">Collegamento sinistro</name>
|
|
||||||
<name lang="pl">Połączenie 4</name>
|
|
||||||
<name lang="es">A la izquierda</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>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
<dynamic_text font_size="1" rotation="0" uuid="{5ff9bef8-b6a8-4cf8-ba82-4dabe7b1820f}" text_width="-1" frame="false" text_from="UserText" z="1" x="1.5" y="-1.45">
|
<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>
|
<text>_</text>
|
||||||
</dynamic_text>
|
</dynamic_text>
|
||||||
<line x1="0" length1="1.5" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="6" y2="0" end1="none" antialias="false" x2="-6"/>
|
<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"/>
|
||||||
<line x1="0" length1="1.5" end2="none" length2="1.5" style="line-style:normal;line-weight:normal;filling:none;color:black" y1="0" y2="5" end1="none" antialias="false" x2="0"/>
|
<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="4" orientation="e" y="0"/>
|
<terminal x="0" uuid="{46980c8f-3fb1-4993-b1ec-6f3b60832fab}" orientation="s" name="" y="10"/>
|
||||||
<terminal x="-10" orientation="w" y="0"/>
|
<terminal x="-10" uuid="{401a02b0-a3d8-4f09-bd65-c4a6ad782686}" orientation="w" name="" y="0"/>
|
||||||
<terminal x="0" orientation="s" y="10"/>
|
<terminal x="4" uuid="{223e7aaa-f9ff-47e6-b901-89471848b8de}" orientation="e" name="" y="0"/>
|
||||||
</description>
|
</description>
|
||||||
</definition>
|
</definition>
|
||||||
|
|||||||
@@ -1,26 +1,27 @@
|
|||||||
<definition link_type="terminal" width="30" hotspot_x="14" orientation="dyyy" height="20" version="0.70" hotspot_y="4" type="element">
|
<definition width="30" type="element" hotspot_x="14" version="0.80" hotspot_y="4" height="20" link_type="terminal">
|
||||||
<uuid uuid="{6e40fff3-691c-4622-b9aa-4ff930a5b981}"/>
|
<uuid uuid="{8e68cb1a-e9d8-42e4-aa67-aca8b6e6b32d}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="en">Thru right</name>
|
|
||||||
<name lang="ru">Слева направо</name>
|
|
||||||
<name lang="cs">Pravé spojení</name>
|
|
||||||
<name lang="fr">Liaison droite</name>
|
|
||||||
<name lang="it">Collegamento destro</name>
|
<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="es">A la derecha</name>
|
||||||
<name lang="ar">ربط يمين</name>
|
|
||||||
<name lang="pl">Połączenie 5</name>
|
<name lang="pl">Połączenie 5</name>
|
||||||
|
<name lang="ar">ربط يمين</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
<dynamic_text text_width="-1" y="-0.45" rotation="0" uuid="{ab829572-e7d6-4e5c-9c6e-a0852fea788e}" x="5.5" frame="false" text_from="UserText" font_size="1" z="1">
|
<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>
|
<text>_</text>
|
||||||
</dynamic_text>
|
</dynamic_text>
|
||||||
<line antialias="false" x1="0" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" end2="none" end1="none" y2="0" length2="1.5" x2="-6"/>
|
<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"/>
|
||||||
<line antialias="false" x1="0" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" end2="none" end1="none" y2="5" length2="1.5" x2="0"/>
|
<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"/>
|
||||||
<line antialias="false" x1="6" y1="0" style="line-style:normal;line-weight:normal;filling:none;color:black" length1="1.5" end2="none" end1="none" y2="6" length2="1.5" x2="0"/>
|
<terminal y="0" uuid="{53d9bb7f-b045-4581-bc2d-7a9198286e89}" name="" orientation="w" x="-10"/>
|
||||||
<terminal orientation="s" y="10" x="0"/>
|
<terminal y="10" uuid="{7883adda-c1cd-4e21-93f5-330d9c7461ea}" name="" orientation="s" x="0"/>
|
||||||
<terminal orientation="w" y="0" x="-10"/>
|
<terminal y="0" uuid="{053ce092-f1df-46a5-8960-e4c6fcea95d1}" name="" orientation="e" x="10"/>
|
||||||
<terminal orientation="e" y="0" x="10"/>
|
|
||||||
</description>
|
</description>
|
||||||
</definition>
|
</definition>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="120" version="0.3" hotspot_x="71" hotspot_y="10" height="40" type="element" orientation="dyyy">
|
<definition width="120" version="0.3" hotspot_x="71" hotspot_y="10" height="40" type="element">
|
||||||
<names>
|
<names>
|
||||||
<name lang="ar">كايبل طورين + تأريض</name>
|
<name lang="ar">كايبل طورين + تأريض</name>
|
||||||
<name lang="de">Kabel 3G</name>
|
<name lang="de">Kabel 3G</name>
|
||||||
@@ -7,9 +7,10 @@
|
|||||||
<name lang="fr">Cable 2 phases+terre</name>
|
<name lang="fr">Cable 2 phases+terre</name>
|
||||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||||
<name lang="es">Cable 2 fases+tierra</name>
|
<name lang="es">Cable 2 fases+tierra</name>
|
||||||
<name lang="cs">Označení drátového propojení - 2 fáze + země</name>
|
<name lang="cs">Kabel 3G</name>
|
||||||
|
<name lang="hu">Kábel 2 + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<description>
|
||||||
<text x="12" y="9" size="4" text="2"/>
|
<text x="12" y="9" size="4" text="2"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="120" version="0.3" hotspot_x="70" hotspot_y="10" height="40" type="element" orientation="dyyy">
|
<definition width="120" version="0.3" hotspot_x="70" hotspot_y="10" height="40" type="element">
|
||||||
<names>
|
<names>
|
||||||
<name lang="ar">كايبل ثلاثي الطور + تأريض</name>
|
<name lang="ar">كايبل ثلاثي الطور + تأريض</name>
|
||||||
<name lang="de">Kabel 4G</name>
|
<name lang="de">Kabel 4G</name>
|
||||||
@@ -7,9 +7,10 @@
|
|||||||
<name lang="fr">Cable 3 phases+terre</name>
|
<name lang="fr">Cable 3 phases+terre</name>
|
||||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||||
<name lang="es">Cable 3 fases+tierra</name>
|
<name lang="es">Cable 3 fases+tierra</name>
|
||||||
<name lang="cs">Označení drátového propojení - 3 fáze + země</name>
|
<name lang="cs">Kabel 4G</name>
|
||||||
|
<name lang="hu">Kábel 3 + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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"/>
|
<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"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition width="100" version="0.3" hotspot_x="60" hotspot_y="10" height="40" type="element" orientation="dyyy">
|
<definition width="100" version="0.3" hotspot_x="60" hotspot_y="10" height="40" type="element">
|
||||||
<names>
|
<names>
|
||||||
<name lang="ar">كايبل بطورين و تأريض</name>
|
<name lang="ar">كايبل بطورين و تأريض</name>
|
||||||
<name lang="de">Kabel 3G</name>
|
<name lang="de">Kabel 3G</name>
|
||||||
@@ -7,9 +7,10 @@
|
|||||||
<name lang="fr">Cable 2 phases+terre</name>
|
<name lang="fr">Cable 2 phases+terre</name>
|
||||||
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
<name lang="pl">Oznaczenie przewodu czterożyłowego</name>
|
||||||
<name lang="es">Cable 2 fases+tierra</name>
|
<name lang="es">Cable 2 fases+tierra</name>
|
||||||
<name lang="cs">Označení drátového propojení - 2 fáze + země</name>
|
<name lang="cs">Kabel 3G</name>
|
||||||
|
<name lang="hu">Kábel 2 + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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"/>
|
<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"/>
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
<definition width="130" version="0.3" hotspot_x="88" hotspot_y="18" height="40" type="element" orientation="dyyy">
|
<definition width="130" version="0.3" hotspot_x="88" hotspot_y="18" height="40" type="element">
|
||||||
<names>
|
<names>
|
||||||
<name lang="ar">كايبل رباعي النواة</name>
|
<name lang="ar">كايبل رباعي النواة</name>
|
||||||
<name lang="It">Cavo ? 4G</name>
|
<name lang="It">Cavo ? 4G</name>
|
||||||
<name lang="fr">Cable 4G</name>
|
<name lang="fr">Cable 4G</name>
|
||||||
<name lang="pl">Przewód czterożyłowy</name>
|
<name lang="pl">Przewód czterożyłowy</name>
|
||||||
<name lang="es">Cable 4G</name>
|
<name lang="es">Cable 4G</name>
|
||||||
|
<name lang="cs">Kabel 4G</name>
|
||||||
|
<name lang="hu">Kábel 3 + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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="-33.05" y2="11.95" x2="-29.05"/>
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
<definition hotspot_y="3" orientation="dyyy" version="0.51" hotspot_x="47" link_type="simple" width="100" type="element" height="20">
|
<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}"/>
|
<uuid uuid="{9923c1a5-b49a-4243-923e-cde9d916ea2b}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="fr">Cable 5G</name>
|
<name lang="fr">Cable 5G</name>
|
||||||
<name lang="it">Cavo Type 5G</name>
|
<name lang="it">Cavo Type 5G</name>
|
||||||
<name lang="es">Cable 5G</name>
|
<name lang="es">Cable 5G</name>
|
||||||
<name lang="pl">Przewód pięciożyłowy</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>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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="-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"/>
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
<definition hotspot_y="3" orientation="dyyy" version="0.51" hotspot_x="29" link_type="simple" width="60" type="element" height="20">
|
<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}"/>
|
<uuid uuid="{5f981421-4c54-4cd5-929e-7f77dab94fef}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="It">Cavo ? 3G</name>
|
<name lang="It">Cavo ? 3G</name>
|
||||||
<name lang="fr">Cable 3G</name>
|
<name lang="fr">Cable 3G</name>
|
||||||
<name lang="es">Cable 3G</name>
|
<name lang="es">Cable 3G</name>
|
||||||
<name lang="pl">Przewód trójżyłowy</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>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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="-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"/>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<definition width="70" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="20" hotspot_y="9" type="element">
|
<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}"/>
|
<uuid uuid="{4b9a04b1-0d35-4d54-b5cb-b573ed3a9b0d}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="de">Kabel 3x</name>
|
<name lang="de">Kabel 3x</name>
|
||||||
<name lang="cs">Označení drátového propojení 3 vodiče</name>
|
<name lang="cs">Kabel 3x</name>
|
||||||
<name lang="pl">Oznaczenie przewodu trójżyłowego</name>
|
<name lang="pl">Oznaczenie przewodu trójżyłowego</name>
|
||||||
<name lang="it">Cavo a 3 conduttori</name>
|
<name lang="it">Cavo a 3 conduttori</name>
|
||||||
<name lang="en">Cable 3 wires</name>
|
<name lang="en">Cable 3 wires</name>
|
||||||
<name lang="es">Cable 3 alambres</name>
|
<name lang="es">Cable 3 alambres</name>
|
||||||
<name lang="fr">Cable 3 brins</name>
|
<name lang="fr">Cable 3 brins</name>
|
||||||
<name lang="ru">Кабель 3 жилы</name>
|
<name lang="ru">Кабель 3 жилы</name>
|
||||||
|
<name lang="hu">Kábel 3 + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<definition width="60" link_type="simple" version="0.5" hotspot_x="21" orientation="dyyy" height="10" hotspot_y="-6" type="element">
|
<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}"/>
|
<uuid uuid="{822e6fc1-0104-4d3a-ba3c-995c24c79cf2}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="nl">Scherm</name>
|
<name lang="nl">Scherm</name>
|
||||||
<name lang="el">Πλέγμα</name>
|
<name lang="el">Πλέγμα</name>
|
||||||
<name lang="de">Schirm</name>
|
<name lang="de">Schirm</name>
|
||||||
<name lang="cs">Obrazovka</name>
|
<name lang="cs">Stínění</name>
|
||||||
<name lang="pl">Ekran 3</name>
|
<name lang="pl">Ekran 3</name>
|
||||||
<name lang="it">Schermo</name>
|
<name lang="it">Schermo</name>
|
||||||
<name lang="ar">شاشة</name>
|
<name lang="ar">شاشة</name>
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
<name lang="es">Pantalla</name>
|
<name lang="es">Pantalla</name>
|
||||||
<name lang="fr">Ecran</name>
|
<name lang="fr">Ecran</name>
|
||||||
<name lang="ru">Экран</name>
|
<name lang="ru">Экран</name>
|
||||||
|
<name lang="hu">Árnyékolás</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="20" hotspot_y="9" type="element">
|
<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}"/>
|
<uuid uuid="{6ac285f9-6492-40cb-be58-9ba565ea1921}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="de">Kabelader</name>
|
<name lang="de">Kabelader</name>
|
||||||
<name lang="cs">Vedení kabelu</name>
|
<name lang="cs">Vodič kabelu</name>
|
||||||
<name lang="pl">Połączenie przewodu</name>
|
<name lang="pl">Połączenie przewodu</name>
|
||||||
<name lang="it">Conduttore di un cavo</name>
|
<name lang="it">Conduttore di un cavo</name>
|
||||||
<name lang="en">Wire of cable</name>
|
<name lang="en">Wire of cable</name>
|
||||||
<name lang="es">Alambre del cable</name>
|
<name lang="es">Alambre del cable</name>
|
||||||
<name lang="fr">Fil de cable</name>
|
<name lang="fr">Fil de cable</name>
|
||||||
<name lang="ru">Жила кабеля</name>
|
<name lang="ru">Жила кабеля</name>
|
||||||
|
<name lang="hu">Kábelér</name>
|
||||||
</names>
|
</names>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
<definition width="20" link_type="simple" version="0.5" hotspot_x="10" orientation="dyyy" height="20" hotspot_y="9" type="element">
|
<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}"/>
|
<uuid uuid="{374ed6b3-7329-4cad-ac8c-200b17508460}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="de">Verdrahtung</name>
|
<name lang="de">Verdrahtung</name>
|
||||||
<name lang="cs">Drátové propojení</name>
|
<name lang="cs">Vodič kabelu</name>
|
||||||
<name lang="pl">Oznaczenie przewodu</name>
|
<name lang="pl">Oznaczenie przewodu</name>
|
||||||
<name lang="it">Conduttura</name>
|
<name lang="it">Conduttura</name>
|
||||||
<name lang="en">Wiring</name>
|
<name lang="en">Wiring</name>
|
||||||
<name lang="es">Alambrado</name>
|
<name lang="es">Alambrado</name>
|
||||||
<name lang="fr">Filerie</name>
|
<name lang="fr">Filerie</name>
|
||||||
|
<name lang="hu">Vezeték</name>
|
||||||
</names>
|
</names>
|
||||||
<informations></informations>
|
<informations></informations>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
<definition width="70" hotspot_x="35" hotspot_y="5" orientation="dyyy" version="0.80" type="element" height="10" link_type="simple">
|
<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}"/>
|
<uuid uuid="{3cfdc90d-f114-4ecd-9ab2-37786c279287}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="de">Kabel 3G</name>
|
<name lang="de">Kabel 3G</name>
|
||||||
<name lang="fr">Cable 3G</name>
|
<name lang="fr">Cable 3G</name>
|
||||||
<name lang="cs">Kabel 3G</name>
|
<name lang="cs">Kabel 3G</name>
|
||||||
|
<name lang="hu">Kábel 2 + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<elementInformations/>
|
<elementInformations/>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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="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"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="36" hotspot_y="5" orientation="dyyy" width="90">
|
<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}"/>
|
<uuid uuid="{e02f4582-b5dd-4f81-ba71-e3d5521b4152}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="ru">Кабель 3 жилы + PE</name>
|
<name lang="ru">Кабель 3 жилы + PE</name>
|
||||||
@@ -8,8 +8,9 @@
|
|||||||
<name lang="es">Cable 3 fases+tierra</name>
|
<name lang="es">Cable 3 fases+tierra</name>
|
||||||
<name lang="it">Cavo 3 fasi + terra</name>
|
<name lang="it">Cavo 3 fasi + terra</name>
|
||||||
<name lang="fr">Cable 3 phases+terre</name>
|
<name lang="fr">Cable 3 phases+terre</name>
|
||||||
|
<name lang="hu">Kábel 3 + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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="-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"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition type="element" height="10" link_type="simple" version="0.60" hotspot_x="73" hotspot_y="5" orientation="dyyy" width="150">
|
<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}"/>
|
<uuid uuid="{d1007c67-032b-4925-8560-aac9e547d6ae}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="ru">Кабель 6 жилы + PE</name>
|
<name lang="ru">Кабель 6 жилы + PE</name>
|
||||||
@@ -8,8 +8,9 @@
|
|||||||
<name lang="es">Cable 6 fases+tierra</name>
|
<name lang="es">Cable 6 fases+tierra</name>
|
||||||
<name lang="it">Cavo fasi + terra</name>
|
<name lang="it">Cavo fasi + terra</name>
|
||||||
<name lang="fr">Cable 6 phases+terre</name>
|
<name lang="fr">Cable 6 phases+terre</name>
|
||||||
|
<name lang="hu">Kábel 6 + PE</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<description>
|
||||||
<input size="4" tagg="none" rotate="true" x="38" y="-4" text="6"/>
|
<input size="4" tagg="none" rotate="true" x="38" y="-4" text="6"/>
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="14" orientation="dyyy" height="20" hotspot_y="4" type="element">
|
<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}"/>
|
<uuid uuid="{a0e9e33a-ee38-4c08-8f40-c307da8d822b}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="el">Διατομή αγωγού</name>
|
<name lang="el">Διατομή αγωγού</name>
|
||||||
<name lang="es">Clasificación de sección</name>
|
<name lang="es">Clasificación de sección</name>
|
||||||
<name lang="nl">Doorsnede</name>
|
<name lang="nl">Doorsnede</name>
|
||||||
<name lang="de">Verdrahtungsquerschnitt</name>
|
<name lang="de">Verdrahtungsquerschnitt</name>
|
||||||
<name lang="cs">Průřez drátovým propojením</name>
|
<name lang="cs">Průřez vodiče</name>
|
||||||
<name lang="pl">Pole przekróju przewodu</name>
|
<name lang="pl">Pole przekróju przewodu</name>
|
||||||
<name lang="it">Sezione della nomenclatura</name>
|
<name lang="it">Sezione della nomenclatura</name>
|
||||||
<name lang="ar">تسمية مساحة المقطع </name>
|
<name lang="ar">تسمية مساحة المقطع </name>
|
||||||
<name lang="en">Wiring section</name>
|
<name lang="en">Wiring section</name>
|
||||||
<name lang="fr">Section de fil</name>
|
<name lang="fr">Section de fil</name>
|
||||||
|
<name lang="hu">Vezeték keresztmetszet</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
|
|||||||
@@ -6,10 +6,13 @@
|
|||||||
<name lang="fr">Câbles et filerie</name>
|
<name lang="fr">Câbles et filerie</name>
|
||||||
<name lang="it">Cavi e collegamenti</name>
|
<name lang="it">Cavi e collegamenti</name>
|
||||||
<name lang="pl">Przewody i kable</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="de">Kabel und Verdrahtung</name>
|
||||||
<name lang="el">Καλώδια και καλωδίωση</name>
|
<name lang="el">Καλώδια και καλωδίωση</name>
|
||||||
<name lang="nl">Kabels en draden</name>
|
<name lang="nl">Kabels en draden</name>
|
||||||
<name lang="cs">Kabely a drátové propojení</name>
|
<name lang="cs">Kabely a vodiče</name>
|
||||||
<name lang="da">Kabler og ledninger</name>
|
<name lang="da">Kabler og ledninger</name>
|
||||||
|
<name lang="ja">ケーブルと配線</name>
|
||||||
|
<name lang="hu">Kábelek és vezetékek</name>
|
||||||
</names>
|
</names>
|
||||||
</qet-directory>
|
</qet-directory>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<definition width="30" link_type="simple" version="0.5" hotspot_x="15" orientation="dyyy" height="10" hotspot_y="5" type="element">
|
<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}"/>
|
<uuid uuid="{b96a76a6-a798-497b-a044-dd933756d175}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="de">Verdrahtungsdefinition 1 Leiter</name>
|
<name lang="de">Verdrahtungsdefinition 1 Leiter</name>
|
||||||
<name lang="cs">Označení drátového propojení 1 vodič</name>
|
<name lang="cs">Označení vodiče</name>
|
||||||
<name lang="pl">Oznaczenie pola przekroju przewodu jednożyłowego</name>
|
<name lang="pl">Oznaczenie pola przekroju przewodu jednożyłowego</name>
|
||||||
<name lang="it">Sezione 1 conduttore</name>
|
<name lang="it">Sezione 1 conduttore</name>
|
||||||
<name lang="fr">Section 1 conducteur</name>
|
<name lang="fr">Section 1 conducteur</name>
|
||||||
<name lang="es">Sección 1 conductor</name>
|
<name lang="es">Sección 1 conductor</name>
|
||||||
|
<name lang="hu">1 ér keresztmetszet</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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="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"/>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" orientation="dyyy" height="10" hotspot_y="5" type="element">
|
<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}"/>
|
<uuid uuid="{448ac784-f459-4f8f-bd3f-d911802b3369}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="de">Verdrahtungsdefinition 2 Leiter</name>
|
<name lang="de">Verdrahtungsdefinition 2 Leiter</name>
|
||||||
<name lang="cs">Označení drátového propojení 2 vodiče</name>
|
<name lang="cs">Označení žil 2 vodiče</name>
|
||||||
<name lang="pl">Oznaczenie pola przekroju przewodu dwużyłowego</name>
|
<name lang="pl">Oznaczenie pola przekroju przewodu dwużyłowego</name>
|
||||||
<name lang="it">Sezione 2 conduttori</name>
|
<name lang="it">Sezione 2 conduttori</name>
|
||||||
<name lang="fr">Section 2 conducteurs</name>
|
<name lang="fr">Section 2 conducteurs</name>
|
||||||
<name lang="es">Sección 2 conductores</name>
|
<name lang="es">Sección 2 conductores</name>
|
||||||
|
<name lang="hu">2 ér keresztmetszet</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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="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"/>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<definition width="40" link_type="simple" version="0.5" hotspot_x="14" orientation="dyyy" height="10" hotspot_y="5" type="element">
|
<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}"/>
|
<uuid uuid="{c94d9e16-e3bb-4117-b037-466a15edcb14}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="de">Verdrahtungsdefinition 2 Leiter</name>
|
<name lang="de">Verdrahtungsdefinition 2 Leiter</name>
|
||||||
<name lang="cs">Označení drátového propojení 2 vodiče</name>
|
<name lang="cs">Označení žil 2 vodiče</name>
|
||||||
<name lang="pl">Oznaczenie pola przekroju przewodu dwużyłowego</name>
|
<name lang="pl">Oznaczenie pola przekroju przewodu dwużyłowego</name>
|
||||||
<name lang="it">Sezione 2 conduttori</name>
|
<name lang="it">Sezione 2 conduttori</name>
|
||||||
<name lang="fr">Section 2 conducteurs</name>
|
<name lang="fr">Section 2 conducteurs</name>
|
||||||
<name lang="es">Sección 2 conductores</name>
|
<name lang="es">Sección 2 conductores</name>
|
||||||
|
<name lang="hu">2 ér keresztmetszet</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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="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"/>
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" orientation="dyyy" height="10" hotspot_y="5" type="element">
|
<definition width="70" link_type="simple" version="0.5" hotspot_x="16" height="10" hotspot_y="5" type="element">
|
||||||
<uuid uuid="{9d939952-9c2b-4b12-898f-262abc91e845}"/>
|
<uuid uuid="{9d939952-9c2b-4b12-898f-262abc91e845}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="de">Verdrahtungsdefinition 3 Leiter</name>
|
<name lang="de">Verdrahtungsdefinition 3 Leiter</name>
|
||||||
<name lang="cs">Označení drátového propojení 3 vodiče</name>
|
<name lang="cs">Označení žil 3 vodiče</name>
|
||||||
<name lang="pl">Oznaczenie pola przekroju przewodu trójżyłowego</name>
|
<name lang="pl">Oznaczenie pola przekroju przewodu trójżyłowego</name>
|
||||||
<name lang="it">Sezione 3 conduttori</name>
|
<name lang="it">Sezione 3 conduttori</name>
|
||||||
<name lang="fr">Section 3 conducteurs</name>
|
<name lang="fr">Section 3 conducteurs</name>
|
||||||
<name lang="es">Sección 3 conductores</name>
|
<name lang="es">Sección 3 conductores</name>
|
||||||
|
<name lang="hu">3 ér keresztmetszet</name>
|
||||||
</names>
|
</names>
|
||||||
<informations>Author: The QElectroTech team
|
<informations>Author: The QElectroTech team
|
||||||
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
License: see http://qelectrotech.org/wiki/doc/elements_license</informations>
|
||||||
<description>
|
<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="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"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition height="80" hotspot_y="39" hotspot_x="17" version="0.5" orientation="dyyy" width="40" link_type="simple" type="element">
|
<definition height="80" hotspot_y="39" hotspot_x="17" version="0.5" width="40" link_type="simple" type="element">
|
||||||
<uuid uuid="{9d2d8902-b36a-4974-b46d-4de6741f6b9b}"/>
|
<uuid uuid="{9d2d8902-b36a-4974-b46d-4de6741f6b9b}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="en">Terminal strip label</name>
|
<name lang="en">Terminal strip label</name>
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
<name lang="fr">Label de bornier</name>
|
<name lang="fr">Label de bornier</name>
|
||||||
<name lang="de">Klemmleisten-BMK</name>
|
<name lang="de">Klemmleisten-BMK</name>
|
||||||
<name lang="pl">Etykieta listwy zaciskowej</name>
|
<name lang="pl">Etykieta listwy zaciskowej</name>
|
||||||
|
<name lang="cs">Štítek svorkovnice</name>
|
||||||
|
<name lang="hu">Sorkapocstömb jelölő</name>
|
||||||
</names>
|
</names>
|
||||||
<informations/>
|
<informations/>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" width="30" link_type="simple" type="element">
|
||||||
<uuid uuid="{2d155649-d0f5-419b-b94a-a13d3fcf38c7}"/>
|
<uuid uuid="{2d155649-d0f5-419b-b94a-a13d3fcf38c7}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="fr">Borne (continuité)</name>
|
<name lang="fr">Borne (continuité)</name>
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
<name lang="en">Terminal (feed-through)</name>
|
<name lang="en">Terminal (feed-through)</name>
|
||||||
<name lang="es">Clema (introducción atravesada)</name>
|
<name lang="es">Clema (introducción atravesada)</name>
|
||||||
<name lang="pl">Zacisk</name>
|
<name lang="pl">Zacisk</name>
|
||||||
|
<name lang="cs">Svorka průchozí</name>
|
||||||
|
<name lang="hu">Sorkapocs átmenő</name>
|
||||||
</names>
|
</names>
|
||||||
<informations/>
|
<informations/>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
<definition height="90" hotspot_y="44" hotspot_x="15" version="0.5" width="30" link_type="simple" type="element">
|
||||||
<uuid uuid="{da19301b-f6e7-478f-a6dd-eb72e497883b}"/>
|
<uuid uuid="{da19301b-f6e7-478f-a6dd-eb72e497883b}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="fr">Borne (terre)</name>
|
<name lang="fr">Borne (terre)</name>
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
<name lang="en">Terminal (Grounding)</name>
|
<name lang="en">Terminal (Grounding)</name>
|
||||||
<name lang="es">Clema (Aterrizada)</name>
|
<name lang="es">Clema (Aterrizada)</name>
|
||||||
<name lang="pl">Zacisk uziemiający</name>
|
<name lang="pl">Zacisk uziemiający</name>
|
||||||
|
<name lang="cs">Svorka zemnící</name>
|
||||||
|
<name lang="hu">Sorkapocs földelő</name>
|
||||||
</names>
|
</names>
|
||||||
<informations/>
|
<informations/>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition orientation="dyyy" version="0.51" width="110" height="20" type="element" hotspot_x="55" link_type="simple" hotspot_y="13">
|
<definition version="0.51" width="110" height="20" type="element" hotspot_x="55" link_type="simple" hotspot_y="13">
|
||||||
<uuid uuid="{17db296d-b50e-47ea-9125-aa9c1837b523}"/>
|
<uuid uuid="{17db296d-b50e-47ea-9125-aa9c1837b523}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="fr">Interruption bornier</name>
|
<name lang="fr">Interruption bornier</name>
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
<name lang="en">Discontinuation terminal strip</name>
|
<name lang="en">Discontinuation terminal strip</name>
|
||||||
<name lang="es">Clema de descontinuación</name>
|
<name lang="es">Clema de descontinuación</name>
|
||||||
<name lang="it">Morsettiera d'interruzione</name>
|
<name lang="it">Morsettiera d'interruzione</name>
|
||||||
|
<name lang="cs">Přerušení svorkovnice</name>
|
||||||
|
<name lang="hu">Sorkapocstömb megszakítása</name>
|
||||||
</names>
|
</names>
|
||||||
<informations/>
|
<informations/>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition orientation="dyyy" version="0.51" width="50" height="110" type="element" hotspot_x="15" link_type="simple" hotspot_y="54">
|
<definition version="0.51" width="50" height="110" type="element" hotspot_x="15" link_type="simple" hotspot_y="54">
|
||||||
<uuid uuid="{387b403b-d81d-45ca-957d-e9014fe009a7}"/>
|
<uuid uuid="{387b403b-d81d-45ca-957d-e9014fe009a7}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="fr">Borne double-étage (continuité)</name>
|
<name lang="fr">Borne double-étage (continuité)</name>
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
<name lang="en">Terminal double-level (feed-through)</name>
|
<name lang="en">Terminal double-level (feed-through)</name>
|
||||||
<name lang="es">Clema de doble nivel (Introducción atravesada)</name>
|
<name lang="es">Clema de doble nivel (Introducción atravesada)</name>
|
||||||
<name lang="it">Morsettiera a doppio livello (interconnesso)</name>
|
<name lang="it">Morsettiera a doppio livello (interconnesso)</name>
|
||||||
|
<name lang="cs">Dvoupatrová svorkovnice</name>
|
||||||
|
<name lang="hu">Kétemeletes sorkapocs</name>
|
||||||
</names>
|
</names>
|
||||||
<informations/>
|
<informations/>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition height="10" hotspot_y="5" hotspot_x="5" version="0.5" orientation="dyyy" width="30" link_type="simple" type="element">
|
<definition height="10" hotspot_y="5" hotspot_x="5" version="0.5" width="30" link_type="simple" type="element">
|
||||||
<uuid uuid="{9a3ee0a0-5a0e-4f0c-93dd-396ddc3d7f11}"/>
|
<uuid uuid="{9a3ee0a0-5a0e-4f0c-93dd-396ddc3d7f11}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="de">Einlegebrücke</name>
|
<name lang="de">Einlegebrücke</name>
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
<name lang="en">Insertion bridge</name>
|
<name lang="en">Insertion bridge</name>
|
||||||
<name lang="es">Puente de inserción</name>
|
<name lang="es">Puente de inserción</name>
|
||||||
<name lang="it">Barra di connessione</name>
|
<name lang="it">Barra di connessione</name>
|
||||||
|
<name lang="cs">Propojka svorkovnic</name>
|
||||||
|
<name lang="hu">Sorkapocs áthidalás</name>
|
||||||
</names>
|
</names>
|
||||||
<informations/>
|
<informations/>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<definition orientation="dyyy" version="0.51" width="50" height="10" type="element" hotspot_x="5" link_type="simple" hotspot_y="5">
|
<definition version="0.51" width="50" height="10" type="element" hotspot_x="5" link_type="simple" hotspot_y="5">
|
||||||
<uuid uuid="{5075e5fb-c219-4643-89b8-8096d090ff3d}"/>
|
<uuid uuid="{5075e5fb-c219-4643-89b8-8096d090ff3d}"/>
|
||||||
<names>
|
<names>
|
||||||
<name lang="en">Insertion bridge (double width)</name>
|
<name lang="en">Insertion bridge (double width)</name>
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
<name lang="de">Einlegebrücke (doppelte Breite)</name>
|
<name lang="de">Einlegebrücke (doppelte Breite)</name>
|
||||||
<name lang="fr">Barette de pontage (largeur double)</name>
|
<name lang="fr">Barette de pontage (largeur double)</name>
|
||||||
<name lang="it">Barra di connessione (larghezza doppia)</name>
|
<name lang="it">Barra di connessione (larghezza doppia)</name>
|
||||||
|
<name lang="cs">Propojka svorkovnic (dvojitá šířka)</name>
|
||||||
|
<name lang="hu">Sorkapocs áthidalás dupla széles</name>
|
||||||
</names>
|
</names>
|
||||||
<informations/>
|
<informations/>
|
||||||
<description>
|
<description>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user