Compare commits
1909 Commits
XMLPropert
...
nightly
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8ed1713a7 | ||
|
|
ae3e01e564 | ||
|
|
a4bdade3db | ||
|
|
4bbc54f6e3 | ||
|
|
b1466ec649 | ||
|
|
5c3aeb598d | ||
|
|
baab669b25 | ||
|
|
5704d67d7d | ||
|
|
b0ad485c10 | ||
|
|
8ac216bd6b | ||
|
|
ae9380a9c9 | ||
|
|
0f07174734 | ||
|
|
e53a57bdac | ||
|
|
f46bafa706 | ||
|
|
ba856c2fff | ||
|
|
9c835ce362 | ||
|
|
e720af44db | ||
|
|
22455aa506 | ||
|
|
a2b6516eb3 | ||
|
|
bbf156c489 | ||
|
|
946aa37e78 | ||
|
|
b8c85f9e96 | ||
|
|
ee8114d42c | ||
|
|
0abfecd891 | ||
|
|
a434575857 | ||
|
|
fc7d8f5f6f | ||
|
|
1d451a6490 | ||
|
|
0118d94d4e | ||
|
|
b80875c583 | ||
|
|
b54327e649 | ||
|
|
e046b8289d | ||
|
|
941efe6405 | ||
|
|
07e11ea659 | ||
|
|
387f96b556 | ||
|
|
0832ef47a8 | ||
|
|
bc7f852f79 | ||
|
|
d1e10afd61 | ||
|
|
8aa384d305 | ||
|
|
b321460116 | ||
|
|
416ec501fe | ||
|
|
145810f33a | ||
|
|
4f70468a29 | ||
|
|
f60acad3b3 | ||
|
|
ee65142b65 | ||
|
|
03bb97b529 | ||
|
|
a4b90f3cc7 | ||
|
|
d57a219977 | ||
|
|
03afa9e318 | ||
|
|
37cec4afce | ||
|
|
12f04a7b08 | ||
|
|
ba77b3dabb | ||
|
|
2e6953bbd0 | ||
|
|
c4e05f817c | ||
|
|
eb8f859038 | ||
|
|
16650ed6af | ||
|
|
3b3171dc93 | ||
|
|
500c42c86b | ||
|
|
2f3e46e488 | ||
|
|
290ef97ec2 | ||
|
|
f0923e7560 | ||
|
|
b32de35afd | ||
|
|
8aad1c0cab | ||
|
|
d365e19619 | ||
|
|
27b977e9f3 | ||
|
|
54e19f4074 | ||
|
|
8af1fd708f | ||
|
|
a64e414d63 | ||
|
|
2ed8d76e2d | ||
|
|
679647f52a | ||
|
|
a82f6de23b | ||
|
|
6452e03cdc | ||
|
|
51725d9d8e | ||
|
|
a45a7d4e4d | ||
|
|
bc9173d726 | ||
|
|
19712d72ef | ||
|
|
f23ec620dc | ||
|
|
47d2107d99 | ||
|
|
0a4c3f4601 | ||
|
|
ab24b74c72 | ||
|
|
380d12e675 | ||
|
|
d0d3194afa | ||
|
|
b18f5f5e41 | ||
|
|
8a1b0575ab | ||
|
|
67ec648706 | ||
|
|
9b77b4d4fa | ||
|
|
225edec091 | ||
|
|
62dbaddab2 | ||
|
|
f5857bb1fd | ||
|
|
825eeb77e4 | ||
|
|
780cf8b054 | ||
|
|
605392cf9b | ||
|
|
3795ddb1f5 | ||
|
|
ecee2209e6 | ||
|
|
246dd0a42f | ||
|
|
89a4aaac28 | ||
|
|
79edc3fbb7 | ||
|
|
52f61ab500 | ||
|
|
1bbb374094 | ||
|
|
c220d84fcb | ||
|
|
4834d41432 | ||
|
|
378aa8899f | ||
|
|
0cd71cbe16 | ||
|
|
9344515d2a | ||
|
|
9149128f7a | ||
|
|
5296c1b478 | ||
|
|
b4c8af55d3 | ||
|
|
cb47094a1f | ||
|
|
3f1db24d6d | ||
|
|
1af0c1ca8b | ||
|
|
bea1fb4353 | ||
|
|
2f69716e3c | ||
|
|
277fa087bc | ||
|
|
9693df4252 | ||
|
|
6b80fbb08d | ||
|
|
7425c83231 | ||
|
|
815e959a2d | ||
|
|
97f113d333 | ||
|
|
de91ab0a4b | ||
|
|
84c755a0c8 | ||
|
|
e9e11635d8 | ||
|
|
2e684471a9 | ||
|
|
61889f4c17 | ||
|
|
c946df8588 | ||
|
|
33da828035 | ||
|
|
6515827f34 | ||
|
|
536315ebc0 | ||
|
|
baec0a4afb | ||
|
|
4b19a88f2d | ||
|
|
248b3a04d2 | ||
|
|
40f7889849 | ||
|
|
430ead5674 | ||
|
|
e52e42af45 | ||
|
|
b7b131f619 | ||
|
|
accc92ef90 | ||
|
|
89be949201 | ||
|
|
fe52babc34 | ||
|
|
f4ff6b1b60 | ||
|
|
23b5aa9f14 | ||
|
|
bd84f8749d | ||
|
|
d7c032f977 | ||
|
|
478f753b92 | ||
|
|
42b6678c00 | ||
|
|
c74d68c082 | ||
|
|
9482d11238 | ||
|
|
e62f7cf056 | ||
|
|
c4b35fc426 | ||
|
|
1209b175a3 | ||
|
|
4af52e79a0 | ||
|
|
efbfaa08d9 | ||
|
|
3f1a46f865 | ||
|
|
9a1f93c5fc | ||
|
|
5d36436df2 | ||
|
|
406fbe6e0c | ||
|
|
a3a5cd1e87 | ||
|
|
1b449686a8 | ||
|
|
d5eeed1aec | ||
|
|
7982989b59 | ||
|
|
6b6668a8bc | ||
|
|
03c1e4666f | ||
|
|
8fcc9b9b6b | ||
|
|
e9a053179e | ||
|
|
5bf11a3a02 | ||
|
|
c17a914896 | ||
|
|
0c62f291f0 | ||
|
|
534de377d3 | ||
|
|
f92992be79 | ||
|
|
4a05550731 | ||
|
|
bd5d8f3d55 | ||
|
|
d29cac51b4 | ||
|
|
4044d04cc5 | ||
|
|
62431aff57 | ||
|
|
130eede517 | ||
|
|
bd89d3a1b7 | ||
|
|
8307008daa | ||
|
|
a9b30ff71e | ||
|
|
87c2480ebc | ||
|
|
5e41ec415e | ||
|
|
fa6e3d31eb | ||
|
|
72bd4803e6 | ||
|
|
47d391c26b | ||
|
|
033c92257e | ||
|
|
2b18d93d43 | ||
|
|
36463542ab | ||
|
|
152b20899c | ||
|
|
765f0087fc | ||
|
|
42037f7f9a | ||
|
|
7df37ab9b5 | ||
|
|
f47143dd6f | ||
|
|
0d5373d640 | ||
|
|
506565489f | ||
|
|
8a2e0a585c | ||
|
|
40744ba41a | ||
|
|
94269afc76 | ||
|
|
73e673ef8a | ||
|
|
fb41b50e37 | ||
|
|
2ebc3a6054 | ||
|
|
bb74f822d7 | ||
|
|
70dbc9cbad | ||
|
|
bd5f4f4f96 | ||
|
|
179a9db0cb | ||
|
|
34ee4ebf49 | ||
|
|
da661b0d4f | ||
|
|
1625692ddd | ||
|
|
4fc2ce8d9e | ||
|
|
0663aa55e8 | ||
|
|
67185f173e | ||
|
|
2c5e5c6b78 | ||
|
|
689b101c55 | ||
|
|
3aa760e3cd | ||
|
|
82f3167d40 | ||
|
|
5b2c861d02 | ||
|
|
ca8f4650a3 | ||
|
|
e7f55ee843 | ||
|
|
cdc747548d | ||
|
|
6038db5c40 | ||
|
|
a9632600b6 | ||
|
|
4e695de914 | ||
|
|
3803834d6d | ||
|
|
78a26f9175 | ||
|
|
a990daaf9e | ||
|
|
3b7a8a17e4 | ||
|
|
9e78dc56a8 | ||
|
|
3cf9095899 | ||
|
|
3a1398d752 | ||
|
|
67a7d277f4 | ||
|
|
e26f7fdaaa | ||
|
|
f74fed9f3f | ||
|
|
410c9293d1 | ||
|
|
07c34d7358 | ||
|
|
6d7d1ea23b | ||
|
|
58339f9016 | ||
|
|
f83a5b3a79 | ||
|
|
7e5d41b474 | ||
|
|
f0ec416a91 | ||
|
|
f6ba47277d | ||
|
|
093ec563e1 | ||
|
|
1a1e8a2299 | ||
|
|
75c1485ead | ||
|
|
4ebaf073d6 | ||
|
|
8a96097d41 | ||
|
|
43826361a4 | ||
|
|
67b80364e1 | ||
|
|
ea9d57cdde | ||
|
|
bad60834cc | ||
|
|
6119d49d15 | ||
|
|
acf0eb8f6a | ||
|
|
3cadedaf9e | ||
|
|
84ac394d3b | ||
|
|
27b21b38aa | ||
|
|
12b33e15a3 | ||
|
|
2ec1aecd53 | ||
|
|
73ce3ae9fe | ||
|
|
6375136a50 | ||
|
|
ee49086d03 | ||
|
|
c31cab34e4 | ||
|
|
a61d70e40e | ||
|
|
f43ce82052 | ||
|
|
707005879b | ||
|
|
29c362fe4c | ||
|
|
dad637689d | ||
|
|
0f179a5d49 | ||
|
|
3a0546e638 | ||
|
|
c9ea538999 | ||
|
|
96d84bf852 | ||
|
|
0a6efa466e | ||
|
|
f20ea041b6 | ||
|
|
fb01e51bbb | ||
|
|
5f252fbd00 | ||
|
|
22f8034ddb | ||
|
|
60b013786d | ||
|
|
55b2ab797d | ||
|
|
74b55f3bf5 | ||
|
|
4726db5f15 | ||
|
|
704aa6cbdb | ||
|
|
1607c7f5dc | ||
|
|
07c6ac6c9f | ||
|
|
a121fbe530 | ||
|
|
a2ae8255ac | ||
|
|
acb4b21070 | ||
|
|
1e7660fcab | ||
|
|
d711d8fb4a | ||
|
|
3a6b4807db | ||
|
|
d699faf501 | ||
|
|
95e401a266 | ||
|
|
6586fa3f91 | ||
|
|
7244e4a59c | ||
|
|
1868f91ff8 | ||
|
|
0b1491b59a | ||
|
|
7495901d07 | ||
|
|
33445de6c0 | ||
|
|
5ba984be56 | ||
|
|
ab03530a14 | ||
|
|
1b671990ee | ||
|
|
ce18bd1666 | ||
|
|
e371fe9845 | ||
|
|
ad29893842 | ||
|
|
3a8e6b16f5 | ||
|
|
6dbc1cd392 | ||
|
|
c7ed744481 | ||
|
|
cf39ae2417 | ||
|
|
b82a05881a | ||
|
|
8082274e41 | ||
|
|
f16d48ec67 | ||
|
|
c259832de4 | ||
|
|
80c0831361 | ||
|
|
4e4a26a410 | ||
|
|
f2674a0a46 | ||
|
|
64ace66f8b | ||
|
|
d007035237 | ||
|
|
c1559d2a99 | ||
|
|
936a27500c | ||
|
|
31aaf50572 | ||
|
|
81ec28d1cf | ||
|
|
3bbb6385b8 | ||
|
|
757df90951 | ||
|
|
eeb453f120 | ||
|
|
6afd9fe48d | ||
|
|
6eff69bc6b | ||
|
|
2c1b840f9c | ||
|
|
c9304892e0 | ||
|
|
2d89d70682 | ||
|
|
7747223dfa | ||
|
|
ae5e188866 | ||
|
|
59f547b4a2 | ||
|
|
0084dcf289 | ||
|
|
0804d3524a | ||
|
|
2b0dd1b188 | ||
|
|
3c2c889922 | ||
|
|
27cff81ee7 | ||
|
|
40a7995993 | ||
|
|
45afd9af0e | ||
|
|
20b7e1763d | ||
|
|
9044d532ac | ||
|
|
50efc318e0 | ||
|
|
e4d2dbd2a6 | ||
|
|
ddf40854dc | ||
|
|
ef0fa6e7ac | ||
|
|
237c21bad8 | ||
|
|
260ce2a8bc | ||
|
|
6199367166 | ||
|
|
d073e810b8 | ||
|
|
a1572be8fa | ||
|
|
6c52d95201 | ||
|
|
d3463def98 | ||
|
|
4009e6aaab | ||
|
|
6ff518ec3b | ||
|
|
513927424f | ||
|
|
864a3f166f | ||
|
|
6111d8ca2c | ||
|
|
e0b26592c7 | ||
|
|
a17ceaba85 | ||
|
|
e987d8c271 | ||
|
|
74e6657ca5 | ||
|
|
e1d15f3b77 | ||
|
|
81f51b3d58 | ||
|
|
a36de7de74 | ||
|
|
15ae8b0058 | ||
|
|
e66061fdca | ||
|
|
e2e84a56f7 | ||
|
|
565374f174 | ||
|
|
7bdca47d8e | ||
|
|
f0c954329f | ||
|
|
e99ad6b424 | ||
|
|
74460a6645 | ||
|
|
231a1c919a | ||
|
|
19c9d614e8 | ||
|
|
43386aa14f | ||
|
|
181680e6f1 | ||
|
|
667d25899f | ||
|
|
c9b9165911 | ||
|
|
78ee65a21b | ||
|
|
68a2ddde18 | ||
|
|
8c3343795a | ||
|
|
2097b24d37 | ||
|
|
5351746dc7 | ||
|
|
1af3c5b852 | ||
|
|
c2a2e5f5eb | ||
|
|
dc836248f0 | ||
|
|
a3bf2e2800 | ||
|
|
83f960a983 | ||
|
|
c223121f00 | ||
|
|
0f647a5c38 | ||
|
|
67112bf8e5 | ||
|
|
1b60f7c52a | ||
|
|
9a96eb914d | ||
|
|
bf8723015a | ||
|
|
82d7bbda68 | ||
|
|
0df3ecb5f7 | ||
|
|
1e27cac8c5 | ||
|
|
16dea9f3de | ||
|
|
20e852cbaf | ||
|
|
51225d5f59 | ||
|
|
3fc5469aee | ||
|
|
6fdc243552 | ||
|
|
da109b1522 | ||
|
|
2aeae1fe46 | ||
|
|
e98ce4de1d | ||
|
|
da0951d5a0 | ||
|
|
0be9e2beae | ||
|
|
52946f9e3a | ||
|
|
007ce79cee | ||
|
|
5aee30edee | ||
|
|
b9a8dc0918 | ||
|
|
bd3b39cea3 | ||
|
|
fc286cca22 | ||
|
|
4d5af028be | ||
|
|
9afc97108b | ||
|
|
a4a3733670 | ||
|
|
3471140b64 | ||
|
|
43f0107eb1 | ||
|
|
dba7caed30 | ||
|
|
adcf77e34a | ||
|
|
59236170b2 | ||
|
|
3d82aff4e7 | ||
|
|
516eb9eb45 | ||
|
|
0b80d1b5b9 | ||
|
|
073e4080fd | ||
|
|
b512aee2bf | ||
|
|
38f5547228 | ||
|
|
317c90c769 | ||
|
|
f308ea6b93 | ||
|
|
4808b04a31 | ||
|
|
3a43fbfa61 | ||
|
|
29aee8e80c | ||
|
|
717b257fa0 | ||
|
|
13f432571d | ||
|
|
610f4d6dfa | ||
|
|
a20d02f5f0 | ||
|
|
1fc33aa1ba | ||
|
|
706eba6612 | ||
|
|
f675ce3452 | ||
|
|
3ae47a714d | ||
|
|
58aae63616 | ||
|
|
b8e4fca09f | ||
|
|
075289797a | ||
|
|
f26733f34e | ||
|
|
ba9fea3fd1 | ||
|
|
bbbf77597a | ||
|
|
1cf156c47a | ||
|
|
924d1c1b05 | ||
|
|
33570ffceb | ||
|
|
40b7aa999f | ||
|
|
c9ba7bee6c | ||
|
|
7466793e71 | ||
|
|
408481a023 | ||
|
|
b0324bd6e8 | ||
|
|
812ac83ab6 | ||
|
|
d1c6fb7e3c | ||
|
|
9dad6963cb | ||
|
|
28df44d1ba | ||
|
|
25a81f24fa | ||
|
|
7a39e69a32 | ||
|
|
af33719995 | ||
|
|
4c12b3c679 | ||
|
|
e1dc978f97 | ||
|
|
1b2d8061a5 | ||
|
|
b0f0a56a88 | ||
|
|
d6d38141c9 | ||
|
|
331cecc05c | ||
|
|
de0fa1fa20 | ||
|
|
1698e062ab | ||
|
|
3051c225bb | ||
|
|
ffef9aaea5 | ||
|
|
9fc270c8a8 | ||
|
|
2c8797415c | ||
|
|
8162da1515 | ||
|
|
3cadc9275e | ||
|
|
a459029f0d | ||
|
|
9dda9f890f | ||
|
|
9be2ed604e | ||
|
|
a450680f6e | ||
|
|
22e6188bb6 | ||
|
|
9d83d3180a | ||
|
|
09c87cf811 | ||
|
|
bdee8e3e36 | ||
|
|
30a6221e45 | ||
|
|
9f8287206b | ||
|
|
bb770ae4f1 | ||
|
|
d971da5ac7 | ||
|
|
e9d2c13630 | ||
|
|
c01549f315 | ||
|
|
39e287f60d | ||
|
|
11e3f91029 | ||
|
|
1ac324242a | ||
|
|
940ae0c34a | ||
|
|
7a19756f13 | ||
|
|
3b24bd25c7 | ||
|
|
a73452bf6d | ||
|
|
24165ee8ee | ||
|
|
4c7cc9a110 | ||
|
|
79f894a327 | ||
|
|
f26e936ea9 | ||
|
|
1ddfe1d433 | ||
|
|
194edbd799 | ||
|
|
162c402102 | ||
|
|
c6427cbfc1 | ||
|
|
c4b6939ed6 | ||
|
|
2436daa16f | ||
|
|
4050e8351e | ||
|
|
d6f119742d | ||
|
|
3e4f3def3e | ||
|
|
4aff7d1a1d | ||
|
|
d451bd4df5 | ||
|
|
2cc5de6f7c | ||
|
|
661530030a | ||
|
|
620aa665f2 | ||
|
|
8f23a3d94d | ||
|
|
c343df3fc9 | ||
|
|
d7ac2af4d6 | ||
|
|
ec7ba05ec1 | ||
|
|
600cba6a8f | ||
|
|
4221bb84fb | ||
|
|
b6d29fbbf0 | ||
|
|
635af67100 | ||
|
|
ba9cd71816 | ||
|
|
b19fbd2522 | ||
|
|
dc403e5e8f | ||
|
|
be96da650c | ||
|
|
cf9b07aeb5 | ||
|
|
6aa2c3c7be | ||
|
|
17788dc432 | ||
|
|
9bfde721bf | ||
|
|
9964eee202 | ||
|
|
03d31986b7 | ||
|
|
33ce130296 | ||
|
|
e21536d184 | ||
|
|
ffba440c6e | ||
|
|
ad997605ec | ||
|
|
e2eace06d3 | ||
|
|
ed8728c45a | ||
|
|
77bfe84a4c | ||
|
|
e053acb065 | ||
|
|
b5d57086bc | ||
|
|
b456bedaa3 | ||
|
|
db18095cfb | ||
|
|
3438ba9ab3 | ||
|
|
1078496bb1 | ||
|
|
711353bb58 | ||
|
|
dd7955e50e | ||
|
|
7a617e72bd | ||
|
|
e73aa3b84d | ||
|
|
8e0c3f4252 | ||
|
|
27474b0822 | ||
|
|
d6dcc85157 | ||
|
|
b2dc6ba738 | ||
|
|
31ed09f185 | ||
|
|
3992c60c45 | ||
|
|
fef351df8b | ||
|
|
fa322af060 | ||
|
|
34cc26a325 | ||
|
|
ba14c6112e | ||
|
|
cb8256bd48 | ||
|
|
3dd512b587 | ||
|
|
31c0267cd5 | ||
|
|
88b2955b00 | ||
|
|
46378ca2a7 | ||
|
|
c7481011e8 | ||
|
|
15d9708c46 | ||
|
|
3b32daf15d | ||
|
|
0a658d5d61 | ||
|
|
a140c5ad39 | ||
|
|
4894284520 | ||
|
|
efc8745bc7 | ||
|
|
406af16e94 | ||
|
|
e3e48d3966 | ||
|
|
0e646aed0b | ||
|
|
52d56c18a2 | ||
|
|
d3f132adc6 | ||
|
|
7b50f10749 | ||
|
|
64bb2308d8 | ||
|
|
dd3cee5d8e | ||
|
|
6dcb6ebcb7 | ||
|
|
a9f5e2945b | ||
|
|
732d317e81 | ||
|
|
2b77964881 | ||
|
|
5702ed3d04 | ||
|
|
a2c1c5515a | ||
|
|
4ca0bbf682 | ||
|
|
8b66709ea3 | ||
|
|
e6d995c190 | ||
|
|
c1706cb055 | ||
|
|
fe3ffd890b | ||
|
|
8b5a4cea0d | ||
|
|
ca48684b39 | ||
|
|
c4fd1efb4f | ||
|
|
fc0dcb6ab0 | ||
|
|
e02ad585a9 | ||
|
|
75cd943dbd | ||
|
|
e6d3121a32 | ||
|
|
429726f463 | ||
|
|
b9c9d0e31f | ||
|
|
7918cbb7ab | ||
|
|
1454a8d4e7 | ||
|
|
35018ba314 | ||
|
|
3bf4c852c9 | ||
|
|
a118c33f80 | ||
|
|
326387895a | ||
|
|
566e7f7004 | ||
|
|
625e673385 | ||
|
|
1863329ca0 | ||
|
|
e83424459c | ||
|
|
59253019ff | ||
|
|
c66b873631 | ||
|
|
b2a999cec5 | ||
|
|
f1cb63cf0c | ||
|
|
4138b8998c | ||
|
|
24929861ba | ||
|
|
fcd2f68f68 | ||
|
|
f0b0af9a76 | ||
|
|
6a7f24a2af | ||
|
|
59e06a4087 | ||
|
|
3738c79ec6 | ||
|
|
4871aae59d | ||
|
|
8649d21298 | ||
|
|
de41f29e6b | ||
|
|
f1a8c00028 | ||
|
|
e4f5e8c68a | ||
|
|
1649e8d28b | ||
|
|
5e3ca46133 | ||
|
|
a162f158ad | ||
|
|
6aebbfeaa7 | ||
|
|
5d725f6d55 | ||
|
|
85d10fc0e6 | ||
|
|
1baf9db799 | ||
|
|
32c0e04c56 | ||
|
|
57b5819f07 | ||
|
|
7c5e0135a6 | ||
|
|
7d8734e192 | ||
|
|
30184bdd06 | ||
|
|
1062d217f0 | ||
|
|
6cad599664 | ||
|
|
cbd309ec5a | ||
|
|
23c4ba2a3e | ||
|
|
dd03f0eece | ||
|
|
491b8ce64c | ||
|
|
2d8dd2b480 | ||
|
|
fda314d585 | ||
|
|
f9073ca5fb | ||
|
|
36da291be6 | ||
|
|
4da78939d0 | ||
|
|
a942f42927 | ||
|
|
e9e2ea5b0e | ||
|
|
701265e393 | ||
|
|
073763d9bf | ||
|
|
ca7dc28ecf | ||
|
|
a70cc75504 | ||
|
|
6cc297def1 | ||
|
|
1baf9125dc | ||
|
|
78bae2dc60 | ||
|
|
d0a10ef9af | ||
|
|
c6bc23addc | ||
|
|
9a7da28fc5 | ||
|
|
dd7f295f5c | ||
|
|
774b604b50 | ||
|
|
e36df6f7d2 | ||
|
|
9076d9da80 | ||
|
|
c7d6312997 | ||
|
|
5492cd3f71 | ||
|
|
9b4bbfbf0d | ||
|
|
b20456d0d6 | ||
|
|
69338962bc | ||
|
|
78005f812a | ||
|
|
3479b98242 | ||
|
|
f4f28b83bd | ||
|
|
4c8e7f4856 | ||
|
|
ba1123cf73 | ||
|
|
b3ac3c82af | ||
|
|
e9448be986 | ||
|
|
f72a2545bd | ||
|
|
206a48a15f | ||
|
|
f33ea64b99 | ||
|
|
0d44933432 | ||
|
|
fa68d545d0 | ||
|
|
171f2eab4e | ||
|
|
ce86e18664 | ||
|
|
17030aaa80 | ||
|
|
09b1c0905e | ||
|
|
b453832d46 | ||
|
|
109efa03d2 | ||
|
|
99a8b5f46d | ||
|
|
d8b7fc3642 | ||
|
|
5f7f72f292 | ||
|
|
7e6befdf0a | ||
|
|
4c52c8c9d0 | ||
|
|
4da6465318 | ||
|
|
4c7d42251c | ||
|
|
6dac8e2005 | ||
|
|
15b625021c | ||
|
|
f4c880dc9f | ||
|
|
f343395da0 | ||
|
|
6d8e9f51cd | ||
|
|
ef66350b30 | ||
|
|
f74616d2e4 | ||
|
|
8ce47848c2 | ||
|
|
d7b83140ab | ||
|
|
2263c798c7 | ||
|
|
cad7fa1ae7 | ||
|
|
3a02be3f0e | ||
|
|
e73cf633ce | ||
|
|
21944b6739 | ||
|
|
d54a8b9369 | ||
|
|
3f796fea4b | ||
|
|
73f7d44dcf | ||
|
|
c0390a4bd3 | ||
|
|
acb7a4cc4c | ||
|
|
28135a77db | ||
|
|
1b5df9733a | ||
|
|
c88d2b45cc | ||
|
|
c4cae24ba7 | ||
|
|
6f22d5d37a | ||
|
|
a7a072b977 | ||
|
|
90fa934976 | ||
|
|
4cfe658ff0 | ||
|
|
b55623bfc4 | ||
|
|
ec3952237f | ||
|
|
2043fc2700 | ||
|
|
4de379d884 | ||
|
|
2e379a3024 | ||
|
|
21d293a928 | ||
|
|
a8aa772321 | ||
|
|
cc20c218d8 | ||
|
|
a2beabd559 | ||
|
|
0109f3bc23 | ||
|
|
e4b6b2b180 | ||
|
|
06a6e5e5f4 | ||
|
|
5df77291fe | ||
|
|
8da2f980cd | ||
|
|
8aaa596ff2 | ||
|
|
3c8d612742 | ||
|
|
667e5eccf4 | ||
|
|
ff3b497da2 | ||
|
|
7fe4765bff | ||
|
|
c956e60ad0 | ||
|
|
f44abb12d7 | ||
|
|
bd3eacd1d6 | ||
|
|
3e0545f6b5 | ||
|
|
c0466c0d45 | ||
|
|
f62b0fc812 | ||
|
|
a3dc317246 | ||
|
|
f12b11bee3 | ||
|
|
a4495d50d1 | ||
|
|
e0b0caaf14 | ||
|
|
ae9e2eb678 | ||
|
|
9a2bee851c | ||
|
|
3d8ad98ef2 | ||
|
|
439463ab98 | ||
|
|
f7114fb0bb | ||
|
|
5190c0e929 | ||
|
|
e6aeaf6799 | ||
|
|
d35b1623a4 | ||
|
|
2471547f70 | ||
|
|
4ca76b9993 | ||
|
|
74d022328e | ||
|
|
72092300ed | ||
|
|
f519499a66 | ||
|
|
457aeb6883 | ||
|
|
92b1e6c728 | ||
|
|
3d6ab1b050 | ||
|
|
76798341b4 | ||
|
|
b6485353f1 | ||
|
|
ffb2d9c63c | ||
|
|
55f7a2cb85 | ||
|
|
2ae3d3d5ae | ||
|
|
4d50136146 | ||
|
|
8b64343c91 | ||
|
|
5e763bc8d2 | ||
|
|
7447a7fd44 | ||
|
|
eeb6107ec7 | ||
|
|
4d60836851 | ||
|
|
9f2dbfa39a | ||
|
|
a9f6583189 | ||
|
|
9f8abed4b8 | ||
|
|
29ebc6000b | ||
|
|
663068e688 | ||
|
|
b7fc8834a2 | ||
|
|
902a976cc3 | ||
|
|
489bfe1a7f | ||
|
|
9fceb6f000 | ||
|
|
1a4fcbd274 | ||
|
|
2c67b831bb | ||
|
|
ae31b8270c | ||
|
|
75d2e7c148 | ||
|
|
fbcab7c770 | ||
|
|
083b1d8500 | ||
|
|
0a4c6e7d00 | ||
|
|
a8df33d1fd | ||
|
|
8579e117ee | ||
|
|
471f87690c | ||
|
|
27dcd5ef00 | ||
|
|
75746be0d8 | ||
|
|
8955ca2c82 | ||
|
|
107c59d680 | ||
|
|
73c0848fcd | ||
|
|
4ce67bb532 | ||
|
|
b29c8b8a1d | ||
|
|
da82fff011 | ||
|
|
6224c1160e | ||
|
|
5955ff3d83 | ||
|
|
5856d3e22a | ||
|
|
1eca1f7d74 | ||
|
|
809575e2b4 | ||
|
|
c43a40a455 | ||
|
|
9c68414165 | ||
|
|
be94f39087 | ||
|
|
eb2e45a66d | ||
|
|
9840c18ed1 | ||
|
|
b5a6c9d189 | ||
|
|
3febbcfd8c | ||
|
|
8f3d031383 | ||
|
|
251f5aee5c | ||
|
|
92e2f18d3c | ||
|
|
9d2088c5e5 | ||
|
|
c8ad8f2ba4 | ||
|
|
7a222dc207 | ||
|
|
233897550b | ||
|
|
60833cb0d6 | ||
|
|
6803ac42be | ||
|
|
13b9ae55b9 | ||
|
|
71db1a1db5 | ||
|
|
905a2aa570 | ||
|
|
976877a59e | ||
|
|
4d5a235887 | ||
|
|
8bc4053d35 | ||
|
|
e51ddbaa42 | ||
|
|
0cfde21758 | ||
|
|
52ced12ab1 | ||
|
|
dbe8f503dd | ||
|
|
1f8c34491e | ||
|
|
0780f6627f | ||
|
|
f161fecb02 | ||
|
|
05b8392812 | ||
|
|
6be82ed4e9 | ||
|
|
bcbfdf10ae | ||
|
|
7543cc4122 | ||
|
|
e7ad6c4f3d | ||
|
|
52a314b116 | ||
|
|
0f1b1c9b5e | ||
|
|
103ad993c0 | ||
|
|
258bfd7957 | ||
|
|
b422d9c6c5 | ||
|
|
d508ecb26b | ||
|
|
fbe07c129f | ||
|
|
0a7964209a | ||
|
|
12b7c7c47c | ||
|
|
6811388fc2 | ||
|
|
a53b1b0462 | ||
|
|
0b5237e90d | ||
|
|
c6bb1ae4ad | ||
|
|
7829669b07 | ||
|
|
02d31874ae | ||
|
|
525ce6124d | ||
|
|
f2ef554290 | ||
|
|
92604d5d65 | ||
|
|
e2f5b007a9 | ||
|
|
16afd275d7 | ||
|
|
1d159f8772 | ||
|
|
f25e72c069 | ||
|
|
c0f29bbfe5 | ||
|
|
660707bf28 | ||
|
|
6423dfe3cc | ||
|
|
1f75953648 | ||
|
|
920274acc1 | ||
|
|
9ba24337f9 | ||
|
|
55297efab9 | ||
|
|
fe6814c65f | ||
|
|
5289fc7527 | ||
|
|
341bfa5d10 | ||
|
|
8433fbeec2 | ||
|
|
219d17840b | ||
|
|
2154461b1d | ||
|
|
e8c876c88e | ||
|
|
e6abff81bb | ||
|
|
6ec41f7ceb | ||
|
|
4b28b1b38a | ||
|
|
18301b6ce4 | ||
|
|
6920b2febd | ||
|
|
0e233d6783 | ||
|
|
888c25ec02 | ||
|
|
b9cd8288fc | ||
|
|
8ca1e0487e | ||
|
|
171ee5d2ae | ||
|
|
cafa58df73 | ||
|
|
137d02ae43 | ||
|
|
856172db91 | ||
|
|
02ad9349a7 | ||
|
|
5240b30f81 | ||
|
|
668a9848e8 | ||
|
|
eb4dc48563 | ||
|
|
8241041c1a | ||
|
|
c5ffff76ee | ||
|
|
411d8d73f7 | ||
|
|
7a3989e065 | ||
|
|
08e8409ce0 | ||
|
|
753abff183 | ||
|
|
48f9ef7632 | ||
|
|
4e6ea06d0d | ||
|
|
1748280b80 | ||
|
|
2a1d3ae1f1 | ||
|
|
3cd124f348 | ||
|
|
1cc6a42fd8 | ||
|
|
de89997c4e | ||
|
|
c989437982 | ||
|
|
247b98da41 | ||
|
|
31b648c2a0 | ||
|
|
a7590558b9 | ||
|
|
5cbb444c0a | ||
|
|
6919369a92 | ||
|
|
6d178b324c | ||
|
|
ea08c588db | ||
|
|
752fe032e7 | ||
|
|
9e04432597 | ||
|
|
a67add6c0c | ||
|
|
a6be1c8004 | ||
|
|
3f550cbbb6 | ||
|
|
9d88abeac2 | ||
|
|
c60f04da2f | ||
|
|
1d1776441d | ||
|
|
fec9def35b | ||
|
|
45b8cb34f3 | ||
|
|
0edc3a083f | ||
|
|
b0324c6654 | ||
|
|
55263b5b8d | ||
|
|
03094e1328 | ||
|
|
32e9ee9f36 | ||
|
|
047462f226 | ||
|
|
ec3ac92b5e | ||
|
|
78644a3524 | ||
|
|
470e4a059b | ||
|
|
c53f5fbc66 | ||
|
|
8857b1c731 | ||
|
|
25e93bde56 | ||
|
|
6e60842d69 | ||
|
|
3d3ebc99fd | ||
|
|
ec5cda10db | ||
|
|
8298f56b7e | ||
|
|
08b0bde0d7 | ||
|
|
7023b7033f | ||
|
|
092b18cefd | ||
|
|
45e3e92022 | ||
|
|
bfa349406d | ||
|
|
921f9109f8 | ||
|
|
7db9430b3c | ||
|
|
ede9e7f063 | ||
|
|
0f06f90516 | ||
|
|
e18c7117c5 | ||
|
|
845bd38d88 | ||
|
|
c287182d4b | ||
|
|
ae493f16c6 | ||
|
|
880bd8f7bd | ||
|
|
15282292c9 | ||
|
|
9a80760c71 | ||
|
|
a833da45b5 | ||
|
|
14d7ceca1a | ||
|
|
c03a079b89 | ||
|
|
4870b070f6 | ||
|
|
1671b4ca58 | ||
|
|
d45b84d242 | ||
|
|
be43afaf78 | ||
|
|
77920280c7 | ||
|
|
a0970b37b9 | ||
|
|
ad4e263198 | ||
|
|
3f27b0d007 | ||
|
|
6bbf9d30b2 | ||
|
|
86487b392b | ||
|
|
cfc5bbc6bb | ||
|
|
53eaa2a81d | ||
|
|
9f1164a174 | ||
|
|
fece536b55 | ||
|
|
51a4cd3982 | ||
|
|
9f7754c3bc | ||
|
|
28878ed53c | ||
|
|
43cd9f98cb | ||
|
|
289175b775 | ||
|
|
45ec061cf1 | ||
|
|
1be93fa581 | ||
|
|
812a262b63 | ||
|
|
038d2d7033 | ||
|
|
19d867f6a4 | ||
|
|
2180805637 | ||
|
|
d3223c8ca4 | ||
|
|
b1f6b1823a | ||
|
|
1e2bdc203b | ||
|
|
f75f6d3f3f | ||
|
|
f07e4319d3 | ||
|
|
d5f0a7932a | ||
|
|
4da7f6cd13 | ||
|
|
c6739b5bec | ||
|
|
cc7e185d59 | ||
|
|
60ceab8a32 | ||
|
|
539e0a7a49 | ||
|
|
9afef79629 | ||
|
|
62fcdec958 | ||
|
|
2ace2ca104 | ||
|
|
b0c3c90f3c | ||
|
|
8c35559480 | ||
|
|
66614072a6 | ||
|
|
bd4c7cf2ff | ||
|
|
4a568c4e89 | ||
|
|
caf5dc5dd4 | ||
|
|
eeadbde8d2 | ||
|
|
85892b1c54 | ||
|
|
f54bea713e | ||
|
|
949db14699 | ||
|
|
0753bac62f | ||
|
|
808598f759 | ||
|
|
7377cf394c | ||
|
|
555c243905 | ||
|
|
7b6f357870 | ||
|
|
b9f28c1567 | ||
|
|
6a4b250213 | ||
|
|
4caf5e0211 | ||
|
|
8242e4cfd7 | ||
|
|
a1f9d05f1c | ||
|
|
2032ba76ed | ||
|
|
1994235bc5 | ||
|
|
a76e5446aa | ||
|
|
f41b5a4ed4 | ||
|
|
1f99a40f1b | ||
|
|
d23a5bbdc7 | ||
|
|
81640015e5 | ||
|
|
1eed13c617 | ||
|
|
6869d20813 | ||
|
|
c17492183f | ||
|
|
e3d1467352 | ||
|
|
b626130071 | ||
|
|
7f4bad712e | ||
|
|
300440454e | ||
|
|
05416a5fdc | ||
|
|
d6bcde5f8d | ||
|
|
e1cb55f218 | ||
|
|
a18cd2461f | ||
|
|
aca3b8ad1e | ||
|
|
937afea351 | ||
|
|
3341d65a89 | ||
|
|
c397bb6c1d | ||
|
|
2f72c60f64 | ||
|
|
9e1ef8c42f | ||
|
|
7fede2277f | ||
|
|
5a057b1c20 | ||
|
|
57929e6e38 | ||
|
|
ae8c20bb04 | ||
|
|
ad97559b7c | ||
|
|
e3cc89b546 | ||
|
|
0f215c2902 | ||
|
|
0ae0ce04cd | ||
|
|
850cc5d0f2 | ||
|
|
914ae348c6 | ||
|
|
bb47a1852e | ||
|
|
28329c3f1b | ||
|
|
21de926367 | ||
|
|
71297a0e45 | ||
|
|
0e0b680131 | ||
|
|
554dc388a6 | ||
|
|
33c22c72f8 | ||
|
|
d4658e64b1 | ||
|
|
9633c32c2c | ||
|
|
6f52be4145 | ||
|
|
e26efb6c3a | ||
|
|
04f2094466 | ||
|
|
346900ecbd | ||
|
|
d80669c253 | ||
|
|
922f96d79c | ||
|
|
0d90defcfe | ||
|
|
ea1ede9cb3 | ||
|
|
ffc2a7a7d7 | ||
|
|
3e75bedef0 | ||
|
|
05bd6b43f2 | ||
|
|
718a6a6872 | ||
|
|
42746aa710 | ||
|
|
662ec3496b | ||
|
|
cec479aefb | ||
|
|
43821bea0f | ||
|
|
ff80453f2c | ||
|
|
8775d1e1bd | ||
|
|
c6f45c5862 | ||
|
|
d7e1813ff3 | ||
|
|
d6e8a1c133 | ||
|
|
eee1c7fff7 | ||
|
|
af5d5e0aa3 | ||
|
|
e9931511de | ||
|
|
acf1e713fc | ||
|
|
21524ee528 | ||
|
|
f0919d5fa6 | ||
|
|
695e4d95aa | ||
|
|
02769fe881 | ||
|
|
e57ba72d7c | ||
|
|
1b3599e673 | ||
|
|
d0d6b299e4 | ||
|
|
56b7458951 | ||
|
|
74a187e659 | ||
|
|
8b62318588 | ||
|
|
31466a65ba | ||
|
|
a7160ba9b7 | ||
|
|
cacbce6cec | ||
|
|
6fd5209364 | ||
|
|
57695bbbea | ||
|
|
5a497cd6b5 | ||
|
|
cae7cbdbd8 | ||
|
|
b65ff83805 | ||
|
|
c1f2b345e4 | ||
|
|
f9600f5dbb | ||
|
|
6e81451b46 | ||
|
|
2a7848e1ca | ||
|
|
c22abdd2f8 | ||
|
|
9e2d4abd01 | ||
|
|
acd151c9ca | ||
|
|
ab724377c0 | ||
|
|
d9a0b03e23 | ||
|
|
4c5d27e9af | ||
|
|
8af850df44 | ||
|
|
8a1f509b62 | ||
|
|
cf479bc113 | ||
|
|
08e206deeb | ||
|
|
ba1e8381f2 | ||
|
|
d082c9c9a6 | ||
|
|
84631b238c | ||
|
|
aa50224b00 | ||
|
|
d44486f468 | ||
|
|
2a307a74da | ||
|
|
1a2fea84ff | ||
|
|
f603b229db | ||
|
|
fa753449ad | ||
|
|
fe19b270f9 | ||
|
|
5c96c6d773 | ||
|
|
637d0bf6de | ||
|
|
d917c697b0 | ||
|
|
1be21782fd | ||
|
|
2e15372aab | ||
|
|
5c6b9f1829 | ||
|
|
9c55378f49 | ||
|
|
e367436358 | ||
|
|
c9ebdace04 | ||
|
|
3e6e38e566 | ||
|
|
c83d4e5aea | ||
|
|
0e9d09c62e | ||
|
|
fe66caf5ac | ||
|
|
c58d61594b | ||
|
|
3cd3535c18 | ||
|
|
97ecd26749 | ||
|
|
2e70d2e599 | ||
|
|
3dd0986c4f | ||
|
|
899caeabe9 | ||
|
|
a2b73ea2bc | ||
|
|
bf32219154 | ||
|
|
6a669f1399 | ||
|
|
4ab1ed7fc9 | ||
|
|
89d03e5503 | ||
|
|
9a6e1d2a61 | ||
|
|
fad6983cf1 | ||
|
|
daeec311b2 | ||
|
|
db8c76c184 | ||
|
|
2ec7e6aa45 | ||
|
|
021aea1d8b | ||
|
|
1f4dfdba3f | ||
|
|
f0694f0daf | ||
|
|
baf412614c | ||
|
|
e1865fec62 | ||
|
|
1e255af3be | ||
|
|
1c99cb5c2d | ||
|
|
4ca21a3bff | ||
|
|
189d92f2a9 | ||
|
|
34a7e0f3fe | ||
|
|
17290ae3b3 | ||
|
|
8b65d240db | ||
|
|
bce6a43427 | ||
|
|
1c52cd71a9 | ||
|
|
898edb6c12 | ||
|
|
de3fa988b1 | ||
|
|
b42aec7bdf | ||
|
|
ea46a92f3f | ||
|
|
6197d0215a | ||
|
|
6fd342e265 | ||
|
|
395d968ab5 | ||
|
|
e41b7f7d6c | ||
|
|
fabf0109ff | ||
|
|
cabfdc0a54 | ||
|
|
6f4122f65c | ||
|
|
ce21a812c0 | ||
|
|
5a51f6bace | ||
|
|
a38d97896d | ||
|
|
c4b0c1435c | ||
|
|
a4445c411d | ||
|
|
e92bd36f9b | ||
|
|
61ff8884e0 | ||
|
|
b8af2e9d1d | ||
|
|
8084fa8f29 | ||
|
|
1066e55262 | ||
|
|
edfb23be23 | ||
|
|
516a1a7826 | ||
|
|
be1d87c5d4 | ||
|
|
b48ba939de | ||
|
|
b1ad16d482 | ||
|
|
ceb54fbc6a | ||
|
|
e42bcb5ec9 | ||
|
|
9cbc3a2265 | ||
|
|
e93990a6e4 | ||
|
|
bb1a0767a3 | ||
|
|
0b7afe4781 | ||
|
|
9a3de1f780 | ||
|
|
0ff099fb52 | ||
|
|
05a2e4b37b | ||
|
|
830a70ac94 | ||
|
|
e63a8c8482 | ||
|
|
855162bb03 | ||
|
|
d2c15cf57b | ||
|
|
02ce65b3a9 | ||
|
|
0bf1f89c13 | ||
|
|
74c3ab1b82 | ||
|
|
062ae6e9eb | ||
|
|
dcc5a4dd0b | ||
|
|
ba638f52e5 | ||
|
|
ffd904749e | ||
|
|
c037d3ea0a | ||
|
|
087c8980f0 | ||
|
|
70f50ff362 | ||
|
|
904e805935 | ||
|
|
04d478882e | ||
|
|
35cd790c8f | ||
|
|
1a26133a78 | ||
|
|
a028b774bf | ||
|
|
72b7bc210f | ||
|
|
5fe2efca1a | ||
|
|
3ce09775ac | ||
|
|
3a53c2d53b | ||
|
|
7ba27ec9d9 | ||
|
|
d74dcdea6c | ||
|
|
9cb86a7e54 | ||
|
|
826991e6d6 | ||
|
|
53157afd12 | ||
|
|
a165a3cb28 | ||
|
|
1d20018a26 | ||
|
|
c02238cab8 | ||
|
|
35a40f1aba | ||
|
|
6e55a630b4 | ||
|
|
9a17c8f72c | ||
|
|
04c17ac5ac | ||
|
|
686bd8dff1 | ||
|
|
bd635b8e43 | ||
|
|
0bd0476cb1 | ||
|
|
d562ca8a39 | ||
|
|
a31bd6eb0d | ||
|
|
d114b097bf | ||
|
|
993eb58d46 | ||
|
|
7aa048740b | ||
|
|
306f4c7b54 | ||
|
|
4334c8ec8c | ||
|
|
7aabdd1781 | ||
|
|
bb48c4607a | ||
|
|
0600b85e8a | ||
|
|
688d9fe4c1 | ||
|
|
683095173e | ||
|
|
0d70ed53a9 | ||
|
|
7d33b48b3a | ||
|
|
d7e2ef283a | ||
|
|
782eaff4d2 | ||
|
|
9bd2ea22f3 | ||
|
|
ee4ce5db4e | ||
|
|
b90d06aa5c | ||
|
|
ba47a11282 | ||
|
|
4041073c96 | ||
|
|
8830204c0c | ||
|
|
d932f8ea01 | ||
|
|
8cfa852077 | ||
|
|
1a75eb19d0 | ||
|
|
ae9faa2192 | ||
|
|
e087270b6d | ||
|
|
b8263b03bc | ||
|
|
778837a770 | ||
|
|
09694ddec9 | ||
|
|
1572fafabe | ||
|
|
5709f469fc | ||
|
|
2ea9f8a2c6 | ||
|
|
a2e5989f3b | ||
|
|
e556abbab3 | ||
|
|
337dd7c13b | ||
|
|
34a3325ba9 | ||
|
|
02b385e0b7 | ||
|
|
e2454faa36 | ||
|
|
57e80e7b5e | ||
|
|
6505330b5f | ||
|
|
56685d0f30 | ||
|
|
ee7a752a52 | ||
|
|
7084f5bcf0 | ||
|
|
cd914c8726 | ||
|
|
beee4a06c8 | ||
|
|
98960f5b2b | ||
|
|
2bdecd3bd2 | ||
|
|
c22f3c84bb | ||
|
|
959dee7889 | ||
|
|
dd82a705d6 | ||
|
|
c744356b0f | ||
|
|
1073ebeebc | ||
|
|
b94ec0938b | ||
|
|
eed1223c1d | ||
|
|
291e163ee2 | ||
|
|
6e68e6047a | ||
|
|
ce8bd7fae3 | ||
|
|
94f66553ac | ||
|
|
c7579db674 | ||
|
|
478c7771b7 | ||
|
|
b46bf67c58 | ||
|
|
8c09399804 | ||
|
|
5055e93114 | ||
|
|
c70eb65259 | ||
|
|
ebeeb04aa4 | ||
|
|
f0413ce9a5 | ||
|
|
21bb3f8426 | ||
|
|
acf7478c8b | ||
|
|
f08811aca0 | ||
|
|
ea26f0b04e | ||
|
|
9485e3360b | ||
|
|
3e5713a512 | ||
|
|
58a3e72abe | ||
|
|
2252feca16 | ||
|
|
985988ee53 | ||
|
|
1cc162867f | ||
|
|
91ac46df83 | ||
|
|
f01b15d00a | ||
|
|
3fdba11c73 | ||
|
|
7afa1b8a59 | ||
|
|
6f197c2bb7 | ||
|
|
5b788c177b | ||
|
|
204b53cd00 | ||
|
|
a646359d51 | ||
|
|
91f034272c | ||
|
|
aefae7b73b | ||
|
|
107d7ff806 | ||
|
|
8b1f2fb0d9 | ||
|
|
7c6fca2aac | ||
|
|
c6e3e385ff | ||
|
|
089f260d9b | ||
|
|
09e345ee4a | ||
|
|
828424cae8 | ||
|
|
dca643f7aa | ||
|
|
cc327cb761 | ||
|
|
c03f2b605f | ||
|
|
7ce23598e4 | ||
|
|
3097a59c68 | ||
|
|
53178cf17a | ||
|
|
6d02cd1779 | ||
|
|
1839e988f6 | ||
|
|
543c706e0c | ||
|
|
5af8665e24 | ||
|
|
86595f4114 | ||
|
|
f8cc42e3a7 | ||
|
|
085f56d192 | ||
|
|
b580c2bb73 | ||
|
|
c6e168bb20 | ||
|
|
a2a0c166d9 | ||
|
|
96d6e21e2f | ||
|
|
4093d1fa27 | ||
|
|
de80d10f5e | ||
|
|
1699ad9dd8 | ||
|
|
e9a5fded5c | ||
|
|
a8d42b0f9a | ||
|
|
b69c7b1027 | ||
|
|
7b0a581008 | ||
|
|
4f1a6d55e5 | ||
|
|
1048cef845 | ||
|
|
dccbf92964 | ||
|
|
626bf4ce9c | ||
|
|
1f22a5a0a8 | ||
|
|
ce4729e1c0 | ||
|
|
d99b035aa6 | ||
|
|
ad77482235 | ||
|
|
b02ed7fe51 | ||
|
|
58efc14633 | ||
|
|
b03deb8e3e | ||
|
|
580bb07685 | ||
|
|
818e5ef484 | ||
|
|
bd6920e049 | ||
|
|
377f8b1521 | ||
|
|
67dbc798aa | ||
|
|
6d17f3d0ad | ||
|
|
5fc5a33543 | ||
|
|
337a2a45b4 | ||
|
|
8cb2fcc09c | ||
|
|
8547940ab2 | ||
|
|
f52ed8cf51 | ||
|
|
ccfb46b354 | ||
|
|
c640d96bca | ||
|
|
37e74b397e | ||
|
|
9135099dbf | ||
|
|
76d68f5025 | ||
|
|
710067969e | ||
|
|
ddc171cfa2 | ||
|
|
896ffb9c72 | ||
|
|
db8529c536 | ||
|
|
fcab77420d | ||
|
|
8c554e875d | ||
|
|
5ef073b6c1 | ||
|
|
895417c98c | ||
|
|
374805d6ab | ||
|
|
b08c2bd90b | ||
|
|
543447aa31 | ||
|
|
4622df84e3 | ||
|
|
9e3cca101d | ||
|
|
5627295002 | ||
|
|
a765fe24be | ||
|
|
07e38236d2 | ||
|
|
6e03e022e1 | ||
|
|
883bee496c | ||
|
|
9e5267aeb9 | ||
|
|
ec367e847b | ||
|
|
77d38d80ea | ||
|
|
915e553a2f | ||
|
|
318c49897c | ||
|
|
87f8b1f154 | ||
|
|
d6fd14dd5f | ||
|
|
f4464ab5a3 | ||
|
|
38e957f078 | ||
|
|
62b23aa530 | ||
|
|
4dd2dc259f | ||
|
|
f3811d3035 | ||
|
|
5288cd8c8b | ||
|
|
d1974349e0 | ||
|
|
80601a415a | ||
|
|
f3171dc0db | ||
|
|
359a09f40a | ||
|
|
1899ef0336 | ||
|
|
0fa171470c | ||
|
|
7a08847522 | ||
|
|
a3dfc3efa6 | ||
|
|
e730800a98 | ||
|
|
63c98225ef | ||
|
|
cc6f66ad11 | ||
|
|
8ac9d0d9a8 | ||
|
|
30dc34ebe1 | ||
|
|
efed7ab5c0 | ||
|
|
1e7dfb8f5a | ||
|
|
6f736cb785 | ||
|
|
52e884b793 | ||
|
|
5912a99c16 | ||
|
|
8f051fc612 | ||
|
|
bd96faa14f | ||
|
|
f410fbf7e2 | ||
|
|
bb26954bd4 | ||
|
|
4615e6d060 | ||
|
|
a1e18d2bba | ||
|
|
364bce618c | ||
|
|
efb4a8dd71 | ||
|
|
f1e353b342 | ||
|
|
78a48e48c1 | ||
|
|
b448c26d71 | ||
|
|
c7648fe2af | ||
|
|
6660caa70f | ||
|
|
fdbfca9a8c | ||
|
|
93b164d077 | ||
|
|
8ed4e742f5 | ||
|
|
c1fdc1adaa | ||
|
|
789e195ace | ||
|
|
3220a58b96 | ||
|
|
21c35bc744 | ||
|
|
fd9ab47041 | ||
|
|
71636ba874 | ||
|
|
0aea48bdaa | ||
|
|
dd51819403 | ||
|
|
ffabeb9caa | ||
|
|
bfc1df633e | ||
|
|
507c1b4f73 | ||
|
|
580ebe8b97 | ||
|
|
e0579b3040 | ||
|
|
ded4ea555f | ||
|
|
f07f4cb150 | ||
|
|
dbb21373e1 | ||
|
|
89f3ce1eb3 | ||
|
|
36068abce7 | ||
|
|
d551c8e6b9 | ||
|
|
2572e1c25d | ||
|
|
b158984464 | ||
|
|
256d42d030 | ||
|
|
171e95fb17 | ||
|
|
d3ad490b84 | ||
|
|
df07f373d8 | ||
|
|
5d17461c6e | ||
|
|
2cf5ea11fd | ||
|
|
573c0c236a | ||
|
|
63429ab087 | ||
|
|
00846c1418 | ||
|
|
a3f776b7db | ||
|
|
91db58bb64 | ||
|
|
0a2ec297bf | ||
|
|
bbfe9ed377 | ||
|
|
39aee4ad07 | ||
|
|
49674e7d33 | ||
|
|
12c0dbd8d1 | ||
|
|
734e70ffb1 | ||
|
|
480066cc6d | ||
|
|
74dcf96e4b | ||
|
|
222c86f550 | ||
|
|
b255423245 | ||
|
|
09c0929040 | ||
|
|
7312d06cc4 | ||
|
|
5c75bc4194 | ||
|
|
760a1f6c43 | ||
|
|
b6cfc8c755 | ||
|
|
820a01cb7d | ||
|
|
bfd7c1ea7c | ||
|
|
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 |
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
|
||||
|
||||
...
|
||||
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.qch filter=lfs diff=lfs merge=lfs -text
|
||||
68
.github/workflows/auto-doxygen.yml
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
name: Auto-build doxygen docs
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '**'
|
||||
|
||||
|
||||
|
||||
jobs:
|
||||
doxygen:
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/master'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
show-progress: ''
|
||||
- name: Setup and run doxygen
|
||||
run: sudo apt update && sudo apt install doxygen graphviz qhelpgenerator-qt5 -y
|
||||
- name: Set up Git LFS
|
||||
run: |
|
||||
git lfs install
|
||||
git lfs track "*.qch"
|
||||
- name: Run doxygen
|
||||
run: doxygen Doxyfile
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v8
|
||||
with:
|
||||
token: ${{ secrets.MR_TOKEN }}
|
||||
commit-message: update QCH file
|
||||
committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
||||
title: Update QCH Help file
|
||||
body: |
|
||||
- Updating QT Help file following commit ${{ github.sha }}.
|
||||
- Auto-generated by [create-pull-request][1]
|
||||
|
||||
[1]: https://github.com/peter-evans/create-pull-request
|
||||
branch: update-qch
|
||||
labels: |
|
||||
qch
|
||||
cicd
|
||||
delete-branch: true
|
||||
add-paths: doc/*.qch
|
||||
- uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: ${{ github.workspace }}/doc/html/
|
||||
deploy:
|
||||
# Add a dependency to the build job
|
||||
needs: doxygen
|
||||
|
||||
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
|
||||
permissions:
|
||||
pages: write # to deploy to Pages
|
||||
id-token: write # to verify the deployment originates from an appropriate source
|
||||
|
||||
# Deploy to the github-pages environment
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
|
||||
# Specify runner + deployment step
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4 # or specific "vX.X.X" version tag for this action
|
||||
557
.github/workflows/windows-build.yml
vendored
Normal file
@@ -0,0 +1,557 @@
|
||||
name: Windows Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install MSYS2
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: UCRT64
|
||||
update: true
|
||||
cache: true
|
||||
install: >-
|
||||
git
|
||||
mingw-w64-ucrt-x86_64-ccache
|
||||
mingw-w64-ucrt-x86_64-gcc
|
||||
mingw-w64-ucrt-x86_64-cmake
|
||||
mingw-w64-ucrt-x86_64-ninja
|
||||
mingw-w64-ucrt-x86_64-qt5-base
|
||||
mingw-w64-ucrt-x86_64-qt5-svg
|
||||
mingw-w64-ucrt-x86_64-qt5-tools
|
||||
mingw-w64-ucrt-x86_64-qt5-translations
|
||||
mingw-w64-ucrt-x86_64-sqlite3
|
||||
mingw-w64-ucrt-x86_64-pkg-config
|
||||
mingw-w64-ucrt-x86_64-kwidgetsaddons
|
||||
mingw-w64-ucrt-x86_64-kcoreaddons
|
||||
mingw-w64-ucrt-x86_64-extra-cmake-modules
|
||||
mingw-w64-ucrt-x86_64-nsis
|
||||
mingw-w64-ucrt-x86_64-angleproject
|
||||
|
||||
- name: Cache ccache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: C:\Users\runneradmin\AppData\Local\ccache
|
||||
key: ccache-windows-${{ github.ref_name }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
ccache-windows-${{ github.ref_name }}-
|
||||
ccache-windows-
|
||||
|
||||
- name: Configure ccache
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
/ucrt64/bin/ccache --set-config=max_size=500M
|
||||
/ucrt64/bin/ccache --set-config=compression=true
|
||||
/ucrt64/bin/ccache -z
|
||||
echo "=== ccache config ==="
|
||||
/ucrt64/bin/ccache -p
|
||||
|
||||
- name: Patch NSIS Welcome page — fix title font size
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
WELCOME_NSH=$(find /ucrt64 -path "*/Modern UI 2/Pages/Welcome.nsh" | head -1)
|
||||
if [ -z "$WELCOME_NSH" ]; then
|
||||
echo "WARNING: Welcome.nsh not found, skipping font patch"
|
||||
else
|
||||
echo "Patching: $WELCOME_NSH"
|
||||
sed -i '/WelcomePage\.Title\.Font/s/"[0-9]\+" "700"/"10" "700"/' "$WELCOME_NSH"
|
||||
grep 'WelcomePage.Title.Font' "$WELCOME_NSH"
|
||||
echo " OK font size patched to 10"
|
||||
fi
|
||||
|
||||
FINISH_NSH=$(find /ucrt64 -path "*/Modern UI 2/Pages/Finish.nsh" | head -1)
|
||||
if [ -z "$FINISH_NSH" ]; then
|
||||
echo "WARNING: Finish.nsh not found, skipping font patch"
|
||||
else
|
||||
echo "Patching: $FINISH_NSH"
|
||||
sed -i '/FinishPage\.Title\.Font/s/"[0-9]\+" "700"/"10" "700"/' "$FINISH_NSH"
|
||||
grep 'FinishPage.Title.Font' "$FINISH_NSH"
|
||||
echo " OK font size patched to 10"
|
||||
fi
|
||||
|
||||
- name: Force Qt5 — remove Qt6 cmake + tools
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
rm -rf /ucrt64/lib/cmake/Qt6
|
||||
pacman -R --noconfirm mingw-w64-ucrt-x86_64-qt6-tools 2>/dev/null || true
|
||||
echo "=== windeployqt binaries ==="
|
||||
ls /ucrt64/bin/windeployqt* || echo "NO windeployqt found!"
|
||||
|
||||
- name: Build with cmake
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
cd "$GITHUB_WORKSPACE"
|
||||
mkdir build && cd build
|
||||
NPROC=$(nproc)
|
||||
echo "Available CPUs: $NPROC"
|
||||
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_PREFIX_PATH=/ucrt64 \
|
||||
-DQt5_DIR=/ucrt64/lib/cmake/Qt5 \
|
||||
-DQT_VERSION_MAJOR=5 \
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
-DCMAKE_CXX_FLAGS="-DQET_EXPORT_PROJECT_DB" \
|
||||
-DCMAKE_C_COMPILER_LAUNCHER=/ucrt64/bin/ccache \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER=/ucrt64/bin/ccache \
|
||||
-DSQLite3_INCLUDE_DIR=/ucrt64/include \
|
||||
-DSQLite3_LIBRARY=/ucrt64/lib/libsqlite3.dll.a \
|
||||
..
|
||||
ninja -j"$NPROC"
|
||||
|
||||
- name: Show ccache stats
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
echo "=== ccache statistics ==="
|
||||
/ucrt64/bin/ccache -s
|
||||
|
||||
- name: Verify exe was built
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
EXE=$(find "$GITHUB_WORKSPACE/build" -maxdepth 3 -iname "qelectrotech.exe" | head -1)
|
||||
if [ -z "$EXE" ]; then
|
||||
echo "ERROR: no qelectrotech.exe found in build/"
|
||||
find "$GITHUB_WORKSPACE/build" -maxdepth 3 -name "*.exe" || true
|
||||
exit 1
|
||||
fi
|
||||
SIZE=$(stat -c%s "$EXE")
|
||||
echo "Exe found: $EXE ($SIZE bytes)"
|
||||
[ "$SIZE" -gt 100000 ] || { echo "ERROR: exe too small"; exit 1; }
|
||||
|
||||
- name: Deploy — copy exe + windeployqt + DLLs
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
NSIS_ROOT="$GITHUB_WORKSPACE/nsis_root"
|
||||
FILES="$NSIS_ROOT/files"
|
||||
BIN="$FILES/bin"
|
||||
mkdir -p "$BIN"
|
||||
|
||||
EXE=$(find "$GITHUB_WORKSPACE/build" -maxdepth 3 -iname "qelectrotech.exe" | head -1)
|
||||
echo "Copying exe: $EXE -> $BIN/QElectroTech.exe"
|
||||
cp "$EXE" "$BIN/QElectroTech.exe"
|
||||
|
||||
cd "$BIN"
|
||||
/ucrt64/bin/windeployqt-qt5 \
|
||||
--release \
|
||||
--no-translations \
|
||||
--no-compiler-runtime \
|
||||
./QElectroTech.exe || true
|
||||
|
||||
echo "=== 3-pass transitive DLL scan ==="
|
||||
set +e
|
||||
for PASS in 1 2 3; do
|
||||
echo "-- Pass $PASS --"
|
||||
for bin_file in "$BIN"/*.dll "$BIN"/*.exe "$BIN"/sqldrivers/*.dll "$BIN"/platforms/*.dll "$BIN"/imageformats/*.dll; do
|
||||
[ -f "$bin_file" ] || continue
|
||||
while IFS= read -r line; do
|
||||
dll_path=$(echo "$line" | awk '{print $3}')
|
||||
[ -f "$dll_path" ] || continue
|
||||
dll_name=$(basename "$dll_path")
|
||||
dst="$BIN/$dll_name"
|
||||
if [ ! -f "$dst" ]; then
|
||||
cp "$dll_path" "$dst"
|
||||
echo " Copied (pass $PASS): $dll_name"
|
||||
fi
|
||||
done < <(ldd "$bin_file" 2>/dev/null | grep -i '/ucrt64/bin/')
|
||||
done
|
||||
done
|
||||
set -e
|
||||
|
||||
DLL_COUNT=$(find "$BIN" -name "*.dll" | wc -l)
|
||||
echo "=== $DLL_COUNT DLLs present after scan ==="
|
||||
ls -lh "$BIN/QElectroTech.exe" || { echo "ERROR: exe missing from bin/"; exit 1; }
|
||||
[ "$DLL_COUNT" -gt 5 ] || { echo "ERROR: too few DLLs"; exit 1; }
|
||||
cd "$GITHUB_WORKSPACE"
|
||||
|
||||
cp /ucrt64/bin/libgcc_s_seh-1.dll "$BIN/"
|
||||
cp /ucrt64/bin/libstdc++-6.dll "$BIN/"
|
||||
cp /ucrt64/bin/libwinpthread-1.dll "$BIN/"
|
||||
SQLITE=$(find /ucrt64/bin -name "libsqlite3*.dll" | head -1)
|
||||
if [ -n "$SQLITE" ]; then
|
||||
cp "$SQLITE" "$BIN/"
|
||||
echo "SQLite3 copied: $(basename $SQLITE)"
|
||||
else
|
||||
echo "WARNING: libsqlite3 not found in /ucrt64/bin/"
|
||||
fi
|
||||
|
||||
cp "$GITHUB_WORKSPACE/build-aux/windows/QET64.nsi" "$NSIS_ROOT/"
|
||||
cp "$GITHUB_WORKSPACE/build-aux/windows/lang_extra.nsh" "$NSIS_ROOT/"
|
||||
cp "$GITHUB_WORKSPACE/build-aux/windows/lang_extra_fr.nsh" "$NSIS_ROOT/"
|
||||
cp "$GITHUB_WORKSPACE/build-aux/windows/lang_extra_missing.nsh" "$NSIS_ROOT/"
|
||||
cp -r "$GITHUB_WORKSPACE/build-aux/windows/nsis_base/." "$NSIS_ROOT/"
|
||||
|
||||
curl -fsSL \
|
||||
"https://raw.githubusercontent.com/qelectrotech/qelectrotech-source-mirror/refs/heads/master/misc/Lancer%20QET.bat" \
|
||||
-o "$FILES/Lancer QET.bat"
|
||||
cp -r "$GITHUB_WORKSPACE/elements" "$FILES/elements" || true
|
||||
cp -r "$GITHUB_WORKSPACE/titleblocks" "$FILES/titleblocks" || true
|
||||
cp -r "$GITHUB_WORKSPACE/examples" "$FILES/examples" || true
|
||||
cp -r "$GITHUB_WORKSPACE/fonts" "$FILES/fonts" || true
|
||||
|
||||
cp -r "$GITHUB_WORKSPACE/lang" "$FILES/lang" || true
|
||||
find "$GITHUB_WORKSPACE/build" -name "*.qm" -exec cp {} "$FILES/lang/" \; 2>/dev/null || true
|
||||
echo "=== .qm files in files/lang/ ==="
|
||||
ls "$FILES/lang/"*.qm 2>/dev/null | wc -l || echo "0 .qm files"
|
||||
|
||||
for f in LICENSE ChangeLog CREDIT README ELEMENTS.LICENSE; do
|
||||
cp "$GITHUB_WORKSPACE/$f" "$FILES/$f" 2>/dev/null || true
|
||||
done
|
||||
|
||||
echo "=== Verification of key files in files/ ==="
|
||||
for f in LICENSE ChangeLog CREDIT README ELEMENTS.LICENSE \
|
||||
qet_uninstall_file_associations.reg register_filetypes.bat "Lancer QET.bat"; do
|
||||
[ -f "$FILES/$f" ] \
|
||||
&& echo " OK : $f" \
|
||||
|| echo " MISSING: $f"
|
||||
done
|
||||
for d in ico elements lang titleblocks fonts examples bin; do
|
||||
[ -d "$FILES/$d" ] \
|
||||
&& echo " OK : $d/" \
|
||||
|| echo " MISSING: $d/"
|
||||
done
|
||||
|
||||
- name: Extract version for installer name
|
||||
shell: msys2 {0}
|
||||
id: qet_version
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
GITCOMMIT=$(git -C "$GITHUB_WORKSPACE" rev-parse --short HEAD)
|
||||
|
||||
A=$(git -C "$GITHUB_WORKSPACE" rev-list HEAD --count)
|
||||
HEAD=$(( A + 473 ))
|
||||
|
||||
VERSION=$(grep 'return QVersionNumber{' "$GITHUB_WORKSPACE/sources/qetversion.cpp" \
|
||||
| head -1 \
|
||||
| awk -F '{' '{ print $2 }' \
|
||||
| awk -F '}' '{ print $1 }' \
|
||||
| sed -e 's/,/./g' -e 's/ //g')
|
||||
[ -z "$VERSION" ] && VERSION="dev"
|
||||
|
||||
FULL_VERSION="${VERSION}-r${HEAD}-${GITCOMMIT}_x86_64-win64"
|
||||
echo "version=$FULL_VERSION" >> "$GITHUB_OUTPUT"
|
||||
echo "base_version=$VERSION" >> "$GITHUB_OUTPUT"
|
||||
echo "gitcommit=$GITCOMMIT" >> "$GITHUB_OUTPUT"
|
||||
echo "head=$HEAD" >> "$GITHUB_OUTPUT"
|
||||
echo "VERSION : $VERSION"
|
||||
echo "GITCOMMIT : $GITCOMMIT"
|
||||
echo "HEAD (rev) : $HEAD"
|
||||
echo "FULL : $FULL_VERSION"
|
||||
|
||||
- name: Patch QET64.nsi — version + exe name + absolute paths
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
VERSION="${{ steps.qet_version.outputs.version }}"
|
||||
NSI="$GITHUB_WORKSPACE/nsis_root/QET64.nsi"
|
||||
FILES_WIN=$(cygpath -w "$GITHUB_WORKSPACE/nsis_root/files")
|
||||
SCRIPT="$GITHUB_WORKSPACE/build-aux/windows/patch_nsi.py"
|
||||
|
||||
python3 "$SCRIPT" "$NSI" "$VERSION" "$FILES_WIN"
|
||||
|
||||
echo "=== Verification ==="
|
||||
grep 'SOFT_VERSION' "$NSI" | head -1
|
||||
grep -m2 'nsis_root' "$NSI" | head -2
|
||||
echo "=== Contents of nsis_root/files/ ==="
|
||||
ls "$GITHUB_WORKSPACE/nsis_root/files/"
|
||||
|
||||
- name: Build NSIS installer
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
NSIS_ROOT="$GITHUB_WORKSPACE/nsis_root"
|
||||
cd "$NSIS_ROOT"
|
||||
echo "=== CWD : $(pwd) ==="
|
||||
MSYS2_ARG_CONV_EXCL="*" makensis /V4 QET64.nsi
|
||||
RC=$?
|
||||
echo "=== Contents of nsis_root after makensis ==="
|
||||
ls "$NSIS_ROOT/"
|
||||
[ $RC -eq 0 ] || { echo "ERROR: makensis failed (exit $RC)"; exit 1; }
|
||||
|
||||
- name: Move installer to dist/
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
mkdir -p "$GITHUB_WORKSPACE/dist"
|
||||
INSTALLER=$(find "$GITHUB_WORKSPACE/nsis_root" -maxdepth 1 -iname "installer_*.exe" | head -1)
|
||||
if [ -z "$INSTALLER" ]; then
|
||||
echo "ERROR: no installer .exe found in nsis_root/"
|
||||
ls "$GITHUB_WORKSPACE/nsis_root/"
|
||||
exit 1
|
||||
fi
|
||||
echo "Moving: $INSTALLER -> dist/"
|
||||
mv "$INSTALLER" "$GITHUB_WORKSPACE/dist/"
|
||||
|
||||
- name: Upload build logs on failure
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: build-logs
|
||||
path: |
|
||||
build/CMakeFiles/*.log
|
||||
nsis_root/files/bin/
|
||||
if-no-files-found: warn
|
||||
|
||||
- name: Upload portable (files/ without installer)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: qelectrotech-${{ steps.qet_version.outputs.base_version }}+git${{ steps.qet_version.outputs.head }}-x86-win64-readytouse
|
||||
path: nsis_root/files/
|
||||
retention-days: 14
|
||||
|
||||
- name: Upload NSIS installer
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: qelectrotech-windows-installer
|
||||
path: dist/Installer_*.exe
|
||||
retention-days: 14
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Job 2 : Publie une release nightly + page GitHub Pages
|
||||
# Ne tourne que sur push master (pas sur les PRs)
|
||||
# ---------------------------------------------------------------------------
|
||||
deploy-pages:
|
||||
needs: build-windows
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name != 'pull_request'
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout gh-pages branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: gh-pages
|
||||
path: gh-pages
|
||||
|
||||
- name: Download installer artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: qelectrotech-windows-installer
|
||||
path: downloaded/installer/
|
||||
|
||||
- name: Update nightly release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
tag_name: nightly
|
||||
name: "Nightly Build – Windows"
|
||||
body: |
|
||||
🔧 **Automated nightly build** — may be unstable.
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **Commit** | ${{ github.sha }} |
|
||||
| **Run** | https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} |
|
||||
| **Date** | ${{ github.event.head_commit.timestamp }} |
|
||||
|
||||
> ⚠️ This release is overwritten on every push to `master`.
|
||||
> For stable releases, see the [Releases page](https://github.com/${{ github.repository }}/releases).
|
||||
prerelease: true
|
||||
make_latest: false
|
||||
files: downloaded/installer/*.exe
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Generate download page (index.html)
|
||||
run: |
|
||||
DATE=$(date -u '+%Y-%m-%d %H:%M UTC')
|
||||
SHORT="${{ github.sha }}"
|
||||
SHORT="${SHORT:0:7}"
|
||||
REPO="${{ github.repository }}"
|
||||
RUN_URL="https://github.com/$REPO/actions/runs/${{ github.run_id }}"
|
||||
EXE_NAME=$(ls downloaded/installer/*.exe | xargs -I{} basename {})
|
||||
INSTALLER_URL="https://github.com/$REPO/releases/download/nightly/$EXE_NAME"
|
||||
|
||||
mkdir -p gh-pages
|
||||
cat > gh-pages/index.html << HTMLEOF
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>QElectroTech – Nightly Builds</title>
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
||||
background: #f0f4f8;
|
||||
color: #2d3748;
|
||||
min-height: 100vh;
|
||||
}
|
||||
header {
|
||||
background: linear-gradient(135deg, #1a365d 0%, #2b6cb0 100%);
|
||||
color: white;
|
||||
padding: 48px 24px 40px;
|
||||
text-align: center;
|
||||
}
|
||||
header h1 { font-size: 2.2em; letter-spacing: -0.5px; margin-bottom: 8px; }
|
||||
header p { opacity: 0.8; font-size: 1.05em; }
|
||||
main {
|
||||
max-width: 680px;
|
||||
margin: 40px auto;
|
||||
padding: 0 20px 60px;
|
||||
}
|
||||
.card {
|
||||
background: white;
|
||||
border-radius: 12px;
|
||||
padding: 28px;
|
||||
margin-bottom: 24px;
|
||||
box-shadow: 0 2px 12px rgba(0,0,0,0.08);
|
||||
}
|
||||
.card h2 {
|
||||
font-size: 1em;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.06em;
|
||||
color: #718096;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.meta {
|
||||
font-size: 0.875em;
|
||||
color: #4a5568;
|
||||
line-height: 1.8;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.meta a { color: #2b6cb0; text-decoration: none; }
|
||||
.meta a:hover { text-decoration: underline; }
|
||||
.badge {
|
||||
display: inline-block;
|
||||
background: #ebf8ff;
|
||||
color: #2b6cb0;
|
||||
border-radius: 4px;
|
||||
font-size: 0.8em;
|
||||
font-weight: 600;
|
||||
padding: 2px 8px;
|
||||
margin-left: 6px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.warning {
|
||||
background: #fffbeb;
|
||||
border-left: 4px solid #f6ad55;
|
||||
border-radius: 4px;
|
||||
padding: 12px 16px;
|
||||
font-size: 0.875em;
|
||||
color: #744210;
|
||||
margin-bottom: 24px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.warning a { color: #c05621; }
|
||||
.downloads { display: flex; flex-direction: column; gap: 12px; }
|
||||
.btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
padding: 14px 20px;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95em;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
transition: transform 0.1s, box-shadow 0.1s;
|
||||
}
|
||||
.btn:hover {
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
|
||||
}
|
||||
.btn-primary { background: #2b6cb0; color: white; }
|
||||
.btn-secondary { background: #edf2f7; color: #2d3748; }
|
||||
.btn-icon { font-size: 1.3em; }
|
||||
.btn-text small {
|
||||
display: block;
|
||||
font-weight: 400;
|
||||
font-size: 0.8em;
|
||||
opacity: 0.75;
|
||||
margin-top: 1px;
|
||||
}
|
||||
footer {
|
||||
text-align: center;
|
||||
font-size: 0.8em;
|
||||
color: #a0aec0;
|
||||
padding: 32px 0 0;
|
||||
}
|
||||
footer a { color: #718096; text-decoration: none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>⚡ QElectroTech</h1>
|
||||
<p>Nightly Windows Builds</p>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<div class="card">
|
||||
<h2>Build info</h2>
|
||||
<div class="meta">
|
||||
📅 <strong>$DATE</strong><br>
|
||||
🔀 Commit <a href="https://github.com/$REPO/commit/${{ github.sha }}"><code>$SHORT</code></a><br>
|
||||
🔧 <a href="$RUN_URL">CI Run #${{ github.run_number }}</a>
|
||||
<span class="badge">nightly</span>
|
||||
</div>
|
||||
<div class="warning">
|
||||
⚠️ These builds are generated automatically on every commit to <code>master</code>
|
||||
and may be unstable or incomplete.
|
||||
For production use, download a
|
||||
<a href="https://github.com/$REPO/releases">stable release</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2>🪟 Windows — x86_64</h2>
|
||||
<div class="downloads">
|
||||
<a class="btn btn-primary" href="$INSTALLER_URL">
|
||||
<span class="btn-icon">⬇</span>
|
||||
<span class="btn-text">
|
||||
Windows Installer
|
||||
<small>.exe — recommended, includes all dependencies</small>
|
||||
</span>
|
||||
</a>
|
||||
<a class="btn btn-secondary" href="https://github.com/$REPO/releases/tag/nightly">
|
||||
<span class="btn-icon">📦</span>
|
||||
<span class="btn-text">
|
||||
All nightly files on GitHub
|
||||
<small>Release page with checksums</small>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
Auto-generated by GitHub Actions ·
|
||||
<a href="https://github.com/$REPO">Source on GitHub</a> ·
|
||||
<a href="https://qelectrotech.org">qelectrotech.org</a>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
HTMLEOF
|
||||
|
||||
- name: Commit and push to gh-pages
|
||||
run: |
|
||||
cd gh-pages
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git add index.html
|
||||
git diff --staged --quiet \
|
||||
|| git commit -m "nightly: build #${{ github.run_number }} (${{ github.sha }})"
|
||||
git push origin gh-pages
|
||||
4
.gitignore
vendored
@@ -3,5 +3,7 @@
|
||||
# Qt build output
|
||||
*.user
|
||||
# doxygen Doxyfile output
|
||||
doc/
|
||||
doc/*
|
||||
!doc/QElectroTech.qch
|
||||
QElectroTech.tag
|
||||
!doc/doc-utils
|
||||
13
.gitmodules
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
[submodule "pugixml"]
|
||||
path = pugixml
|
||||
url = https://github.com/zeux/pugixml.git
|
||||
[submodule "SingleApplication"]
|
||||
path = SingleApplication
|
||||
url = https://github.com/itay-grudev/SingleApplication.git
|
||||
[submodule "elements"]
|
||||
path = elements
|
||||
url = https://github.com/qelectrotech/qelectrotech-elements.git
|
||||
|
||||
[submodule "doxygen-awesome-css"]
|
||||
path = doxygen-awesome-css
|
||||
url = https://github.com/jothepro/doxygen-awesome-css.git
|
||||
155
CMakeLists.txt
Normal file
@@ -0,0 +1,155 @@
|
||||
# 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 directory 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
|
||||
Qt5
|
||||
COMPONENTS
|
||||
${QET_COMPONENTS}
|
||||
REQUIRED
|
||||
)
|
||||
|
||||
find_package(
|
||||
Qt${QT_VERSION_MAJOR}
|
||||
COMPONENTS
|
||||
${QET_COMPONENTS}
|
||||
REQUIRED)
|
||||
find_package(SQLite3 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
|
||||
SQLite::SQLite3
|
||||
${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}/pugixml/src
|
||||
${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/org.qelectrotech.qelectrotech.desktop DESTINATION share/applications)
|
||||
install(FILES misc/qelectrotech.xml DESTINATION share/mime/packages)
|
||||
install(FILES misc/qelectrotech.appdata.xml DESTINATION ${QET_APPDATA_PATH})
|
||||
install(FILES ${QM_FILES} DESTINATION ${QET_LANG_PATH})
|
||||
|
||||
endif()
|
||||
62
CREDIT
@@ -1,3 +1,33 @@
|
||||
[ca]
|
||||
Gràcies a Qt Software per la biblioteca Qt ( http://www.qtsoftware.com/ ), amb llicència GNU/GPL.
|
||||
Gràcies al projecte KDE ( http://www.kde.org/ ).
|
||||
Gràcies a Loic per les seves explicacions d'ordre matemàtic.
|
||||
Gràcies a Remi Collet pels paquets Fedora.
|
||||
Gràcies a Laurent Trinques pels paquets Debian.
|
||||
Gràcies a `trem' pels paquets Mandriva.
|
||||
Gràcies a TuxFamily ( http://tuxfamily.org/ ) per a l'allotjament del projecte.
|
||||
Gràcies a `Nishiki' pels seus elements i el seu suport suport.
|
||||
Gràcies a qtcentre.org per la seva classe SingleApplication.
|
||||
Gràcies a Alfredo Carreto per les seves traduccions i correccions al castellà ( http://electronicosmx.net )
|
||||
Gràcies a 'Dr.Slump' et Sivio pour leurs traductions a l'italià
|
||||
Gràcies a Jose Carlos Martins per les seves traduccions al portuguès
|
||||
Gràcies a Pavel Fric per les seves traduccions al txec
|
||||
Gràcies a Pawel Smiech per les seves traduccions al polonès
|
||||
Gràcies a Yuriy Litkevich per les seves traduccions al rus
|
||||
Gràcies a Youssef Ouamalkran i Antoni Mirabete per les seves traduccions al català
|
||||
Gràcies a Gabi Mandoc per les seves traduccions al romanès
|
||||
Gràcies a Markus Budde i Jonas Stein et Noah Braden per les seves traduccions a l'alemany
|
||||
Gràcies a Mohamed Souabni per les seves traduccions a l'àrab
|
||||
Gràcies a Uroš Platiše per les seves traduccions a l'eslovè
|
||||
Gràcies a Antun Marakovic per les seves traduccions al croat
|
||||
Gràcies a Nikos Papadopoylos && Yannis Gyftomitros per les seves traduccions al grec
|
||||
Gràcies a Markos Chandras pels paquets Gentoo
|
||||
Gràcies a David pels paquets Slackware
|
||||
Gràcies a Chipsterjulien pels paquets Archlinux AUR
|
||||
Gràcies a Elbert de NL pels paquets OS/2
|
||||
Gràcies a Zloidemon pels paquets (port GCC)
|
||||
Gràcies a Mrbit per ebuild els paquets Gentoo
|
||||
|
||||
[en]
|
||||
Thanks to Qt Software for their Qt library ( http://www.qtsoftware.com/ ), licensed under GNU/GPL.
|
||||
Thanks to the KDE project ( http://www.kde.org/ ).
|
||||
@@ -236,3 +266,35 @@ Dank aan Chipsterjulien voor de pakkette Archlinux AUR
|
||||
Dank aan Elbert voor de pakkette OS/2
|
||||
Dank aan Zloidemon fvoor de pakkette (port GCC)
|
||||
Dank aan Mrbit van ebuild voor de pakkette Gentoo
|
||||
|
||||
[ko]
|
||||
Qt 라이브러리(Qt Software, http://www.qtsoftware.com/)를 제공해 주신 Qt Software에 감사드립니다. (GNU/GPL 라이선스)
|
||||
KDE 프로젝트 ( http://www.kde.org/ )에 감사드립니다.
|
||||
수학적인 설명을 제공해 주신 Loic에게 감사드립니다.
|
||||
Fedora 패키지를 제공해 주신 Remi Collet에게 감사드립니다.
|
||||
Debian 패키지를 제공해 주신 Laurent Trinques에게 감사드립니다.
|
||||
Mandriva 패키지를 제공해 주신 `trem`에게 감사드립니다.
|
||||
프로젝트 호스팅을 지원해 주신 TuxFamily ( http://tuxfamily.org/ )에 감사드립니다.
|
||||
요소 제공 및 지원을 해주신 `Nishiki`에게 감사드립니다.
|
||||
SingleApplication 클래스를 제공해 준 qtcentre.org에 감사드립니다.
|
||||
스페인어 번역 및 번역 수정에 기여해 주신 Alfredo Carreto ( http://electronicosmx.net )에게 감사드립니다.
|
||||
이탈리아어 번역에 기여해 주신 'Dr.Slump'와 Silvio에게 감사드립니다.
|
||||
포르투갈어 번역에 기여해 주신 Jose Carlos Martins에게 감사드립니다.
|
||||
체코어 번역에 기여해 주신 Pavel Fric에게 감사드립니다.
|
||||
폴란드어 번역에 기여해 주신 Pawel Smiech에게 감사드립니다.
|
||||
러시아어 번역에 기여해 주신 Yuriy Litkevich에게 감사드립니다.
|
||||
카탈로니아어 번역에 기여해 주신 Youssef Ouamalkran에게 감사드립니다.
|
||||
루마니아어 번역에 기여해 주신 Gabi Mandoc에게 감사드립니다.
|
||||
독일어 번역에 기여해 주신 Markus Budde, Jonas Stein, Noah Braden에게 감사드립니다.
|
||||
아랍어 번역에 기여해 주신 Mohamed Souabni에게 감사드립니다.
|
||||
슬로베니아어 번역에 기여해 주신 Uroš Platiše에게 감사드립니다.
|
||||
크로아티아어 번역에 기여해 주신 Antun Marakovic에게 감사드립니다.
|
||||
그리스어 번역에 기여해 주신 Nikos Papadopoylos와 Yannis Gyftomitros에게 감사드립니다.
|
||||
한국어 번역에 기여해 주신 정광호 님께 감사드립니다.
|
||||
Gentoo 패키지를 제공해 주신 Markos Chandras에게 감사드립니다.
|
||||
Slackware 패키지를 제공해 주신 David에게 감사드립니다.
|
||||
Arch Linux AUR 패키지를 제공해 주신 Chipsterjulien에게 감사드립니다.
|
||||
OS/2 패키지를 제공해 주신 Elbert에게 감사드립니다.
|
||||
FreeBSD(GCC 포트) 패키지를 제공해 주신 zloidemon에게 감사드립니다.
|
||||
Gentoo ebuild 패키지를 제공해 주신 Mrbit에게 감사드립니다.
|
||||
|
||||
|
||||
176
ChangeLog
@@ -1,3 +1,179 @@
|
||||
# QElectroTech - CHANGELOG
|
||||
|
||||
## Version 0.100
|
||||
|
||||
_Compiled from provided commit logs and contributor notes._
|
||||
|
||||
## Overview
|
||||
|
||||
This release (v0.100) collects a large set of new features, UI and editor improvements, element and symbol updates, build and packaging fixes, dependency upgrades, translations, and a broad set of bug fixes and stability improvements. It is intended as a stable, feature-rich stepping stone toward the next major workflows for symbol editing, terminal/strip handling and export improvements.
|
||||
|
||||
## Highlights / Key Features
|
||||
|
||||
- **Terminal Strip / Terminal Strip Editor**
|
||||
- New TerminalStripItem type and related editor workflow added.
|
||||
- Support for drawing and displaying terminal bridges and links in the editor.
|
||||
- Full editor support (layout preview, save/load into .qet files) and undo support for terminal strip operations.
|
||||
- **New Example Projects**
|
||||
- Several new example projects included, notably photovoltaic (PV) examples to help users getting started with PV designs.
|
||||
- **Improved Export / Print Handling**
|
||||
- Export limits adjusted and better handling of QPainter/printing boundaries to avoid export artefacts and out-of-range errors.
|
||||
- Export dialog updated to allow larger pixel limits where appropriate.
|
||||
- **Element & Symbol Additions**
|
||||
- New elements and symbols added (including vendor-specific elements and additional sensors/Arduino components).
|
||||
- Improvements to element import & metadata handling.
|
||||
- **Packaging & Multi-arch Support**
|
||||
- Updated packaging scripts for AppImage, Flatpak, Snap and macOS deployment. Improved aarch64/arm64 support.
|
||||
|
||||
## Detailed Changes
|
||||
|
||||
### Editor & UX
|
||||
|
||||
- Better handling for **rotation, flip and mirror** operations in the element editor:
|
||||
- Primitives and text rotation behavior improved.
|
||||
- Finer rotation increments and predictable text orientation after flips/rotations.
|
||||
- **Wiring and conductor behavior**:
|
||||
- More robust creation and movement of wires and conductor bundles.
|
||||
- Improved text attachment and positioning for wires and improved stability while editing complex conductor networks.
|
||||
- **TerminalStrip editor**: see Highlights - includes drawing, preview, layout editing, persistent storage in the project file and undo support.
|
||||
- **Element Editor & Symbol Trim/Sort**:
|
||||
- Improved trimming/normalization of element metadata.
|
||||
- Better sorting and error handling for element imports (DXF and other formats).
|
||||
- Small UI improvements: About dialog updates, autosave spinbox ranges, improved tooltips and mouse-hover help for dynamic texts.
|
||||
|
||||
### New & Updated Elements
|
||||
|
||||
- New elements added for industrial and automation workflows (including Siemens-related elements, logic elements, sensors and Arduino components).
|
||||
- Symbol library additions and cleanup; improved defaults for newly added symbols.
|
||||
- Element meta-data cleanup: article numbers, descriptions, and manufacturer fields were normalized and trimmed on import.
|
||||
|
||||
### Export / Printing / PDF
|
||||
|
||||
- Adjusted internal export limits to avoid hitting QPainter size restrictions; users can now export larger, high-resolution images/prints in more cases.
|
||||
- Better handling of page sizes and printer-related geometry using QRectF improvements.
|
||||
- PDF export improvements to increase reliability of exported vector content.
|
||||
|
||||
### Build, Dependencies, Packaging
|
||||
|
||||
- Upgrades of core test and build dependencies:
|
||||
- Catch2 upgraded to v2.13.10.
|
||||
- googletest upgraded to v1.17.0.
|
||||
- CMake fixes and i18n handling corrected for nl_BE and other locales.
|
||||
- Packaging scripts updated across platforms (AppImage/Flatpak/Snap/macOS deploy) including fixes for aarch64/arm64.
|
||||
- Submodule updates (e.g., qelectrotech-elements, pugixml, SingleApplication) synchronized where needed.
|
||||
|
||||
### Internationalization & Translations
|
||||
|
||||
- Large translation updates across many languages: German (DE), French (FR), Dutch (NL, including nl_BE), Swedish (SV), Italian (IT), Polish (PL), Portuguese-BR (PT-BR), Serbian (SR), Chinese (Simplified) and others.
|
||||
- Fixes and corrections for many UI strings and localized resources.
|
||||
|
||||
### Tests, QA & Logging
|
||||
|
||||
- Improved logging and machine/config-path reporting; Git revision display refined to only show a revision when available.
|
||||
- Unit test updates and fixes to align with updated testing frameworks.
|
||||
|
||||
## Bug Fixes (selected)
|
||||
|
||||
- Fixed crashes and various null pointer access issues discovered by static and dynamic testing.
|
||||
- Resolved multiple reported bugs that caused build failures on some platforms (FTBFS fixes for macOS and others).
|
||||
- Fixed issues with automatic conductor/strand numbering in several edge cases (referenced Bug 293 in the commit logs).
|
||||
- Resolved text/summary headline issues in the German-language summary generator.
|
||||
- Fixes for a number of visually incorrect renderings and layout corner-cases during element transformation (rotate/flip/mirror).
|
||||
- Fixed issues that affected export sizes and caused export artifacts (referenced fixes for bug IDs around #329/#330 in commit notes).
|
||||
|
||||
## Developer & Contributor Notes
|
||||
|
||||
- Reworked parts of the codebase to use QRectF consistently for better compatibility with QPrinter and export pipelines.
|
||||
- Code-style cleanups and comment improvements applied throughout the project.
|
||||
- Expanded test coverage and dependency refresh to keep CI builds stable.
|
||||
|
||||
## Contributors (selected)
|
||||
|
||||
Thanks to the many contributors who made this release possible. Selected contributors mentioned in the commit logs include:
|
||||
|
||||
- Laurent Trinques
|
||||
- joshua
|
||||
- plc-user
|
||||
- Achim
|
||||
- Pascal Sander
|
||||
- Andre Rummler
|
||||
- Magnus Hellströmer
|
||||
- Martin Marmsoler
|
||||
- Remi Collet
|
||||
|
||||
(See the full commit history for the complete contributor list.)
|
||||
|
||||
## Upgrade / Migration Notes
|
||||
|
||||
- No database or project file format breaking changes were reported in the provided logs. As always, back up projects before opening them with a new version.
|
||||
- If you rely on custom element libraries or third-party submodules, verify submodule synchronization after upgrading.
|
||||
- If you are using custom packaging pipelines, review the updated packaging scripts for any changes required by new dependency versions, especially on aarch64/arm64.
|
||||
|
||||
## Known Issues & Limitations
|
||||
|
||||
- Some very large exports may still be limited by platform-specific rendering restrictions; the export dialog now allows larger pixel limits but extreme sizes may still hit system-level limits.
|
||||
- If you use niche element-import workflows (DXF → element import), occasionally metadata normalization may alter whitespace/trim rules - verify newly imported elements in the element editor.
|
||||
|
||||
## How to get help / report bugs
|
||||
|
||||
- Use the project issue tracker (see repository) to report regressions or new bugs with detailed reproduction steps and example .qet files where possible.
|
||||
- Include the output of Help → About (application version and Git revision) when reporting build/packaging issues.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
====== ChangeLog from 0.8 to 0.9 ======
|
||||
|
||||
|
||||
*Diagram editor :
|
||||
Improved QElectroTech speed (launch qet, open project, function)
|
||||
A drop-down list has been added to the toolbar to change the size of the resize handles.
|
||||
|
||||
|
||||
*Element Editor:
|
||||
The "keep visual rotation" property of element texts is editable from the element editor.
|
||||
Thanks to the work of antonioaja it is now possible to import a dxf directly from the element editor in a completely transparent way for the user.
|
||||
In the background QElectroTech uses the dxf2elmt software. https://qelectrotech.org/forum/viewtopic.php?id=2265 https://github.com/antonioaja/dxf2elmt
|
||||
Improved responsiveness when multiple shapes are selected or deleted, especially when working on a large converted DXF element.
|
||||
https://qelectrotech.org/forum/viewtopic.php?pid=16612#p16612
|
||||
|
||||
*Other:
|
||||
Add a "side project" tab in the "about" window.
|
||||
In the general QElectroTech configuration, a drop down list allows to choose the scaling method for hdpi screens.
|
||||
Allow open polygons (i.e. polylines) when saving in dxf format.
|
||||
https://qelectrotech.org/forum/viewtopic.php?pid=16611#p16611
|
||||
|
||||
Added 'Other' option for slave device contact type.
|
||||
https://github.com/qelectrotech/qelectrotech-source-mirror/pull/222
|
||||
https://qelectrotech.org/forum/viewtopic.php?id=2264
|
||||
|
||||
*Logs:
|
||||
|
||||
Added a QElapsedTimer to calculate the time used to reload the item collection.
|
||||
Improved QElapsedTimer to calculate the time used to reload the item collection in seconds instead of ms.
|
||||
Added Linux pc.gpu.RAM information, but requires mesa-utils dependency on the Linux OS.
|
||||
Added information about mounted disk volumes.
|
||||
Added CPU architecture for which Qt was compiled in the aboutqetdialog widget and in the logs.
|
||||
Added MSVC support to MachineInfo.
|
||||
Added RAM information on Windows of available RAM.
|
||||
Added QElectroTech version to the log file.
|
||||
|
||||
|
||||
|
||||
* Elements collection :
|
||||
Improve collection 8274 elements in 1097 categories (i.e. 9371 files).
|
||||
|
||||
|
||||
|
||||
* macOS :
|
||||
Fix sqlite3 database export on macOS, now I use macports with Digikam scripts instead off Homebrew Package Manager.
|
||||
See: https://invent.kde.org/graphics/digikam/-/tree/master/project/bundles/macports
|
||||
|
||||
|
||||
*Bug fix:
|
||||
see: https://git.tuxfamily.org/qet/qet.git/log/?h=0.8.1
|
||||
|
||||
====== ChangeLog from 0.7 to 0.8 ======
|
||||
|
||||
|
||||
|
||||
344
ChangeLog.MD
Normal file
@@ -0,0 +1,344 @@
|
||||
# Changelog
|
||||
|
||||
## [Unreleased](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/HEAD)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9...HEAD)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- error in doxygen action code [\#414](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/414)
|
||||
- "NoName" is automatically inserted into empty text cells in title block [\#407](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/407)
|
||||
- Apple silicon download is not working [\#400](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/400)
|
||||
- Apple silicon download is not working [\#394](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/394)
|
||||
- Differenciating connector for proper labeling [\#390](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/390)
|
||||
- Non-perpendicular connections [\#368](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/368)
|
||||
- using the wrong Application Data folder on Windows [\#325](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/325)
|
||||
- Unclear which PPA to use [\#321](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/321)
|
||||
- missing group functionality [\#318](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/318)
|
||||
- segfault due to calling method of uninitialized object [\#311](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/311)
|
||||
- Cannot open qelectrotech.app on macOS Sequoia 15.0 [\#307](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/307)
|
||||
- Dark Mode [\#301](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/301)
|
||||
- README 404 Not Found URL: qelectrotech.org/download.html needs to be qelectrotech.org/download.php [\#298](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/298)
|
||||
- Malware warning when trying to install dev version 0.100 [\#290](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/290)
|
||||
- The page sorting of folio [\#279](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/279)
|
||||
- Bad file name for translations [\#278](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/278)
|
||||
- Error using Portuguese Language [\#274](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/274)
|
||||
- Uninstaller [\#265](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/265)
|
||||
- New Maintainer [\#263](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/263)
|
||||
- crash on export project db \(sqlite\) [\#262](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/262)
|
||||
- https://qelectrotech.org/ is down for several days now ! [\#261](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/261)
|
||||
- right click on text crashes app [\#260](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/260)
|
||||
- broken link on github [\#259](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/259)
|
||||
- Build on Bullseye 11.5 fails [\#254](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/254)
|
||||
- Question about ARM target in future release [\#238](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/238)
|
||||
- Component library disappears completely after reset of program [\#87](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/87)
|
||||
- Can't change language in portable version [\#75](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/75)
|
||||
- Transformation Matrix for Element Editor [\#56](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/56)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Update QCH Help file [\#416](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/416) ([Int-Circuit](https://github.com/Int-Circuit))
|
||||
- no random hashes to have more constant order of XML-tags [\#415](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/415) ([plc-user](https://github.com/plc-user))
|
||||
- Delete outdated QET docs [\#412](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/412) ([Int-Circuit](https://github.com/Int-Circuit))
|
||||
- Fixing translation file list in CMake [\#404](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/404) ([arummler](https://github.com/arummler))
|
||||
- Update dependencies to fix compilation errors [\#403](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/403) ([arummler](https://github.com/arummler))
|
||||
- Minor corrections to prevent crashes [\#401](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/401) ([Evilscrack](https://github.com/Evilscrack))
|
||||
- Correct compositeText alignment on copying [\#399](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/399) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- Better handling of conductors when moving [\#398](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/398) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- A few small improvements [\#395](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/395) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- Added updated automatic doxygen build on push + theme to make it fit with docs page [\#389](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/389) ([Int-Circuit](https://github.com/Int-Circuit))
|
||||
- qet\_de updated [\#388](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/388) ([Bisku](https://github.com/Bisku))
|
||||
- only calculate grid-point-size, when min != max [\#387](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/387) ([plc-user](https://github.com/plc-user))
|
||||
- Mouse hover text for dynamic text items [\#386](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/386) ([elevatormind](https://github.com/elevatormind))
|
||||
- improvement: adjust size of grid-dots with zoom-factor [\#384](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/384) ([plc-user](https://github.com/plc-user))
|
||||
- adjust zoom-factor to use cosmetic-line and fixed comments [\#383](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/383) ([plc-user](https://github.com/plc-user))
|
||||
- element-editor: fix jumping positions when rotate, mirror or flip [\#382](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/382) ([plc-user](https://github.com/plc-user))
|
||||
- unify some more code for Qt5 & Qt6 \(and more\) [\#379](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/379) ([plc-user](https://github.com/plc-user))
|
||||
- same simplifications as in \#376 "use the same code for Qt5 & Qt6" [\#377](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/377) ([plc-user](https://github.com/plc-user))
|
||||
- simplify and use the same code for Qt5 & Qt6 [\#376](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/376) ([plc-user](https://github.com/plc-user))
|
||||
- bordertitleblock: use same code for Qt5 & Qt6 for "numbering" rows [\#375](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/375) ([plc-user](https://github.com/plc-user))
|
||||
- some minor changes [\#374](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/374) ([plc-user](https://github.com/plc-user))
|
||||
- implement setting of point-size of grids [\#372](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/372) ([plc-user](https://github.com/plc-user))
|
||||
- some small changes for selective move [\#370](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/370) ([plc-user](https://github.com/plc-user))
|
||||
- Added slovak translation to org.qelectrotech.qelectrotech.desktop [\#369](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/369) ([prescott66](https://github.com/prescott66))
|
||||
- unify calls to "setRotation" for element-primitives again [\#367](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/367) ([plc-user](https://github.com/plc-user))
|
||||
- Added option to only move dynamic texts [\#365](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/365) ([scorpio810](https://github.com/scorpio810))
|
||||
- New variables for conductor text formulas [\#364](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/364) ([scorpio810](https://github.com/scorpio810))
|
||||
- Fix typo widht to width [\#362](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/362) ([pkess](https://github.com/pkess))
|
||||
- element-editor: add mirror and flip for "text" [\#361](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/361) ([plc-user](https://github.com/plc-user))
|
||||
- Add Swedish translation [\#360](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/360) ([scorpio810](https://github.com/scorpio810))
|
||||
- German text for launcher and debian package code style [\#359](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/359) ([pkess](https://github.com/pkess))
|
||||
- some more rotation, mirror and flip [\#358](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/358) ([plc-user](https://github.com/plc-user))
|
||||
- BugFix: Flip and Mirror of terminals [\#357](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/357) ([plc-user](https://github.com/plc-user))
|
||||
- element-editor: fix rotation and more [\#356](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/356) ([plc-user](https://github.com/plc-user))
|
||||
- minor: mostly typos [\#355](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/355) ([plc-user](https://github.com/plc-user))
|
||||
- a few translated shortcuts were still there ... fixed! [\#354](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/354) ([plc-user](https://github.com/plc-user))
|
||||
- FIX: some shortcuts do not work with language set to local [\#353](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/353) ([plc-user](https://github.com/plc-user))
|
||||
- fix movement of element, when origin is outside of graphics [\#352](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/352) ([plc-user](https://github.com/plc-user))
|
||||
- FIX copy-and-paste in element-editor: set paste-position to meaningful values [\#351](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/351) ([plc-user](https://github.com/plc-user))
|
||||
- some cleaning for element-file [\#350](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/350) ([plc-user](https://github.com/plc-user))
|
||||
- fix: properties in project-file [\#348](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/348) ([plc-user](https://github.com/plc-user))
|
||||
- translation: update German and English [\#347](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/347) ([plc-user](https://github.com/plc-user))
|
||||
- export: set maximum width / height according limitations in QPainter [\#346](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/346) ([plc-user](https://github.com/plc-user))
|
||||
- export: set maximum width / height according specifications of export-type [\#345](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/345) ([plc-user](https://github.com/plc-user))
|
||||
- some clean-up for element-file and in code [\#344](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/344) ([plc-user](https://github.com/plc-user))
|
||||
- minor: typos, comments, whitespace, translation [\#343](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/343) ([plc-user](https://github.com/plc-user))
|
||||
- Sort names in element-file by language-code [\#342](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/342) ([plc-user](https://github.com/plc-user))
|
||||
- more precise Log-Text for search of "qet\_tb\_generator" [\#341](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/341) ([plc-user](https://github.com/plc-user))
|
||||
- machine\_info: add entry for QETApp::configDir\(\) also for win [\#340](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/340) ([plc-user](https://github.com/plc-user))
|
||||
- remove dead code \(local variables that were never used\) [\#339](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/339) ([plc-user](https://github.com/plc-user))
|
||||
- minor changes [\#338](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/338) ([plc-user](https://github.com/plc-user))
|
||||
- Update of qet\_de [\#337](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/337) ([Bisku](https://github.com/Bisku))
|
||||
- rewrite code for executing “qet\_tb\_generator” plugin [\#335](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/335) ([plc-user](https://github.com/plc-user))
|
||||
- build-aux/snap/snapcraft.yaml: python3.8 -\> 3.10 [\#334](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/334) ([zultron](https://github.com/zultron))
|
||||
- corrected a few places where QETApp::documentDir\(\) should also be used [\#333](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/333) ([plc-user](https://github.com/plc-user))
|
||||
- add commandline-parameter "--data-dir" [\#332](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/332) ([plc-user](https://github.com/plc-user))
|
||||
- machine\_info: fix element-count and make static text a bit shorter [\#331](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/331) ([plc-user](https://github.com/plc-user))
|
||||
- formatting / whitespace - unify declarations [\#330](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/330) ([plc-user](https://github.com/plc-user))
|
||||
- Set default-location for projects to documents-dir. [\#329](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/329) ([plc-user](https://github.com/plc-user))
|
||||
- machine\_info.cpp: add explaining text for directory-list [\#328](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/328) ([plc-user](https://github.com/plc-user))
|
||||
- set config- and data-dir to system-specific paths [\#327](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/327) ([plc-user](https://github.com/plc-user))
|
||||
- Update qet\_cs.ts [\#326](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/326) ([pafri](https://github.com/pafri))
|
||||
- update German translation [\#324](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/324) ([plc-user](https://github.com/plc-user))
|
||||
- fix copyright-year [\#323](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/323) ([plc-user](https://github.com/plc-user))
|
||||
- PT-BR language update [\#322](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/322) ([gleissonjoaquim3](https://github.com/gleissonjoaquim3))
|
||||
- Fix: Only scroll diagram-view, when moved text leaves visible area [\#320](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/320) ([plc-user](https://github.com/plc-user))
|
||||
- Change Sorting of ElementInfo ComboBox [\#319](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/319) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- Revert "ElementEditor elmt\_info\_cb sorting changed" [\#317](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/317) ([scorpio810](https://github.com/scorpio810))
|
||||
- Fix typo and some whitespace [\#316](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/316) ([plc-user](https://github.com/plc-user))
|
||||
- Fix missing company-titleblocks in properties-dialog [\#315](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/315) ([plc-user](https://github.com/plc-user))
|
||||
- ElementEditor elmt\_info\_cb sorting changed [\#314](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/314) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- fix typos and whitespace [\#313](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/313) ([plc-user](https://github.com/plc-user))
|
||||
- Force light mode in collections like projects [\#312](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/312) ([Arusekk](https://github.com/Arusekk))
|
||||
- About QET: improvements in usability [\#310](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/310) ([plc-user](https://github.com/plc-user))
|
||||
- use MessageBox to inform user about additional info when importing scaled element [\#308](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/308) ([plc-user](https://github.com/plc-user))
|
||||
- make text for missing software "dxf2elmt" translatable [\#304](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/304) ([plc-user](https://github.com/plc-user))
|
||||
- QET\_ElementScaler: fix error for Qt 5.9 and added mirroring [\#303](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/303) ([plc-user](https://github.com/plc-user))
|
||||
- integrate "QET\_ElementScaler" as external software [\#302](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/302) ([plc-user](https://github.com/plc-user))
|
||||
- move code into else-clause to avoid possible crashes [\#300](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/300) ([plc-user](https://github.com/plc-user))
|
||||
- add terminal-names to connection in qet-file [\#297](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/297) ([plc-user](https://github.com/plc-user))
|
||||
- fix: editing SpinBoxes with keyboard lose focus [\#296](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/296) ([plc-user](https://github.com/plc-user))
|
||||
- Spanish lang update [\#295](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/295) ([joseyspain](https://github.com/joseyspain))
|
||||
- More spanish translations.Josey [\#294](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/294) ([joseyspain](https://github.com/joseyspain))
|
||||
- update German and English translations [\#293](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/293) ([plc-user](https://github.com/plc-user))
|
||||
- hide SVG background checkbox in print preferences [\#292](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/292) ([plc-user](https://github.com/plc-user))
|
||||
- fixed indentations of the remaining \*.cpp/\*.h files [\#291](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/291) ([plc-user](https://github.com/plc-user))
|
||||
- correct more indentations / whitespace [\#289](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/289) ([plc-user](https://github.com/plc-user))
|
||||
- update German and English translations [\#288](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/288) ([plc-user](https://github.com/plc-user))
|
||||
- some minor changes [\#286](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/286) ([plc-user](https://github.com/plc-user))
|
||||
- correct comments [\#285](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/285) ([plc-user](https://github.com/plc-user))
|
||||
- FIX SegFault: Disable menu-entry for DB-export when no project loaded [\#284](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/284) ([plc-user](https://github.com/plc-user))
|
||||
- changed some remaining "pt\_br" to "pt\_BR" [\#282](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/282) ([plc-user](https://github.com/plc-user))
|
||||
- add option "transparent background" in SVG-export [\#281](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/281) ([plc-user](https://github.com/plc-user))
|
||||
- Fix sizes [\#280](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/280) ([plc-user](https://github.com/plc-user))
|
||||
- added folder "company-titleblocks" \(incl. language-files\) [\#277](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/277) ([plc-user](https://github.com/plc-user))
|
||||
- update translations: de, en, nl [\#276](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/276) ([plc-user](https://github.com/plc-user))
|
||||
- fix: set default "company-element-dir" [\#275](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/275) ([plc-user](https://github.com/plc-user))
|
||||
- Fix Cmake build [\#273](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/273) ([De-Backer](https://github.com/De-Backer))
|
||||
- added "company-collection" as second user-collection [\#272](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/272) ([plc-user](https://github.com/plc-user))
|
||||
- corrected german texts for "line-style" [\#269](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/269) ([plc-user](https://github.com/plc-user))
|
||||
- Too many parts [\#268](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/268) ([scorpio810](https://github.com/scorpio810))
|
||||
- Merge Terminal strip to master [\#267](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/267) ([scorpio810](https://github.com/scorpio810))
|
||||
- Terminal strip [\#266](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/266) ([scorpio810](https://github.com/scorpio810))
|
||||
- Added new symbols [\#264](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/264) ([kamikazzyyyy](https://github.com/kamikazzyyyy))
|
||||
|
||||
## [0.9](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9) (2023-01-03)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2022/12/30...0.9)
|
||||
|
||||
## [0.9-dev-2022/12/30](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2022/12/30) (2022-12-30)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2022/08/15...0.9-dev-2022/12/30)
|
||||
|
||||
## [0.9-dev-2022/08/15](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2022/08/15) (2022-08-13)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2022/04/22...0.9-dev-2022/08/15)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Polylines always closed on dxf export [\#228](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/228)
|
||||
- Refreshing after making changes to elements [\#168](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/168)
|
||||
|
||||
## [9-dev-2022/04/22](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2022/04/22) (2022-04-09)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/09/09...9-dev-2022/04/22)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- File dialog should enforce suffix [\#206](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/206)
|
||||
- snap: Update stable release to core20 & introduce branch for stable releases [\#201](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/201)
|
||||
- Can we submit Flatpak to Flathub? [\#143](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/143)
|
||||
|
||||
## [9-dev-2021/09/09](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/09/09) (2021-09-08)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/06/28...9-dev-2021/09/09)
|
||||
|
||||
## [9-dev-2021/06/28](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/06/28) (2021-07-06)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/05/09...9-dev-2021/06/28)
|
||||
|
||||
## [9-dev-2021/05/09](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/05/09) (2021-05-09)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2021/05...9-dev-2021/05/09)
|
||||
|
||||
## [0.9-dev-2021/05](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2021/05) (2021-04-30)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8.0...0.9-dev-2021/05)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Rewrite how Properties are stored in the Project file [\#144](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/144) ([Murmele](https://github.com/Murmele))
|
||||
- Xml properties rebase2 [\#80](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/80) ([Murmele](https://github.com/Murmele))
|
||||
|
||||
## [0.8.0](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8.0) (2021-02-21)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev...0.8.0)
|
||||
|
||||
## [0.9-dev](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev) (2021-02-21)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8.rc...0.9-dev)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- QET font [\#110](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/110)
|
||||
|
||||
## [0.8.rc](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8.rc) (2020-12-01)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8-dev...0.8.rc)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- overlapping comparisons always evaluate to true [\#78](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/78)
|
||||
- New snap break HiDPI [\#41](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/41)
|
||||
|
||||
## [0.8-dev](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8-dev) (2019-08-06)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.7.0...0.8-dev)
|
||||
|
||||
## [0.7.0](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.7.0) (2019-07-17)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2a...0.7.0)
|
||||
|
||||
## [0.2a](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2a) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2b...0.2a)
|
||||
|
||||
## [0.2b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2b) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2rc1...0.2b)
|
||||
|
||||
## [0.2rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2rc1) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2rc2...0.2rc1)
|
||||
|
||||
## [0.2rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2rc2) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2...0.2rc2)
|
||||
|
||||
## [0.2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3a...0.2)
|
||||
|
||||
## [0.3a](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3a) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.11...0.3a)
|
||||
|
||||
## [0.11](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.11) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.21...0.11)
|
||||
|
||||
## [0.21](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.21) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.22...0.21)
|
||||
|
||||
## [0.22](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.22) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.70rc2...0.22)
|
||||
|
||||
## [0.70rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.70rc2) (2019-06-25)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.70rc1...0.70rc2)
|
||||
|
||||
## [0.70rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.70rc1) (2019-04-12)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.61...0.70rc1)
|
||||
|
||||
## [0.61](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.61) (2018-08-23)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6...0.61)
|
||||
|
||||
## [0.6](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6) (2018-03-06)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc4...0.6)
|
||||
|
||||
## [0.6rc4](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc4) (2018-01-12)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc3...0.6rc4)
|
||||
|
||||
## [0.6rc3](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc3) (2017-09-20)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc2...0.6rc3)
|
||||
|
||||
## [0.6rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc2) (2017-06-13)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc1...0.6rc2)
|
||||
|
||||
## [0.6rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc1) (2017-04-23)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5...0.6rc1)
|
||||
|
||||
## [0.5](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5) (2015-11-27)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5rc1...0.5)
|
||||
|
||||
## [0.5rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5rc1) (2015-10-30)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5b...0.5rc1)
|
||||
|
||||
## [0.5b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5b) (2015-10-04)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4...0.5b)
|
||||
|
||||
## [0.4](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4) (2015-02-20)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4rc2...0.4)
|
||||
|
||||
## [0.4rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4rc2) (2014-12-27)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4rc1...0.4rc2)
|
||||
|
||||
## [0.4rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4rc1) (2014-11-10)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4b...0.4rc1)
|
||||
|
||||
## [0.4b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4b) (2014-11-02)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3...0.4b)
|
||||
|
||||
## [0.3](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3) (2013-09-28)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3rc...0.3)
|
||||
|
||||
## [0.3rc](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3rc) (2013-09-10)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3b...0.3rc)
|
||||
|
||||
## [0.3b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3b) (2013-06-18)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1...0.3b)
|
||||
|
||||
## [0.1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1) (2008-03-08)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1rc1...0.1)
|
||||
|
||||
## [0.1rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1rc1) (2008-03-02)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1b...0.1rc1)
|
||||
|
||||
## [0.1b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1b) (2007-12-23)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/5cadf173c7b73460b62409c81568fc8999177d52...0.1b)
|
||||
|
||||
|
||||
|
||||
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
||||
2535
Doxyfile.bak
Normal file
@@ -4,6 +4,10 @@ without any warranty of fitness for your purpose or working.
|
||||
The usage, the modification and the integration of the elements into electric
|
||||
diagrams is allowed without any condition, whatever the final license of the
|
||||
diagrams is.
|
||||
|
||||
Permission is not granted to use this software or any of the associated files
|
||||
as sample data for the purposes of building machine learning models.
|
||||
|
||||
If you redistribute all or a part of the QElectroTech collection, with or
|
||||
without any modification, out of an electric diagram, you must respect the
|
||||
conditions of the CC-BY license:
|
||||
@@ -19,6 +23,9 @@ fonctionne.
|
||||
L'utilisation, la modification et l'intégration des éléments dans des schémas
|
||||
électriques est autorisée sans condition, quelle que soit la licence finale des
|
||||
schémas.
|
||||
L'autorisation n'est pas accordée pour utiliser ce logiciel ou l'un des fichiers associés
|
||||
comme exemples de données aux fins de création de modèles d’apprentissage automatique.
|
||||
|
||||
Si vous redistribuez tout ou partie de la collection QElectroTech, avec ou sans
|
||||
modification, en dehors d'un schéma électrique, vous devrez respecter les
|
||||
conditions de la licence CC-BY :
|
||||
@@ -27,6 +34,26 @@ disponible en ligne http://creativecommons.org/licenses/by/3.0/ ou par
|
||||
courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco,
|
||||
California 94105, USA.
|
||||
|
||||
[de]
|
||||
Die mit QElectroTech zur Verfügung gestellte Sammlung von Elementen wird ohne
|
||||
Gewährleistung der Eignung für einen bestimmten Zweck oder der Funktions-
|
||||
fähigkeit zur Verfügung gestellt.
|
||||
Die Verwendung, Modifikation und Integration der Elemente in elektrische
|
||||
Schaltpläne ist uneingeschränkt erlaubt, unabhängig von der endgültigen Lizenz
|
||||
der Schaltpläne.
|
||||
Es ist nicht gestattet, diese Software oder eine der zugehörigen Dateien
|
||||
als Beispieldaten für die Erstellung von Modellen für maschinelles Lernen
|
||||
zu verwenden.
|
||||
Wenn Sie die gesamte QElectroTech-Sammlung oder Teile davon, mit oder ohne
|
||||
Modifikationen, aus einem Schaltplan weitergeben, müssen Sie die Bedingungen
|
||||
der CC-BY-Lizenz einhalten.
|
||||
Dieses Werk steht unter einer Creative Commons Attribution 3.0 Lizenz.
|
||||
Eine Kopie dieser Lizenz finden Sie unter:
|
||||
http://creativecommons.org/licenses/by/3.0/
|
||||
oder senden Sie einen Brief an:
|
||||
Creative Commons, 171 Second Street, Suite 300,
|
||||
San Francisco, Kalifornien, 94105, USA.
|
||||
|
||||
[ru]
|
||||
Коллекция элементов, поставляемая вместе с QElectroTech, поставляется "как есть"
|
||||
и без каких-либо гарантий пригодности для той или иной цели или работы.
|
||||
@@ -187,3 +214,20 @@ QElectroTech と一緒に提供される要素コレクションは現状のま
|
||||
ライセンスのコピーを見るには http://creativecommons.org/licenses/by/3.0/ にアクセスするか、
|
||||
「Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.」に
|
||||
手紙を送ってください。
|
||||
|
||||
[ko]
|
||||
QElectroTech와 함께 제공되는 요소 컬렉션은 “있는 그대로(as is)” 제공되며,
|
||||
특정 목적에 대한 적합성이나 정상 동작에 대한 어떠한 보증도 제공되지 않습니다.
|
||||
요소의 사용, 수정 및 전기 도면에의 통합은 도면의 최종 라이선스와 관계없이
|
||||
아무런 조건 없이 허용됩니다.
|
||||
|
||||
본 소프트웨어 또는 관련 파일을 기계 학습(machine learning) 모델을 구축하기 위한
|
||||
샘플 데이터로 사용하는 것은 허용되지 않습니다.
|
||||
|
||||
전기 도면과 분리된 형태로 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.
|
||||
|
||||
33
INSTALL
@@ -1,3 +1,14 @@
|
||||
[ca]
|
||||
Dependències:
|
||||
libQt5 (paquets libqt5*)
|
||||
cupsys-bsd per imprimir
|
||||
|
||||
Com compilar:
|
||||
$ qmake (qmake-qt5 pels sistemes basats en Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[en]
|
||||
Requirements :
|
||||
libQt5 (see packages libqt5*)
|
||||
@@ -20,6 +31,17 @@ $ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[de]
|
||||
Abhängigkeiten:
|
||||
libQt5 (Pakete libqt5*)
|
||||
cupsys-bsd zum Drucken
|
||||
|
||||
Kompilieren:
|
||||
$ qmake (qmake-qt5 für Debian-basierende Systeme)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[ru]
|
||||
Зависимости:
|
||||
libQt5 (пакет libqt5*)
|
||||
@@ -53,17 +75,6 @@ $ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[ca]
|
||||
Dependències:
|
||||
libQt5 (paquets libqt5*)
|
||||
cupsys-bsd per imprimir
|
||||
|
||||
Com compilar:
|
||||
$ qmake (qmake-qt5 pels sistemes basats en Debian)
|
||||
$ make
|
||||
# umask 0022
|
||||
# make install
|
||||
|
||||
[cs]
|
||||
Požadavky :
|
||||
libQt5 (viz balíček libqt5*)
|
||||
|
||||
1
LICENSE
@@ -7,6 +7,7 @@
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
|
||||
6
README
@@ -1,3 +1,7 @@
|
||||
[ca]
|
||||
QElectroTech és una aplicació Qt5 per crear esquemes elèctrics.
|
||||
QET utilitza el format XML per als seus elements i esquemes i inclou un editor d'esquemes, un editor d'elements i un editor de caixetins.
|
||||
|
||||
[en]
|
||||
QElectroTech is a Qt5 application to design electric diagrams.
|
||||
It uses XML files for elements and diagrams, and includes both a diagram editor, a element editor, and an titleblock editor.
|
||||
@@ -8,7 +12,7 @@ QET utilise le format XML pour ses éléments et ses schémas et inclut un édit
|
||||
|
||||
[de]
|
||||
QElectroTech ist eine Qt5 Software, um Schaltpläne zu erstellen.
|
||||
QET benutzt das XML Format für seine Bauteile und seine Projekte, und beinhaltet einen Schaltplaneditor, einen Bauteileditor sowie einen Zeichnungskopfeditor.
|
||||
QET benutzt das XML Format für seine Bauteile und seine Projekte, und beinhaltet einen Schaltplaneditor, einen Bauteileditor sowie einen Schriftfeldeditor.
|
||||
|
||||
|
||||
[ru]
|
||||
|
||||
105
README.md
@@ -15,24 +15,27 @@ The main goal of the developers is to provide a libre, easy to use and effective
|
||||
|
||||
### Version
|
||||
|
||||
The current stable version is 0.70 and was released on 2019.07.13.
|
||||
Once it has been officialy released, the stable version is always frozen and is no longer developed.
|
||||
The current stable version is 0.100 and was released on 2026.01.25.
|
||||
Once it has been officially released, the stable version is always frozen and is no longer developed.
|
||||
|
||||
New functionalities, bug and issue fixings are further made in the development version (currently 0.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.100.1 or 0.200.0 if based on new Qt6 port), which can also be [downloaded](https://qelectrotech.org/download.php).
|
||||
|
||||
Users who want to test and take benefits from the last software implementations should use the development version. But... use it at your own risk, since things are sometimes broken or only 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 partially implemented until they are done!
|
||||
|
||||
### License
|
||||
|
||||
The software is licensed under [GNU/GPL](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html).
|
||||
You are free to use, copy, modify and redistribute it under the terms of the license.
|
||||
|
||||
|
||||
Like many other open source softwares, QElectroTech is provided as it is, without any warranty.
|
||||
Like many other open source software, QElectroTech is provided as is, without any warranty.
|
||||
|
||||
### Development / technical choices
|
||||
|
||||
The development follows the classical way of free and open source software: the source code, written by a community of users, is freely accessible.
|
||||
* Get sources and sub-modules
|
||||
```txt
|
||||
git clone --recursive https://github.com/qelectrotech/qelectrotech-source-mirror.git
|
||||
```
|
||||
|
||||
Here are the technical choices made for the software development:
|
||||
|
||||
@@ -40,11 +43,13 @@ Here are the technical choices made for the software development:
|
||||
* Libraries: Qt 5.x
|
||||
* [KF5 Framework](https://github.com/KDE)
|
||||
[Cmake](https://cmake.org/install/)
|
||||
[kcoreaddons](https://github.com/KDE/kcoreaddons)
|
||||
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons).
|
||||
[kcoreaddons](https://github.com/KDE/kcoreaddons/tree/kf5)
|
||||
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons/tree/kf5).
|
||||
* Coding language: [C++](https://en.wikipedia.org/wiki/C%2B%2B)
|
||||
* GUI translations: [Qt Linguist](http://doc.qt.io/qt-5/qtlinguist-index.html)
|
||||
* Version control: [GIT](https://git.tuxfamily.org/qet/qet.git/)
|
||||
* Version control: [GIT](https://github.com/qelectrotech/qelectrotech-source-mirror.git)
|
||||
* Doxygen documentation :[Doxygen](https://qelectrotech.github.io/qelectrotech-source-mirror/)
|
||||
* QtCreator qch doxygen :[QElectroTech.qch](https://github.com/qelectrotech/qelectrotech-source-mirror/blob/master/doc/QElectroTech.qch)
|
||||
* File format for projects, elements and titleblocks: [XML](http://www.w3schools.com/xml/xml_whatis.asp)
|
||||
* Main development platform: [GNU/Linux](http://getgnulinux.org/en/linux/)
|
||||
* Targeted platforms: Windows, GNU/Linux, Mac OS X, BSDs
|
||||
@@ -72,12 +77,12 @@ Take advantage of the modern GUI
|
||||
Toolbars and panels can be enabled/disabled, moved and displayed the way you want to work.
|
||||
Panels can be stacked on each other (as tabs) or docked on the sides (as docks) or completely separated from the main window (as windows).
|
||||
The GUI can fit to small or big screens, and even to multi-display configurations.
|
||||

|
||||

|
||||
|
||||
|
||||
The GUI of QElectroTech is translated in 19 languages.
|
||||
The GUI of QElectroTech is translated in 25 languages.
|
||||
You only need to restart the application for the new selected language to take effect.
|
||||

|
||||

|
||||
|
||||
Create technical documentation in professional quality
|
||||
|
||||
@@ -86,56 +91,56 @@ You can set vertical and horizontal headers (printed rulers) individually on and
|
||||
|
||||
Titlebocks can be created and edited with the embedded titleblock editor to perfectly suit your needs.
|
||||
Custom variables can be defined to display the informations you wish in the titleblock.
|
||||

|
||||

|
||||
|
||||
With only 2 mouse clicks you can add a full automatic generated table of content.
|
||||
Changes in the documentation are updated on the fly.
|
||||

|
||||

|
||||
|
||||
Choose from more than 7.000 symbols...
|
||||
Choose from more than 8.200 symbols...
|
||||
The embedded QET collection contains a rich library of electric, logic, pneumatic, hydraulic and fluid symbols.
|
||||
The library grows at every new release thanks to an active user community.
|
||||

|
||||

|
||||
|
||||
...or create your own collection
|
||||
|
||||
The embedded element editor is a nice tool to create your own elements (symbols or anything else).
|
||||
Your own elements are stored in the user collection.
|
||||

|
||||

|
||||
|
||||
Quickly find what you need
|
||||
|
||||
All collections can quickly be searched with the integrated search engine.
|
||||
Furthermore, the search request can be restricted to the folder of your choice.
|
||||

|
||||

|
||||
|
||||
Easily draw complex schematics
|
||||
|
||||
To add an element on the drawing area, it only needs a drag & drop from the collection panel.
|
||||

|
||||

|
||||
|
||||
Elements are automatically connected if they are aligned, or connected from point to point by pulling a conductor with the mouse.
|
||||

|
||||

|
||||
|
||||
The path of every conductor can be modified by moving its handles with the mouse.
|
||||

|
||||

|
||||
And of course, you can accurately zoom with the mouse wheel over the drawing area to catch the smallest details.
|
||||
|
||||
Link elements together to create cross references
|
||||
|
||||
Several types of element can be linked together to display a cross reference text.
|
||||
All types of cross references are automatically updated on the fly, you don't need to think about them if you make changes.
|
||||

|
||||

|
||||
To speed up your work, linkable elements are easily searched and shown.
|
||||

|
||||

|
||||
|
||||
|
||||
Export informations to a parts list
|
||||
Informations of all elements in the project can be exported to a .csv file that can be read and edited by any spreadsheet application.
|
||||

|
||||

|
||||
|
||||
This way, you can make your own parts list or bill of material using the full power of a spreadsheet program.
|
||||

|
||||

|
||||
Print to pdf and/or export your work to images
|
||||
|
||||
Your whole documentation or only selected parts of it can be printed to a real printer or to a pdf file.
|
||||
@@ -153,6 +158,52 @@ Alternatively, you can export to vector (svg) or pixel (png, jpg, bmp) format im
|
||||
* conductors num can be exported to csv file.
|
||||
* ***
|
||||
|
||||
Nomenclature
|
||||
|
||||
A new nomenclature tool appears in the menu: project -> Add a nomenclature.
|
||||
The nomenclature is presented in the form of a configurable table separated into two parts: the display (the form) and the content (the background).
|
||||
- Display: the size and position of the table, the margins between text and the table cell, the alignment of the text in the cells and the font. The configuration of the table headers and the table itself are separate.
|
||||
- Content: the information to display in the table and the order in which it should be displayed.
|
||||
|
||||

|
||||
|
||||
In order to speed up the establishment of a nomenclature, it is possible to export / import the display and content configurations separately. This is the "Configuration" part that can be seen in the photos above.
|
||||
|
||||
Behind the scenes, an SQLite database does the work, so setting up the content is nothing more or less than an SQL query created using a dialog (screenshot by right).
|
||||
The SQL query is configured as follows (from top to bottom in the screenshot):
|
||||
- “Available information”: the information to display;
|
||||
- "Filter": filter the information (is not empty, is empty, contains, does not contain, is equal to, is not equal to) only one filter can be applied per information, it is not possible combine several;
|
||||
- "Type of elements": allows you to filter on what type of element you want to obtain information.
|
||||
|
||||
At the bottom, a checkmark "SQL query" allows you to edit a personalized query, if the basic options are not sufficient.
|
||||
|
||||
When a nomenclature is too large to be contained in a single folio, it is possible to separate it on several folios, the tables of each folio are then linked together. When creating a nomenclature, this option is activated by default, which has the effect of adding the necessary number of folios, adding a table in each of them and linking them together.
|
||||
|
||||
Finally two buttons are available in the property panel:
|
||||
- "Fit the table to the folio": positions and adjusts the size and determines the number of rows in the table in relation to the folio;
|
||||
- "Apply geometry to all tables linked to this one": applies the three properties mentioned above to all linked tables in order to save time and maintain aesthetic consistency.
|
||||
|
||||
And to finish a table
|
||||

|
||||
|
||||
|
||||
Summary
|
||||
|
||||
The old summary has been completely removed from the code in order to make room for the new one which is exactly the same as the nomenclature (a large amount of the code is common), with the exception of the SQL query (and its dialog to configure it) which offers specific information for editing a summary.
|
||||
|
||||
Export of the internal database
|
||||
|
||||
The database used by the nomenclature and the summary can be exported in a “.sqlite” file.
|
||||
Currently this is irrelevant, as the function was created during development for debugging purposes, we left it.
|
||||
Note that the database will become increasingly important in the future of Qet.
|
||||
|
||||
|
||||
Export of the wiring list
|
||||
|
||||
In order to be able to use the wiring number printers more easily, the names of conductors can be exported in CSV format, the export respects the quantity of conductors in order to print the right quantity of numbers, for example a potential numbered 240 composed of 3 wires will give 6 × 240 (2 numbers per wire × 3 wires) in the CSV.
|
||||
|
||||
|
||||
|
||||
### Story
|
||||
|
||||
The QElectroTech project was founded in 2007 by two french students, Xavier and Benoit.
|
||||
@@ -172,7 +223,7 @@ Nowadays, QET is not only used by many individuals, teachers and students but al
|
||||
If you love QElectroTech, you can help developers to buy new hardware to test
|
||||
and implement new features. Thanks in advance for your generous donations.
|
||||
|
||||
For more information, look at [Paypal](https://www.paypal.com/donate/?token=rqf80cP0Ck1F2jn4Y46G7tIPv9bq7x0crXkwt3GZ6OZYG6ihJYi8lZxmmQ8itsFwMUdd1G&country.x=GB&locale.x=GB)
|
||||
or at [leetchi.com](https://www.leetchi.com/c/qelectroteck)
|
||||
For more information, look at [Paypal](https://www.paypal.com/donate/?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC&ssrt=1694606609672)
|
||||
|
||||
|
||||
|
||||
|
||||
1
SingleApplication
Submodule
@@ -1,228 +0,0 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
__3.0.18__
|
||||
----------
|
||||
|
||||
* Fallback to standard QApplication class on iOS and Android systems where
|
||||
the library is not supported.
|
||||
|
||||
* Added Build CI tests to verify the library builds successfully on Linux, Windows and MacOS across multiple Qt versions.
|
||||
|
||||
_Anton Filimonov_
|
||||
|
||||
__3.0.17__
|
||||
----------
|
||||
|
||||
* Fixed compilation warning/error caused by `geteuid()` on unix based systems.
|
||||
|
||||
_Iakov Kirilenko_
|
||||
|
||||
* Added CMake support
|
||||
|
||||
_Hennadii Chernyshchyk_
|
||||
|
||||
__3.0.16__
|
||||
----------
|
||||
|
||||
* Use geteuid and getpwuid to get username on Unix, fallback to environment variable.
|
||||
|
||||
_Jonas Kvinge_
|
||||
|
||||
__3.0.15__
|
||||
----------
|
||||
|
||||
* Bug Fix: sendMessage() might return false even though data was actually written.
|
||||
|
||||
_Jonas Kvinge_
|
||||
|
||||
__3.0.14__
|
||||
----------
|
||||
|
||||
* Fixed uninitialised variables in the `SingleApplicationPrivate` constructor.
|
||||
|
||||
__3.0.13a__
|
||||
----------
|
||||
|
||||
* Process socket events asynchronously
|
||||
* Fix undefined variable error on Windows
|
||||
|
||||
_Francis Giraldeau_
|
||||
|
||||
__3.0.12a__
|
||||
----------
|
||||
|
||||
* Removed signal handling.
|
||||
|
||||
__3.0.11a__
|
||||
----------
|
||||
|
||||
* Fixed bug where the message sent by the second process was not received
|
||||
correctly when the message is sent immediately following a connection.
|
||||
|
||||
_Francis Giraldeau_
|
||||
|
||||
* Refactored code and implemented shared memory block consistency checks
|
||||
via `qChecksum()` (CRC-16).
|
||||
* Explicit `qWarning` and `qCritical` when the library is unable to initialise
|
||||
correctly.
|
||||
|
||||
__3.0.10__
|
||||
----------
|
||||
|
||||
* Removed C style casts and eliminated all clang warnings. Fixed `instanceId`
|
||||
reading from only one byte in the message deserialization. Cleaned up
|
||||
serialization code using `QDataStream`. Changed connection type to use
|
||||
`quint8 enum` rather than `char`.
|
||||
* Renamed `SingleAppConnectionType` to `ConnectionType`. Added initialization
|
||||
values to all `ConnectionType` enum cases.
|
||||
|
||||
_Jedidiah Buck McCready_
|
||||
|
||||
__3.0.9__
|
||||
---------
|
||||
|
||||
* Added SingleApplicationPrivate::primaryPid() as a solution to allow
|
||||
bringing the primary window of an application to the foreground on
|
||||
Windows.
|
||||
|
||||
_Eelco van Dam from Peacs BV_
|
||||
|
||||
__3.0.8__
|
||||
---------
|
||||
|
||||
* Bug fix - changed QApplication::instance() to QCoreApplication::instance()
|
||||
|
||||
_Evgeniy Bazhenov_
|
||||
|
||||
__3.0.7a__
|
||||
----------
|
||||
|
||||
* Fixed compilation error with Mingw32 in MXE thanks to Vitaly Tonkacheyev.
|
||||
* Removed QMutex used for thread safe behaviour. The implementation now uses
|
||||
QCoreApplication::instance() to get an instance to SingleApplication for
|
||||
memory deallocation.
|
||||
|
||||
__3.0.6a__
|
||||
----------
|
||||
|
||||
* Reverted GetUserName API usage on Windows. Fixed bug with missing library.
|
||||
* Fixed bug in the Calculator example, preventing it's window to be raised
|
||||
on Windows.
|
||||
|
||||
Special thanks to Charles Gunawan.
|
||||
|
||||
__3.0.5a__
|
||||
----------
|
||||
|
||||
* Fixed a memory leak in the SingleApplicationPrivate destructor.
|
||||
|
||||
_Sergei Moiseev_
|
||||
|
||||
__3.0.4a__
|
||||
----------
|
||||
|
||||
* Fixed shadow and uninitialised variable warnings.
|
||||
|
||||
_Paul Walmsley_
|
||||
|
||||
__3.0.3a__
|
||||
----------
|
||||
|
||||
* Removed Microsoft Windows specific code for getting username due to
|
||||
multiple problems and compiler differences on Windows platforms. On
|
||||
Windows the shared memory block in User mode now includes the user's
|
||||
home path (which contains the user's username).
|
||||
|
||||
* Explicitly getting absolute path of the user's home directory as on Unix
|
||||
a relative path (`~`) may be returned.
|
||||
|
||||
__3.0.2a__
|
||||
----------
|
||||
|
||||
* Fixed bug on Windows when username containing wide characters causes the
|
||||
library to crash.
|
||||
|
||||
_Le Liu_
|
||||
|
||||
__3.0.1a__
|
||||
----------
|
||||
|
||||
* Allows the application path and version to be excluded from the server name
|
||||
hash. The following flags were added for this purpose:
|
||||
* `SingleApplication::Mode::ExcludeAppVersion`
|
||||
* `SingleApplication::Mode::ExcludeAppPath`
|
||||
* Allow a non elevated process to connect to a local server created by an
|
||||
elevated process run by the same user on Windows
|
||||
* Fixes a problem with upper case letters in paths on Windows
|
||||
|
||||
_Le Liu_
|
||||
|
||||
__v3.0a__
|
||||
---------
|
||||
|
||||
* Deprecated secondary instances count.
|
||||
* Added a sendMessage() method to send a message to the primary instance.
|
||||
* Added a receivedMessage() signal, emitted when a message is received from a
|
||||
secondary instance.
|
||||
* The SingleApplication constructor's third parameter is now a bool
|
||||
specifying if the current instance should be allowed to run as a secondary
|
||||
instance if there is already a primary instance.
|
||||
* The SingleApplication constructor accept a fourth parameter specifying if
|
||||
the SingleApplication block should be User-wide or System-wide.
|
||||
* SingleApplication no longer relies on `applicationName` and
|
||||
`organizationName` to be set. It instead concatenates all of the following
|
||||
data and computes a `SHA256` hash which is used as the key of the
|
||||
`QSharedMemory` block and the `QLocalServer`. Since at least
|
||||
`applicationFilePath` is always present there is no need to explicitly set
|
||||
any of the following prior to initialising `SingleApplication`.
|
||||
* `QCoreApplication::applicationName`
|
||||
* `QCoreApplication::applicationVersion`
|
||||
* `QCoreApplication::applicationFilePath`
|
||||
* `QCoreApplication::organizationName`
|
||||
* `QCoreApplication::organizationDomain`
|
||||
* User name or home directory path if in User mode
|
||||
* The primary instance is no longer notified when a secondary instance had
|
||||
been started by default. A `Mode` flag for this feature exists.
|
||||
* Added `instanceNumber()` which represents a unique identifier for each
|
||||
secondary instance started. When called from the primary instance will
|
||||
return `0`.
|
||||
|
||||
__v2.4__
|
||||
--------
|
||||
|
||||
* Stability improvements
|
||||
* Support for secondary instances.
|
||||
* The library now recovers safely after the primary process has crashed
|
||||
and the shared memory had not been deleted.
|
||||
|
||||
__v2.3__
|
||||
--------
|
||||
|
||||
* Improved pimpl design and inheritance safety.
|
||||
|
||||
_Vladislav Pyatnichenko_
|
||||
|
||||
__v2.2__
|
||||
--------
|
||||
|
||||
* The `QAPPLICATION_CLASS` macro can now be defined in the file including the
|
||||
Single Application header or with a `DEFINES+=` statement in the project file.
|
||||
|
||||
__v2.1__
|
||||
--------
|
||||
|
||||
* A race condition can no longer occur when starting two processes nearly
|
||||
simultaneously.
|
||||
|
||||
Fix issue [#3](https://github.com/itay-grudev/SingleApplication/issues/3)
|
||||
|
||||
__v2.0__
|
||||
--------
|
||||
|
||||
* SingleApplication is now being passed a reference to `argc` instead of a
|
||||
copy.
|
||||
|
||||
Fix issue [#1](https://github.com/itay-grudev/SingleApplication/issues/1)
|
||||
|
||||
* Improved documentation.
|
||||
@@ -1,43 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.1.0)
|
||||
|
||||
project(SingleApplication)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR 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
|
||||
singleapplication.cpp
|
||||
singleapplication_p.cpp
|
||||
)
|
||||
|
||||
# Find dependencies
|
||||
find_package(Qt5Network)
|
||||
if(QAPPLICATION_CLASS STREQUAL QApplication)
|
||||
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)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets)
|
||||
elseif(QAPPLICATION_CLASS STREQUAL QGuiApplication)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Gui)
|
||||
else()
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE advapi32)
|
||||
endif()
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
@@ -1,24 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Itay Grudev 2015 - 2016
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
Note: Some of the examples include code not distributed under the terms of the
|
||||
MIT License.
|
||||
@@ -1,277 +0,0 @@
|
||||
SingleApplication
|
||||
=================
|
||||
|
||||
This is a replacement of the QtSingleApplication for `Qt5`.
|
||||
|
||||
Keeps the Primary Instance of your Application and kills each subsequent
|
||||
instances. It can (if enabled) spawn secondary (non-related to the primary)
|
||||
instances and can send data to the primary instance from secondary instances.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
The `SingleApplication` class inherits from whatever `Q[Core|Gui]Application`
|
||||
class you specify via the `QAPPLICATION_CLASS` macro (`QCoreApplication` is the
|
||||
default). Further usage is similar to the use of the `Q[Core|Gui]Application`
|
||||
classes.
|
||||
|
||||
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
|
||||
class:
|
||||
|
||||
```cpp
|
||||
#include <QApplication>
|
||||
#include <SingleApplication.h>
|
||||
|
||||
int main( int argc, char* argv[] )
|
||||
{
|
||||
SingleApplication app( argc, argv );
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
```
|
||||
|
||||
To include the library files I would recommend that you add it as a git
|
||||
submodule to your project and include it's contents with a `.pri` file. Here is
|
||||
how:
|
||||
|
||||
```bash
|
||||
git submodule add git@github.com:itay-grudev/SingleApplication.git singleapplication
|
||||
```
|
||||
|
||||
**Qmake:**
|
||||
|
||||
Then include the `singleapplication.pri` file in your `.pro` project file.
|
||||
|
||||
```qmake
|
||||
include(singleapplication/singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QApplication
|
||||
```
|
||||
|
||||
**CMake:**
|
||||
|
||||
Then include the subdirectory in your `CMakeLists.txt` project file.
|
||||
|
||||
```cmake
|
||||
set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication")
|
||||
add_subdirectory(src/third-party/singleapplication)
|
||||
```
|
||||
|
||||
Also don't forget to specify which `QCoreApplication` class your app is using if it
|
||||
is not `QCoreApplication` as in examples above.
|
||||
|
||||
The `Instance Started` signal
|
||||
------------------------
|
||||
|
||||
The SingleApplication class implements a `instanceStarted()` signal. You can
|
||||
bind to that signal to raise your application's window when a new instance had
|
||||
been started, for example.
|
||||
|
||||
```cpp
|
||||
// window is a QWindow instance
|
||||
QObject::connect(
|
||||
&app,
|
||||
&SingleApplication::instanceStarted,
|
||||
&window,
|
||||
&QWindow::raise
|
||||
);
|
||||
```
|
||||
|
||||
Using `SingleApplication::instance()` is a neat way to get the
|
||||
`SingleApplication` instance for binding to it's signals anywhere in your
|
||||
program.
|
||||
|
||||
__Note:__ On Windows the ability to bring the application windows to the
|
||||
foreground is restricted. See [Windows specific implementations](Windows.md)
|
||||
for a workaround and an example implementation.
|
||||
|
||||
|
||||
Secondary Instances
|
||||
-------------------
|
||||
|
||||
If you want to be able to launch additional Secondary Instances (not related to
|
||||
your Primary Instance) you have to enable that with the third parameter of the
|
||||
`SingleApplication` constructor. The default is `false` meaning no Secondary
|
||||
Instances. Here is an example of how you would start a Secondary Instance send
|
||||
a message with the command line arguments to the primary instance and then shut
|
||||
down.
|
||||
|
||||
```cpp
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
SingleApplication app( argc, argv, true );
|
||||
|
||||
if( app.isSecondary() ) {
|
||||
app.sendMessage( app.arguments().join(' ')).toUtf8() );
|
||||
app.exit( 0 );
|
||||
}
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
```
|
||||
|
||||
*__Note:__ A secondary instance won't cause the emission of the
|
||||
`instanceStarted()` signal by default. See `SingleApplication::Mode` for more
|
||||
details.*
|
||||
|
||||
You can check whether your instance is a primary or secondary with the following
|
||||
methods:
|
||||
|
||||
```cpp
|
||||
app.isPrimary();
|
||||
// or
|
||||
app.isSecondary();
|
||||
```
|
||||
|
||||
*__Note:__ If your Primary Instance is terminated a newly launched instance
|
||||
will replace the Primary one even if the Secondary flag has been set.*
|
||||
|
||||
API
|
||||
---
|
||||
|
||||
### Members
|
||||
|
||||
```cpp
|
||||
SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 100 )
|
||||
```
|
||||
|
||||
Depending on whether `allowSecondary` is set, this constructor may terminate
|
||||
your app if there is already a primary instance running. Additional `Options`
|
||||
can be specified to set whether the SingleApplication block should work
|
||||
user-wide or system-wide. Additionally the `Mode::SecondaryNotification` may be
|
||||
used to notify the primary instance whenever a secondary instance had been
|
||||
started (disabled by default). `timeout` specifies the maximum time in
|
||||
milliseconds to wait for blocking operations.
|
||||
|
||||
*__Note:__ `argc` and `argv` may be changed as Qt removes arguments that it
|
||||
recognizes.*
|
||||
|
||||
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
|
||||
and the secondary instance.*
|
||||
|
||||
*__Note:__ Operating system can restrict the shared memory blocks to the same
|
||||
user, in which case the User/System modes will have no effect and the block will
|
||||
be user wide.*
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
bool SingleApplication::sendMessage( QByteArray message, int timeout = 100 )
|
||||
```
|
||||
|
||||
Sends `message` to the Primary Instance. Uses `timeout` as a the maximum timeout
|
||||
in milliseconds for blocking functions
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
bool SingleApplication::isPrimary()
|
||||
```
|
||||
|
||||
Returns if the instance is the primary instance.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
bool SingleApplication::isSecondary()
|
||||
```
|
||||
Returns if the instance is a secondary instance.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
quint32 SingleApplication::instanceId()
|
||||
```
|
||||
|
||||
Returns a unique identifier for the current instance.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
qint64 SingleApplication::primaryPid()
|
||||
```
|
||||
|
||||
Returns the process ID (PID) of the primary instance.
|
||||
|
||||
### Signals
|
||||
|
||||
```cpp
|
||||
void SingleApplication::instanceStarted()
|
||||
```
|
||||
|
||||
Triggered whenever a new instance had been started, except for secondary
|
||||
instances if the `Mode::SecondaryNotification` flag is not specified.
|
||||
|
||||
---
|
||||
|
||||
```cpp
|
||||
void SingleApplication::receivedMessage( quint32 instanceId, QByteArray message )
|
||||
```
|
||||
|
||||
Triggered whenever there is a message received from a secondary instance.
|
||||
|
||||
---
|
||||
|
||||
### Flags
|
||||
|
||||
```cpp
|
||||
enum SingleApplication::Mode
|
||||
```
|
||||
|
||||
* `Mode::User` - The SingleApplication block should apply user wide. This adds
|
||||
user specific data to the key used for the shared memory and server name.
|
||||
This is the default functionality.
|
||||
* `Mode::System` – The SingleApplication block applies system-wide.
|
||||
* `Mode::SecondaryNotification` – Whether to trigger `instanceStarted()` even
|
||||
whenever secondary instances are started.
|
||||
* `Mode::ExcludeAppPath` – Excludes the application path from the server name
|
||||
(and memory block) hash.
|
||||
* `Mode::ExcludeAppVersion` – Excludes the application version from the server
|
||||
name (and memory block) hash.
|
||||
|
||||
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
|
||||
and the secondary instance.*
|
||||
|
||||
*__Note:__ Operating system can restrict the shared memory blocks to the same
|
||||
user, in which case the User/System modes will have no effect and the block will
|
||||
be user wide.*
|
||||
|
||||
---
|
||||
|
||||
Versioning
|
||||
----------
|
||||
|
||||
Each major version introduces either very significant changes or is not
|
||||
backwards compatible with the previous version. Minor versions only add
|
||||
additional features, bug fixes or performance improvements and are backwards
|
||||
compatible with the previous release. See [`CHANGELOG.md`](CHANGELOG.md) for
|
||||
more details.
|
||||
|
||||
Implementation
|
||||
--------------
|
||||
|
||||
The library is implemented with a QSharedMemory block which is thread safe and
|
||||
guarantees a race condition will not occur. It also uses a QLocalSocket to
|
||||
notify the main process that a new instance had been spawned and thus invoke the
|
||||
`instanceStarted()` signal and for messaging the primary instance.
|
||||
|
||||
Additionally the library can recover from being forcefully killed on *nix
|
||||
systems and will reset the memory block given that there are no other
|
||||
instances running.
|
||||
|
||||
License
|
||||
-------
|
||||
This library and it's supporting documentation are released under
|
||||
`The MIT License (MIT)` with the exception of the Qt calculator examples which
|
||||
is distributed under the BSD license.
|
||||
@@ -1,46 +0,0 @@
|
||||
Windows Specific Implementations
|
||||
================================
|
||||
|
||||
Setting the foreground window
|
||||
-----------------------------
|
||||
|
||||
In the `instanceStarted()` example in the `README` we demonstrated how an
|
||||
application can bring it's primary instance window whenever a second copy
|
||||
of the application is started.
|
||||
|
||||
On Windows the ability to bring the application windows to the foreground is
|
||||
restricted, see [`AllowSetForegroundWindow()`][AllowSetForegroundWindow] for more
|
||||
details.
|
||||
|
||||
The background process (the primary instance) can bring its windows to the
|
||||
foreground if it is allowed by the current foreground process (the secondary
|
||||
instance). To bypass this `SingleApplication` must be initialized with the
|
||||
`allowSecondary` parameter set to `true` and the `options` parameter must
|
||||
include `Mode::SecondaryNotification`, See `SingleApplication::Mode` for more
|
||||
details.
|
||||
|
||||
Here is an example:
|
||||
|
||||
```cpp
|
||||
if( app.isSecondary() ) {
|
||||
// This API requires LIBS += User32.lib to be added to the project
|
||||
AllowSetForegroundWindow( DWORD( app.primaryPid() ) );
|
||||
}
|
||||
|
||||
if( app.isPrimary() ) {
|
||||
QObject::connect(
|
||||
&app,
|
||||
&SingleApplication::instanceStarted,
|
||||
this,
|
||||
&App::instanceStarted
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
```cpp
|
||||
void App::instanceStarted() {
|
||||
QApplication::setActiveWindow( [window/widget to set to the foreground] );
|
||||
}
|
||||
```
|
||||
|
||||
[AllowSetForegroundWindow]: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632668.aspx
|
||||
@@ -1,5 +0,0 @@
|
||||
# Single Application implementation
|
||||
include(../../singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QCoreApplication
|
||||
|
||||
SOURCES += main.cpp
|
||||
@@ -1,9 +0,0 @@
|
||||
#include <singleapplication.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Allow secondary instances
|
||||
SingleApplication app( argc, argv );
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtWidgets>
|
||||
|
||||
#include "button.h"
|
||||
|
||||
//! [0]
|
||||
Button::Button(const QString &text, QWidget *parent)
|
||||
: QToolButton(parent)
|
||||
{
|
||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
setText(text);
|
||||
}
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
QSize Button::sizeHint() const
|
||||
//! [1] //! [2]
|
||||
{
|
||||
QSize size = QToolButton::sizeHint();
|
||||
size.rheight() += 20;
|
||||
size.rwidth() = qMax(size.width(), size.height());
|
||||
return size;
|
||||
}
|
||||
//! [2]
|
||||
@@ -1,68 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef BUTTON_H
|
||||
#define BUTTON_H
|
||||
|
||||
#include <QToolButton>
|
||||
|
||||
//! [0]
|
||||
class Button : public QToolButton
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Button(const QString &text, QWidget *parent = 0);
|
||||
|
||||
QSize sizeHint() const Q_DECL_OVERRIDE;
|
||||
};
|
||||
//! [0]
|
||||
|
||||
#endif
|
||||
@@ -1,406 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtWidgets>
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#include "button.h"
|
||||
#include "calculator.h"
|
||||
|
||||
//! [0]
|
||||
Calculator::Calculator(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
sumInMemory = 0.0;
|
||||
sumSoFar = 0.0;
|
||||
factorSoFar = 0.0;
|
||||
waitingForOperand = true;
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
display = new QLineEdit("0");
|
||||
//! [1] //! [2]
|
||||
display->setReadOnly(true);
|
||||
display->setAlignment(Qt::AlignRight);
|
||||
display->setMaxLength(15);
|
||||
|
||||
QFont font = display->font();
|
||||
font.setPointSize(font.pointSize() + 8);
|
||||
display->setFont(font);
|
||||
//! [2]
|
||||
|
||||
//! [4]
|
||||
for (int i = 0; i < NumDigitButtons; ++i) {
|
||||
digitButtons[i] = createButton(QString::number(i), SLOT(digitClicked()));
|
||||
}
|
||||
|
||||
Button *pointButton = createButton(tr("."), SLOT(pointClicked()));
|
||||
Button *changeSignButton = createButton(tr("\302\261"), SLOT(changeSignClicked()));
|
||||
|
||||
Button *backspaceButton = createButton(tr("Backspace"), SLOT(backspaceClicked()));
|
||||
Button *clearButton = createButton(tr("Clear"), SLOT(clear()));
|
||||
Button *clearAllButton = createButton(tr("Clear All"), SLOT(clearAll()));
|
||||
|
||||
Button *clearMemoryButton = createButton(tr("MC"), SLOT(clearMemory()));
|
||||
Button *readMemoryButton = createButton(tr("MR"), SLOT(readMemory()));
|
||||
Button *setMemoryButton = createButton(tr("MS"), SLOT(setMemory()));
|
||||
Button *addToMemoryButton = createButton(tr("M+"), SLOT(addToMemory()));
|
||||
|
||||
Button *divisionButton = createButton(tr("\303\267"), SLOT(multiplicativeOperatorClicked()));
|
||||
Button *timesButton = createButton(tr("\303\227"), SLOT(multiplicativeOperatorClicked()));
|
||||
Button *minusButton = createButton(tr("-"), SLOT(additiveOperatorClicked()));
|
||||
Button *plusButton = createButton(tr("+"), SLOT(additiveOperatorClicked()));
|
||||
|
||||
Button *squareRootButton = createButton(tr("Sqrt"), SLOT(unaryOperatorClicked()));
|
||||
Button *powerButton = createButton(tr("x\302\262"), SLOT(unaryOperatorClicked()));
|
||||
Button *reciprocalButton = createButton(tr("1/x"), SLOT(unaryOperatorClicked()));
|
||||
Button *equalButton = createButton(tr("="), SLOT(equalClicked()));
|
||||
//! [4]
|
||||
|
||||
//! [5]
|
||||
QGridLayout *mainLayout = new QGridLayout;
|
||||
//! [5] //! [6]
|
||||
mainLayout->setSizeConstraint(QLayout::SetFixedSize);
|
||||
mainLayout->addWidget(display, 0, 0, 1, 6);
|
||||
mainLayout->addWidget(backspaceButton, 1, 0, 1, 2);
|
||||
mainLayout->addWidget(clearButton, 1, 2, 1, 2);
|
||||
mainLayout->addWidget(clearAllButton, 1, 4, 1, 2);
|
||||
|
||||
mainLayout->addWidget(clearMemoryButton, 2, 0);
|
||||
mainLayout->addWidget(readMemoryButton, 3, 0);
|
||||
mainLayout->addWidget(setMemoryButton, 4, 0);
|
||||
mainLayout->addWidget(addToMemoryButton, 5, 0);
|
||||
|
||||
for (int i = 1; i < NumDigitButtons; ++i) {
|
||||
int row = ((9 - i) / 3) + 2;
|
||||
int column = ((i - 1) % 3) + 1;
|
||||
mainLayout->addWidget(digitButtons[i], row, column);
|
||||
}
|
||||
|
||||
mainLayout->addWidget(digitButtons[0], 5, 1);
|
||||
mainLayout->addWidget(pointButton, 5, 2);
|
||||
mainLayout->addWidget(changeSignButton, 5, 3);
|
||||
|
||||
mainLayout->addWidget(divisionButton, 2, 4);
|
||||
mainLayout->addWidget(timesButton, 3, 4);
|
||||
mainLayout->addWidget(minusButton, 4, 4);
|
||||
mainLayout->addWidget(plusButton, 5, 4);
|
||||
|
||||
mainLayout->addWidget(squareRootButton, 2, 5);
|
||||
mainLayout->addWidget(powerButton, 3, 5);
|
||||
mainLayout->addWidget(reciprocalButton, 4, 5);
|
||||
mainLayout->addWidget(equalButton, 5, 5);
|
||||
setLayout(mainLayout);
|
||||
|
||||
setWindowTitle(tr("Calculator"));
|
||||
}
|
||||
//! [6]
|
||||
|
||||
//! [7]
|
||||
void Calculator::digitClicked()
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
int digitValue = clickedButton->text().toInt();
|
||||
if (display->text() == "0" && digitValue == 0.0)
|
||||
return;
|
||||
|
||||
if (waitingForOperand) {
|
||||
display->clear();
|
||||
waitingForOperand = false;
|
||||
}
|
||||
display->setText(display->text() + QString::number(digitValue));
|
||||
}
|
||||
//! [7]
|
||||
|
||||
//! [8]
|
||||
void Calculator::unaryOperatorClicked()
|
||||
//! [8] //! [9]
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
QString clickedOperator = clickedButton->text();
|
||||
double operand = display->text().toDouble();
|
||||
double result = 0.0;
|
||||
|
||||
if (clickedOperator == tr("Sqrt")) {
|
||||
if (operand < 0.0) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
result = std::sqrt(operand);
|
||||
} else if (clickedOperator == tr("x\302\262")) {
|
||||
result = std::pow(operand, 2.0);
|
||||
} else if (clickedOperator == tr("1/x")) {
|
||||
if (operand == 0.0) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
result = 1.0 / operand;
|
||||
}
|
||||
display->setText(QString::number(result));
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [9]
|
||||
|
||||
//! [10]
|
||||
void Calculator::additiveOperatorClicked()
|
||||
//! [10] //! [11]
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
QString clickedOperator = clickedButton->text();
|
||||
double operand = display->text().toDouble();
|
||||
|
||||
//! [11] //! [12]
|
||||
if (!pendingMultiplicativeOperator.isEmpty()) {
|
||||
//! [12] //! [13]
|
||||
if (!calculate(operand, pendingMultiplicativeOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
display->setText(QString::number(factorSoFar));
|
||||
operand = factorSoFar;
|
||||
factorSoFar = 0.0;
|
||||
pendingMultiplicativeOperator.clear();
|
||||
}
|
||||
|
||||
//! [13] //! [14]
|
||||
if (!pendingAdditiveOperator.isEmpty()) {
|
||||
//! [14] //! [15]
|
||||
if (!calculate(operand, pendingAdditiveOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
display->setText(QString::number(sumSoFar));
|
||||
} else {
|
||||
sumSoFar = operand;
|
||||
}
|
||||
|
||||
//! [15] //! [16]
|
||||
pendingAdditiveOperator = clickedOperator;
|
||||
//! [16] //! [17]
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [17]
|
||||
|
||||
//! [18]
|
||||
void Calculator::multiplicativeOperatorClicked()
|
||||
{
|
||||
Button *clickedButton = qobject_cast<Button *>(sender());
|
||||
QString clickedOperator = clickedButton->text();
|
||||
double operand = display->text().toDouble();
|
||||
|
||||
if (!pendingMultiplicativeOperator.isEmpty()) {
|
||||
if (!calculate(operand, pendingMultiplicativeOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
display->setText(QString::number(factorSoFar));
|
||||
} else {
|
||||
factorSoFar = operand;
|
||||
}
|
||||
|
||||
pendingMultiplicativeOperator = clickedOperator;
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [18]
|
||||
|
||||
//! [20]
|
||||
void Calculator::equalClicked()
|
||||
{
|
||||
double operand = display->text().toDouble();
|
||||
|
||||
if (!pendingMultiplicativeOperator.isEmpty()) {
|
||||
if (!calculate(operand, pendingMultiplicativeOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
operand = factorSoFar;
|
||||
factorSoFar = 0.0;
|
||||
pendingMultiplicativeOperator.clear();
|
||||
}
|
||||
if (!pendingAdditiveOperator.isEmpty()) {
|
||||
if (!calculate(operand, pendingAdditiveOperator)) {
|
||||
abortOperation();
|
||||
return;
|
||||
}
|
||||
pendingAdditiveOperator.clear();
|
||||
} else {
|
||||
sumSoFar = operand;
|
||||
}
|
||||
|
||||
display->setText(QString::number(sumSoFar));
|
||||
sumSoFar = 0.0;
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [20]
|
||||
|
||||
//! [22]
|
||||
void Calculator::pointClicked()
|
||||
{
|
||||
if (waitingForOperand)
|
||||
display->setText("0");
|
||||
if (!display->text().contains('.'))
|
||||
display->setText(display->text() + tr("."));
|
||||
waitingForOperand = false;
|
||||
}
|
||||
//! [22]
|
||||
|
||||
//! [24]
|
||||
void Calculator::changeSignClicked()
|
||||
{
|
||||
QString text = display->text();
|
||||
double value = text.toDouble();
|
||||
|
||||
if (value > 0.0) {
|
||||
text.prepend(tr("-"));
|
||||
} else if (value < 0.0) {
|
||||
text.remove(0, 1);
|
||||
}
|
||||
display->setText(text);
|
||||
}
|
||||
//! [24]
|
||||
|
||||
//! [26]
|
||||
void Calculator::backspaceClicked()
|
||||
{
|
||||
if (waitingForOperand)
|
||||
return;
|
||||
|
||||
QString text = display->text();
|
||||
text.chop(1);
|
||||
if (text.isEmpty()) {
|
||||
text = "0";
|
||||
waitingForOperand = true;
|
||||
}
|
||||
display->setText(text);
|
||||
}
|
||||
//! [26]
|
||||
|
||||
//! [28]
|
||||
void Calculator::clear()
|
||||
{
|
||||
if (waitingForOperand)
|
||||
return;
|
||||
|
||||
display->setText("0");
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [28]
|
||||
|
||||
//! [30]
|
||||
void Calculator::clearAll()
|
||||
{
|
||||
sumSoFar = 0.0;
|
||||
factorSoFar = 0.0;
|
||||
pendingAdditiveOperator.clear();
|
||||
pendingMultiplicativeOperator.clear();
|
||||
display->setText("0");
|
||||
waitingForOperand = true;
|
||||
}
|
||||
//! [30]
|
||||
|
||||
//! [32]
|
||||
void Calculator::clearMemory()
|
||||
{
|
||||
sumInMemory = 0.0;
|
||||
}
|
||||
|
||||
void Calculator::readMemory()
|
||||
{
|
||||
display->setText(QString::number(sumInMemory));
|
||||
waitingForOperand = true;
|
||||
}
|
||||
|
||||
void Calculator::setMemory()
|
||||
{
|
||||
equalClicked();
|
||||
sumInMemory = display->text().toDouble();
|
||||
}
|
||||
|
||||
void Calculator::addToMemory()
|
||||
{
|
||||
equalClicked();
|
||||
sumInMemory += display->text().toDouble();
|
||||
}
|
||||
//! [32]
|
||||
//! [34]
|
||||
Button *Calculator::createButton(const QString &text, const char *member)
|
||||
{
|
||||
Button *button = new Button(text);
|
||||
connect(button, SIGNAL(clicked()), this, member);
|
||||
return button;
|
||||
}
|
||||
//! [34]
|
||||
|
||||
//! [36]
|
||||
void Calculator::abortOperation()
|
||||
{
|
||||
clearAll();
|
||||
display->setText(tr("####"));
|
||||
}
|
||||
//! [36]
|
||||
|
||||
//! [38]
|
||||
bool Calculator::calculate(double rightOperand, const QString &pendingOperator)
|
||||
{
|
||||
if (pendingOperator == tr("+")) {
|
||||
sumSoFar += rightOperand;
|
||||
} else if (pendingOperator == tr("-")) {
|
||||
sumSoFar -= rightOperand;
|
||||
} else if (pendingOperator == tr("\303\227")) {
|
||||
factorSoFar *= rightOperand;
|
||||
} else if (pendingOperator == tr("\303\267")) {
|
||||
if (rightOperand == 0.0)
|
||||
return false;
|
||||
factorSoFar /= rightOperand;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//! [38]
|
||||
@@ -1,117 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef CALCULATOR_H
|
||||
#define CALCULATOR_H
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QLineEdit;
|
||||
QT_END_NAMESPACE
|
||||
class Button;
|
||||
|
||||
//! [0]
|
||||
class Calculator : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Calculator(QWidget *parent = 0);
|
||||
|
||||
private slots:
|
||||
void digitClicked();
|
||||
void unaryOperatorClicked();
|
||||
void additiveOperatorClicked();
|
||||
void multiplicativeOperatorClicked();
|
||||
void equalClicked();
|
||||
void pointClicked();
|
||||
void changeSignClicked();
|
||||
void backspaceClicked();
|
||||
void clear();
|
||||
void clearAll();
|
||||
void clearMemory();
|
||||
void readMemory();
|
||||
void setMemory();
|
||||
void addToMemory();
|
||||
//! [0]
|
||||
|
||||
//! [1]
|
||||
private:
|
||||
//! [1] //! [2]
|
||||
Button *createButton(const QString &text, const char *member);
|
||||
void abortOperation();
|
||||
bool calculate(double rightOperand, const QString &pendingOperator);
|
||||
//! [2]
|
||||
|
||||
//! [3]
|
||||
double sumInMemory;
|
||||
//! [3] //! [4]
|
||||
double sumSoFar;
|
||||
//! [4] //! [5]
|
||||
double factorSoFar;
|
||||
//! [5] //! [6]
|
||||
QString pendingAdditiveOperator;
|
||||
//! [6] //! [7]
|
||||
QString pendingMultiplicativeOperator;
|
||||
//! [7] //! [8]
|
||||
bool waitingForOperand;
|
||||
//! [8]
|
||||
|
||||
//! [9]
|
||||
QLineEdit *display;
|
||||
//! [9] //! [10]
|
||||
|
||||
enum { NumDigitButtons = 10 };
|
||||
Button *digitButtons[NumDigitButtons];
|
||||
};
|
||||
//! [10]
|
||||
|
||||
#endif
|
||||
@@ -1,11 +0,0 @@
|
||||
QT += widgets
|
||||
|
||||
HEADERS = button.h \
|
||||
calculator.h
|
||||
SOURCES = button.cpp \
|
||||
calculator.cpp \
|
||||
main.cpp
|
||||
|
||||
# Single Application implementation
|
||||
include(../../singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QApplication
|
||||
@@ -1,71 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the examples of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:BSD$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** BSD License Usage
|
||||
** Alternatively, you may use this file under the terms of the BSD license
|
||||
** as follows:
|
||||
**
|
||||
** "Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions are
|
||||
** met:
|
||||
** * Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions and the following disclaimer.
|
||||
** * Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions and the following disclaimer in
|
||||
** the documentation and/or other materials provided with the
|
||||
** distribution.
|
||||
** * Neither the name of The Qt Company Ltd nor the names of its
|
||||
** contributors may be used to endorse or promote products derived
|
||||
** from this software without specific prior written permission.
|
||||
**
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
#include <singleapplication.h>
|
||||
|
||||
#include "calculator.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
SingleApplication app(argc, argv);
|
||||
|
||||
Calculator calc;
|
||||
|
||||
QObject::connect( &app, &SingleApplication::instanceStarted, [ &calc ]() {
|
||||
calc.raise();
|
||||
calc.activateWindow();
|
||||
});
|
||||
|
||||
calc.show();
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
#include <singleapplication.h>
|
||||
#include "messagereceiver.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Allow secondary instances
|
||||
SingleApplication app( argc, argv, true );
|
||||
|
||||
MessageReceiver msgReceiver;
|
||||
|
||||
// If this is a secondary instance
|
||||
if( app.isSecondary() ) {
|
||||
app.sendMessage( app.arguments().join(' ').toUtf8() );
|
||||
return 0;
|
||||
} else {
|
||||
QObject::connect(
|
||||
&app,
|
||||
&SingleApplication::receivedMessage,
|
||||
&msgReceiver,
|
||||
&MessageReceiver::receivedMessage
|
||||
);
|
||||
}
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
#include <QDebug>
|
||||
#include "messagereceiver.h"
|
||||
|
||||
MessageReceiver::MessageReceiver(QObject *parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void MessageReceiver::receivedMessage(int instanceId, QByteArray message)
|
||||
{
|
||||
qDebug() << "Received message from instance: " << instanceId;
|
||||
qDebug() << "Message Text: " << message;
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
#ifndef MESSAGERECEIVER_H
|
||||
#define MESSAGERECEIVER_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class MessageReceiver : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MessageReceiver(QObject *parent = 0);
|
||||
public slots:
|
||||
void receivedMessage( int instanceId, QByteArray message );
|
||||
};
|
||||
|
||||
#endif // MESSAGERECEIVER_H
|
||||
@@ -1,9 +0,0 @@
|
||||
# Single Application implementation
|
||||
include(../../singleapplication.pri)
|
||||
DEFINES += QAPPLICATION_CLASS=QCoreApplication
|
||||
|
||||
SOURCES += main.cpp \
|
||||
messagereceiver.cpp
|
||||
|
||||
HEADERS += \
|
||||
messagereceiver.h
|
||||
@@ -1,195 +0,0 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2018
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#include <QtCore/QTime>
|
||||
#include <QtCore/QThread>
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QSharedMemory>
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) // ### Qt 6: remove
|
||||
#else
|
||||
#if TODO_LIST
|
||||
#pragma message("@TODO remove code for QT 5.10 or later")
|
||||
#endif
|
||||
#include <QRandomGenerator>
|
||||
#endif
|
||||
#include "singleapplication.h"
|
||||
#include "singleapplication_p.h"
|
||||
|
||||
/**
|
||||
@brief Constructor. Checks and fires up LocalServer or closes the program
|
||||
if another instance already exists
|
||||
@param argc
|
||||
@param argv
|
||||
@param {bool} allowSecondaryInstances
|
||||
*/
|
||||
SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSecondary, Options options, int timeout )
|
||||
: app_t( argc, argv ), d_ptr( new SingleApplicationPrivate( this ) )
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
|
||||
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
|
||||
// On Android and iOS since the library is not supported fallback to
|
||||
// standard QApplication behaviour by simply returning at this point.
|
||||
qWarning() << "SingleApplication is not supported on Android and iOS systems.";
|
||||
return;
|
||||
#endif
|
||||
|
||||
// Store the current mode of the program
|
||||
d->options = options;
|
||||
|
||||
// Generating an application ID used for identifying the shared memory
|
||||
// block and QLocalServer
|
||||
d->genBlockServerName();
|
||||
|
||||
#ifdef Q_OS_UNIX
|
||||
// By explicitly attaching it and then deleting it we make sure that the
|
||||
// memory is deleted even after the process has crashed on Unix.
|
||||
d->memory = new QSharedMemory( d->blockServerName );
|
||||
d->memory->attach();
|
||||
delete d->memory;
|
||||
#endif
|
||||
// Guarantee thread safe behaviour with a shared memory block.
|
||||
d->memory = new QSharedMemory( d->blockServerName );
|
||||
|
||||
// Create a shared memory block
|
||||
if( d->memory->create( sizeof( InstancesInfo ) ) ) {
|
||||
// Initialize the shared memory block
|
||||
d->memory->lock();
|
||||
d->initializeMemoryBlock();
|
||||
d->memory->unlock();
|
||||
} else {
|
||||
// Attempt to attach to the memory segment
|
||||
if( ! d->memory->attach() ) {
|
||||
qCritical() << "SingleApplication: Unable to attach to shared memory block.";
|
||||
qCritical() << d->memory->errorString();
|
||||
delete d;
|
||||
::exit( EXIT_FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>( d->memory->data() );
|
||||
QElapsedTimer time;
|
||||
time.start();
|
||||
|
||||
// Make sure the shared memory block is initialised and in consistent state
|
||||
while( true ) {
|
||||
d->memory->lock();
|
||||
|
||||
if( d->blockChecksum() == inst->checksum ) break;
|
||||
|
||||
if( time.elapsed() > 5000 ) {
|
||||
qWarning() << "SingleApplication: Shared memory block has been in an inconsistent state from more than 5s. Assuming primary instance failure.";
|
||||
d->initializeMemoryBlock();
|
||||
}
|
||||
|
||||
d->memory->unlock();
|
||||
|
||||
// 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
|
||||
qsrand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits<uint>::max() );
|
||||
QThread::sleep( 8 + static_cast <unsigned long>( static_cast <float>( qrand() ) / RAND_MAX * 10 ) );
|
||||
#else
|
||||
#if TODO_LIST
|
||||
#pragma message("@TODO remove code for QT 5.10 or later")
|
||||
#endif
|
||||
quint32 value = QRandomGenerator::global()->generate();
|
||||
QThread::sleep( 8 + static_cast <unsigned long>( static_cast <float>( value ) / RAND_MAX * 10 ) );
|
||||
#endif
|
||||
}
|
||||
|
||||
if( inst->primary == false) {
|
||||
d->startPrimary();
|
||||
d->memory->unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if another instance can be started
|
||||
if( allowSecondary ) {
|
||||
inst->secondary += 1;
|
||||
inst->checksum = d->blockChecksum();
|
||||
d->instanceNumber = inst->secondary;
|
||||
d->startSecondary();
|
||||
if( d->options & Mode::SecondaryNotification ) {
|
||||
d->connectToPrimary( timeout, SingleApplicationPrivate::SecondaryInstance );
|
||||
}
|
||||
d->memory->unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
d->memory->unlock();
|
||||
|
||||
d->connectToPrimary( timeout, SingleApplicationPrivate::NewInstance );
|
||||
|
||||
delete d;
|
||||
|
||||
::exit( EXIT_SUCCESS );
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Destructor
|
||||
*/
|
||||
SingleApplication::~SingleApplication()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
delete d;
|
||||
}
|
||||
|
||||
bool SingleApplication::isPrimary()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->server != nullptr;
|
||||
}
|
||||
|
||||
bool SingleApplication::isSecondary()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->server == nullptr;
|
||||
}
|
||||
|
||||
quint32 SingleApplication::instanceId()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->instanceNumber;
|
||||
}
|
||||
|
||||
qint64 SingleApplication::primaryPid()
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
return d->primaryPid();
|
||||
}
|
||||
|
||||
bool SingleApplication::sendMessage( QByteArray message, int timeout )
|
||||
{
|
||||
Q_D(SingleApplication);
|
||||
|
||||
// Nobody to connect to
|
||||
if( isPrimary() ) return false;
|
||||
|
||||
// Make sure the socket is connected
|
||||
d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect );
|
||||
|
||||
d->socket->write( message );
|
||||
bool dataWritten = d->socket->waitForBytesWritten( timeout );
|
||||
d->socket->flush();
|
||||
return dataWritten;
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2018
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#ifndef SINGLE_APPLICATION_H
|
||||
#define SINGLE_APPLICATION_H
|
||||
|
||||
#include <QtCore/QtGlobal>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
#include <QElapsedTimer>
|
||||
|
||||
#ifndef QAPPLICATION_CLASS
|
||||
#define QAPPLICATION_CLASS QCoreApplication
|
||||
#endif
|
||||
|
||||
#include QT_STRINGIFY(QAPPLICATION_CLASS)
|
||||
|
||||
class SingleApplicationPrivate;
|
||||
|
||||
/**
|
||||
@brief The SingleApplication class handles multiple instances of the same
|
||||
Application
|
||||
@see QCoreApplication
|
||||
*/
|
||||
class SingleApplication : public QAPPLICATION_CLASS
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
typedef QAPPLICATION_CLASS app_t;
|
||||
|
||||
public:
|
||||
/**
|
||||
@brief Mode of operation of SingleApplication.
|
||||
Whether the block should be user-wide or system-wide and whether the
|
||||
primary instance should be notified when a secondary instance had been
|
||||
started.
|
||||
@note Operating system can restrict the shared memory blocks to the same
|
||||
user, in which case the User/System modes will have no effect and the
|
||||
block will be user wide.
|
||||
@enum
|
||||
*/
|
||||
enum Mode {
|
||||
User = 1 << 0,
|
||||
System = 1 << 1,
|
||||
SecondaryNotification = 1 << 2,
|
||||
ExcludeAppVersion = 1 << 3,
|
||||
ExcludeAppPath = 1 << 4
|
||||
};
|
||||
Q_DECLARE_FLAGS(Options, Mode)
|
||||
|
||||
/**
|
||||
@brief Intitializes a SingleApplication instance with argc command line
|
||||
arguments in argv
|
||||
@arg {int &} argc - Number of arguments in argv
|
||||
@arg {const char *[]} argv - Supplied command line arguments
|
||||
@arg {bool} allowSecondary - Whether to start the instance as secondary
|
||||
if there is already a primary instance.
|
||||
@arg {Mode} mode - Whether for the SingleApplication block to be applied
|
||||
User wide or System wide.
|
||||
@arg {int} timeout - Timeout to wait in milliseconds.
|
||||
@note argc and argv may be changed as Qt removes arguments that it
|
||||
recognizes
|
||||
@note Mode::SecondaryNotification only works if set on both the primary
|
||||
instance and the secondary instance.
|
||||
@note The timeout is just a hint for the maximum time of blocking
|
||||
operations. It does not guarantee that the SingleApplication
|
||||
initialisation will be completed in given time, though is a good hint.
|
||||
Usually 4*timeout would be the worst case (fail) scenario.
|
||||
@see See the corresponding QAPPLICATION_CLASS constructor for reference
|
||||
*/
|
||||
explicit SingleApplication( int &argc, char *argv[], bool allowSecondary = false, Options options = Mode::User, int timeout = 1000 );
|
||||
~SingleApplication();
|
||||
|
||||
/**
|
||||
@brief Returns if the instance is the primary instance
|
||||
@returns {bool}
|
||||
*/
|
||||
bool isPrimary();
|
||||
|
||||
/**
|
||||
@brief Returns if the instance is a secondary instance
|
||||
@returns {bool}
|
||||
*/
|
||||
bool isSecondary();
|
||||
|
||||
/**
|
||||
@brief Returns a unique identifier for the current instance
|
||||
@returns {qint32}
|
||||
*/
|
||||
quint32 instanceId();
|
||||
|
||||
/**
|
||||
@brief Returns the process ID (PID) of the primary instance
|
||||
@returns {qint64}
|
||||
*/
|
||||
qint64 primaryPid();
|
||||
|
||||
/**
|
||||
@brief Sends a message to the primary instance. Returns true on success.
|
||||
@param {int} timeout - Timeout for connecting
|
||||
@returns {bool}
|
||||
@note sendMessage() will return false if invoked from the primary
|
||||
instance.
|
||||
*/
|
||||
bool sendMessage( QByteArray message, int timeout = 100 );
|
||||
|
||||
Q_SIGNALS:
|
||||
void instanceStarted();
|
||||
void receivedMessage( quint32 instanceId, QByteArray message );
|
||||
|
||||
private:
|
||||
SingleApplicationPrivate *d_ptr;
|
||||
Q_DECLARE_PRIVATE(SingleApplication)
|
||||
};
|
||||
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(SingleApplication::Options)
|
||||
|
||||
#endif // SINGLE_APPLICATION_H
|
||||
@@ -1,19 +0,0 @@
|
||||
QT += core network
|
||||
CONFIG += c++17
|
||||
|
||||
HEADERS += $$PWD/singleapplication.h \
|
||||
$$PWD/singleapplication_p.h
|
||||
SOURCES += $$PWD/singleapplication.cpp \
|
||||
$$PWD/singleapplication_p.cpp
|
||||
|
||||
INCLUDEPATH += $$PWD
|
||||
|
||||
win32 {
|
||||
msvc:LIBS += Advapi32.lib
|
||||
gcc:LIBS += -ladvapi32
|
||||
}
|
||||
|
||||
DISTFILES += \
|
||||
$$PWD/README.md \
|
||||
$$PWD/CHANGELOG.md \
|
||||
$$PWD/Windows.md
|
||||
@@ -1,444 +0,0 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2018
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
//
|
||||
// W A R N I N G !!!
|
||||
// -----------------
|
||||
//
|
||||
// This file is not part of the SingleApplication API. It is used purely as an
|
||||
// implementation detail. This header file may change from version to
|
||||
// version without notice, or may even be removed.
|
||||
//
|
||||
|
||||
#include <cstdlib>
|
||||
#include <cstddef>
|
||||
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QByteArray>
|
||||
#include <QtCore/QDataStream>
|
||||
#include <QtCore/QCryptographicHash>
|
||||
#include <QtNetwork/QLocalServer>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
|
||||
#include "singleapplication.h"
|
||||
#include "singleapplication_p.h"
|
||||
|
||||
#ifdef Q_OS_UNIX
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <pwd.h>
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include <windows.h>
|
||||
#include <lmcons.h>
|
||||
#endif
|
||||
|
||||
SingleApplicationPrivate::SingleApplicationPrivate( SingleApplication *q_ptr )
|
||||
: q_ptr( q_ptr )
|
||||
{
|
||||
server = nullptr;
|
||||
socket = nullptr;
|
||||
memory = nullptr;
|
||||
instanceNumber = -1;
|
||||
}
|
||||
|
||||
SingleApplicationPrivate::~SingleApplicationPrivate()
|
||||
{
|
||||
if( socket != nullptr ) {
|
||||
socket->close();
|
||||
delete socket;
|
||||
}
|
||||
|
||||
memory->lock();
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>(memory->data());
|
||||
if( server != nullptr ) {
|
||||
server->close();
|
||||
delete server;
|
||||
inst->primary = false;
|
||||
inst->primaryPid = -1;
|
||||
inst->checksum = blockChecksum();
|
||||
}
|
||||
memory->unlock();
|
||||
|
||||
delete memory;
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::genBlockServerName()
|
||||
{
|
||||
QCryptographicHash appData( QCryptographicHash::Sha256 );
|
||||
appData.addData( "SingleApplication", 17 );
|
||||
appData.addData( SingleApplication::app_t::applicationName().toUtf8() );
|
||||
appData.addData( SingleApplication::app_t::organizationName().toUtf8() );
|
||||
appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() );
|
||||
|
||||
if( ! (options & SingleApplication::Mode::ExcludeAppVersion) ) {
|
||||
appData.addData( SingleApplication::app_t::applicationVersion().toUtf8() );
|
||||
}
|
||||
|
||||
if( ! (options & SingleApplication::Mode::ExcludeAppPath) ) {
|
||||
#ifdef Q_OS_WIN
|
||||
appData.addData( SingleApplication::app_t::applicationFilePath().toLower().toUtf8() );
|
||||
#else
|
||||
appData.addData( SingleApplication::app_t::applicationFilePath().toUtf8() );
|
||||
#endif
|
||||
}
|
||||
|
||||
// User level block requires a user specific data in the hash
|
||||
if( options & SingleApplication::Mode::User ) {
|
||||
#ifdef Q_OS_WIN
|
||||
wchar_t username [ UNLEN + 1 ];
|
||||
// Specifies size of the buffer on input
|
||||
DWORD usernameLength = UNLEN + 1;
|
||||
if( GetUserNameW( username, &usernameLength ) ) {
|
||||
appData.addData( QString::fromWCharArray(username).toUtf8() );
|
||||
} 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()
|
||||
{
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
|
||||
inst->primary = false;
|
||||
inst->secondary = 0;
|
||||
inst->primaryPid = -1;
|
||||
inst->checksum = blockChecksum();
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::startPrimary()
|
||||
{
|
||||
Q_Q(SingleApplication);
|
||||
|
||||
// Successful creation means that no main process exists
|
||||
// So we start a QLocalServer to listen for connections
|
||||
QLocalServer::removeServer( blockServerName );
|
||||
server = new QLocalServer();
|
||||
|
||||
// Restrict access to the socket according to the
|
||||
// SingleApplication::Mode::User flag on User level or no restrictions
|
||||
if( options & SingleApplication::Mode::User ) {
|
||||
server->setSocketOptions( QLocalServer::UserAccessOption );
|
||||
} else {
|
||||
server->setSocketOptions( QLocalServer::WorldAccessOption );
|
||||
}
|
||||
|
||||
server->listen( blockServerName );
|
||||
QObject::connect(
|
||||
server,
|
||||
&QLocalServer::newConnection,
|
||||
this,
|
||||
&SingleApplicationPrivate::slotConnectionEstablished
|
||||
);
|
||||
|
||||
// Reset the number of connections
|
||||
InstancesInfo* inst = static_cast <InstancesInfo*>( memory->data() );
|
||||
|
||||
inst->primary = true;
|
||||
inst->primaryPid = q->applicationPid();
|
||||
inst->checksum = blockChecksum();
|
||||
|
||||
instanceNumber = 0;
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::startSecondary()
|
||||
{
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType connectionType )
|
||||
{
|
||||
// Connect to the Local Server of the Primary Instance if not already
|
||||
// connected.
|
||||
if( socket == nullptr ) {
|
||||
socket = new QLocalSocket();
|
||||
}
|
||||
|
||||
// If already connected - we are done;
|
||||
if( socket->state() == QLocalSocket::ConnectedState )
|
||||
return;
|
||||
|
||||
// If not connect
|
||||
if( socket->state() == QLocalSocket::UnconnectedState ||
|
||||
socket->state() == QLocalSocket::ClosingState ) {
|
||||
socket->connectToServer( blockServerName );
|
||||
}
|
||||
|
||||
// Wait for being connected
|
||||
if( socket->state() == QLocalSocket::ConnectingState ) {
|
||||
socket->waitForConnected( msecs );
|
||||
}
|
||||
|
||||
// Initialisation message according to the SingleApplication protocol
|
||||
if( socket->state() == QLocalSocket::ConnectedState ) {
|
||||
// Notify the parent that a new instance had been started;
|
||||
QByteArray initMsg;
|
||||
QDataStream writeStream(&initMsg, QIODevice::WriteOnly);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
writeStream.setVersion(QDataStream::Qt_5_6);
|
||||
#endif
|
||||
|
||||
writeStream << blockServerName.toLatin1();
|
||||
writeStream << static_cast<quint8>(connectionType);
|
||||
writeStream << instanceNumber;
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
|
||||
quint16 checksum =
|
||||
qChecksum(
|
||||
initMsg.constData(),
|
||||
static_cast<quint32>(initMsg.length()));
|
||||
#else
|
||||
#if TODO_LIST
|
||||
#pragma message("@TODO remove code for QT 6 or later")
|
||||
#endif
|
||||
quint16 checksum =
|
||||
qChecksum(
|
||||
QByteArrayView(
|
||||
initMsg.constData(),
|
||||
static_cast<quint32>(initMsg.length())));
|
||||
#endif
|
||||
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))
|
||||
headerStream.setVersion(QDataStream::Qt_5_6);
|
||||
#endif
|
||||
headerStream << static_cast <quint64>( initMsg.length() );
|
||||
|
||||
socket->write( header );
|
||||
socket->write( initMsg );
|
||||
socket->flush();
|
||||
socket->waitForBytesWritten( msecs );
|
||||
}
|
||||
}
|
||||
|
||||
quint16 SingleApplicationPrivate::blockChecksum()
|
||||
{
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
|
||||
return qChecksum(
|
||||
static_cast <const char *>( memory->data() ),
|
||||
offsetof( InstancesInfo, checksum )
|
||||
);
|
||||
#else
|
||||
#if TODO_LIST
|
||||
#pragma message("@TODO remove code for QT 6 or later")
|
||||
#endif
|
||||
return qChecksum(
|
||||
QByteArrayView(
|
||||
static_cast <const char *>( memory->data() ),
|
||||
offsetof( InstancesInfo, checksum )));
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
qint64 SingleApplicationPrivate::primaryPid()
|
||||
{
|
||||
qint64 pid;
|
||||
|
||||
memory->lock();
|
||||
InstancesInfo* inst = static_cast<InstancesInfo*>( memory->data() );
|
||||
pid = inst->primaryPid;
|
||||
memory->unlock();
|
||||
|
||||
return pid;
|
||||
}
|
||||
|
||||
/**
|
||||
@brief Executed when a connection has been made to the LocalServer
|
||||
*/
|
||||
void SingleApplicationPrivate::slotConnectionEstablished()
|
||||
{
|
||||
QLocalSocket *nextConnSocket = server->nextPendingConnection();
|
||||
connectionMap.insert(nextConnSocket, ConnectionInfo());
|
||||
|
||||
QObject::connect(nextConnSocket, &QLocalSocket::aboutToClose,
|
||||
[nextConnSocket, this]() {
|
||||
auto &info = connectionMap[nextConnSocket];
|
||||
Q_EMIT this->slotClientConnectionClosed( nextConnSocket, info.instanceId );
|
||||
}
|
||||
);
|
||||
|
||||
QObject::connect(nextConnSocket, &QLocalSocket::disconnected,
|
||||
[nextConnSocket, this](){
|
||||
connectionMap.remove(nextConnSocket);
|
||||
nextConnSocket->deleteLater();
|
||||
}
|
||||
);
|
||||
|
||||
QObject::connect(nextConnSocket, &QLocalSocket::readyRead,
|
||||
[nextConnSocket, this]() {
|
||||
auto &info = connectionMap[nextConnSocket];
|
||||
switch(info.stage) {
|
||||
case StageHeader:
|
||||
readInitMessageHeader(nextConnSocket);
|
||||
break;
|
||||
case StageBody:
|
||||
readInitMessageBody(nextConnSocket);
|
||||
break;
|
||||
case StageConnected:
|
||||
Q_EMIT this->slotDataAvailable( nextConnSocket, info.instanceId );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::readInitMessageHeader( QLocalSocket *sock )
|
||||
{
|
||||
if (!connectionMap.contains( sock )) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( sock->bytesAvailable() < ( qint64 )sizeof( quint64 ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
QDataStream headerStream( sock );
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
headerStream.setVersion( QDataStream::Qt_5_6 );
|
||||
#endif
|
||||
|
||||
// Read the header to know the message length
|
||||
quint64 msgLen = 0;
|
||||
headerStream >> msgLen;
|
||||
ConnectionInfo &info = connectionMap[sock];
|
||||
info.stage = StageBody;
|
||||
info.msgLen = msgLen;
|
||||
|
||||
if ( sock->bytesAvailable() >= (qint64) msgLen ) {
|
||||
readInitMessageBody( sock );
|
||||
}
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock )
|
||||
{
|
||||
Q_Q(SingleApplication);
|
||||
|
||||
if (!connectionMap.contains( sock )) {
|
||||
return;
|
||||
}
|
||||
|
||||
ConnectionInfo &info = connectionMap[sock];
|
||||
if( sock->bytesAvailable() < ( qint64 )info.msgLen ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Read the message body
|
||||
QByteArray msgBytes = sock->read(info.msgLen);
|
||||
QDataStream readStream(msgBytes);
|
||||
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||
readStream.setVersion( QDataStream::Qt_5_6 );
|
||||
#endif
|
||||
|
||||
// server name
|
||||
QByteArray latin1Name;
|
||||
readStream >> latin1Name;
|
||||
|
||||
// connection type
|
||||
ConnectionType connectionType = InvalidConnection;
|
||||
quint8 connTypeVal = InvalidConnection;
|
||||
readStream >> connTypeVal;
|
||||
connectionType = static_cast <ConnectionType>( connTypeVal );
|
||||
|
||||
// instance id
|
||||
quint32 instanceId = 0;
|
||||
readStream >> instanceId;
|
||||
|
||||
// checksum
|
||||
quint16 msgChecksum = 0;
|
||||
readStream >> msgChecksum;
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
|
||||
const quint16 actualChecksum =
|
||||
qChecksum(
|
||||
msgBytes.constData(),
|
||||
static_cast<quint32>( msgBytes.length() - sizeof( quint16 ) ) );
|
||||
#else
|
||||
#if TODO_LIST
|
||||
#pragma message("@TODO remove code for QT 6 or later")
|
||||
#endif
|
||||
const quint16 actualChecksum =
|
||||
qChecksum(
|
||||
QByteArrayView(
|
||||
msgBytes.constData(),
|
||||
static_cast<quint32>(msgBytes.length() - sizeof(quint16))));
|
||||
#endif
|
||||
bool isValid = readStream.status() == QDataStream::Ok &&
|
||||
QLatin1String(latin1Name) == blockServerName &&
|
||||
msgChecksum == actualChecksum;
|
||||
|
||||
if( !isValid ) {
|
||||
sock->close();
|
||||
return;
|
||||
}
|
||||
|
||||
info.instanceId = instanceId;
|
||||
info.stage = StageConnected;
|
||||
|
||||
if( connectionType == NewInstance ||
|
||||
( connectionType == SecondaryInstance &&
|
||||
options & SingleApplication::Mode::SecondaryNotification ) )
|
||||
{
|
||||
Q_EMIT q->instanceStarted();
|
||||
}
|
||||
|
||||
if (sock->bytesAvailable() > 0) {
|
||||
Q_EMIT this->slotDataAvailable( sock, instanceId );
|
||||
}
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::slotDataAvailable( QLocalSocket *dataSocket, quint32 instanceId )
|
||||
{
|
||||
Q_Q(SingleApplication);
|
||||
Q_EMIT q->receivedMessage( instanceId, dataSocket->readAll() );
|
||||
}
|
||||
|
||||
void SingleApplicationPrivate::slotClientConnectionClosed( QLocalSocket *closedSocket, quint32 instanceId )
|
||||
{
|
||||
if( closedSocket->bytesAvailable() > 0 )
|
||||
Q_EMIT slotDataAvailable( closedSocket, instanceId );
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
// The MIT License (MIT)
|
||||
//
|
||||
// Copyright (c) Itay Grudev 2015 - 2016
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
//
|
||||
// W A R N I N G !!!
|
||||
// -----------------
|
||||
//
|
||||
// This file is not part of the SingleApplication API. It is used purely as an
|
||||
// implementation detail. This header file may change from version to
|
||||
// version without notice, or may even be removed.
|
||||
//
|
||||
|
||||
#ifndef SINGLEAPPLICATION_P_H
|
||||
#define SINGLEAPPLICATION_P_H
|
||||
|
||||
#include <QtCore/QSharedMemory>
|
||||
#include <QtNetwork/QLocalServer>
|
||||
#include <QtNetwork/QLocalSocket>
|
||||
#include "singleapplication.h"
|
||||
|
||||
struct InstancesInfo {
|
||||
bool primary;
|
||||
quint32 secondary;
|
||||
qint64 primaryPid;
|
||||
quint16 checksum;
|
||||
};
|
||||
|
||||
struct ConnectionInfo {
|
||||
explicit ConnectionInfo() :
|
||||
msgLen(0), instanceId(0), stage(0) {}
|
||||
qint64 msgLen;
|
||||
quint32 instanceId;
|
||||
quint8 stage;
|
||||
};
|
||||
|
||||
class SingleApplicationPrivate : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum ConnectionType : quint8 {
|
||||
InvalidConnection = 0,
|
||||
NewInstance = 1,
|
||||
SecondaryInstance = 2,
|
||||
Reconnect = 3
|
||||
};
|
||||
enum ConnectionStage : quint8 {
|
||||
StageHeader = 0,
|
||||
StageBody = 1,
|
||||
StageConnected = 2,
|
||||
};
|
||||
Q_DECLARE_PUBLIC(SingleApplication)
|
||||
|
||||
SingleApplicationPrivate( SingleApplication *q_ptr );
|
||||
~SingleApplicationPrivate();
|
||||
|
||||
void genBlockServerName();
|
||||
void initializeMemoryBlock();
|
||||
void startPrimary();
|
||||
void startSecondary();
|
||||
void connectToPrimary(int msecs, ConnectionType connectionType );
|
||||
quint16 blockChecksum();
|
||||
qint64 primaryPid();
|
||||
void readInitMessageHeader(QLocalSocket *socket);
|
||||
void readInitMessageBody(QLocalSocket *socket);
|
||||
|
||||
SingleApplication *q_ptr;
|
||||
QSharedMemory *memory;
|
||||
QLocalSocket *socket;
|
||||
QLocalServer *server;
|
||||
quint32 instanceNumber;
|
||||
QString blockServerName;
|
||||
SingleApplication::Options options;
|
||||
QMap<QLocalSocket*, ConnectionInfo> connectionMap;
|
||||
|
||||
public Q_SLOTS:
|
||||
void slotConnectionEstablished();
|
||||
void slotDataAvailable( QLocalSocket*, quint32 );
|
||||
void slotClientConnectionClosed( QLocalSocket*, quint32 );
|
||||
};
|
||||
|
||||
#endif // SINGLEAPPLICATION_P_H
|
||||
@@ -1,26 +1,38 @@
|
||||
{
|
||||
"id": "org.qelectrotech.QElectroTech",
|
||||
"runtime": "org.kde.Platform",
|
||||
"runtime-version": "5.14",
|
||||
"runtime-version": "5.15-25.08",
|
||||
"sdk": "org.kde.Sdk",
|
||||
"command": "qelectrotech",
|
||||
"rename-desktop-file": "qelectrotech.desktop",
|
||||
"rename-desktop-file": "org.qelectrotech.qelectrotech.desktop",
|
||||
"rename-appdata-file": "qelectrotech.appdata.xml",
|
||||
"rename-icon": "qelectrotech",
|
||||
"copy-icon": true,
|
||||
"finish-args": [
|
||||
"--socket=wayland",
|
||||
"--socket=x11",
|
||||
"--socket=fallback-x11",
|
||||
"--device=dri",
|
||||
"--share=ipc",
|
||||
"--share=network",
|
||||
"--socket=cups",
|
||||
"--filesystem=host"
|
||||
],
|
||||
"cleanup": [
|
||||
"/include",
|
||||
"/man",
|
||||
"/share/doc",
|
||||
"/share/man",
|
||||
"*.la",
|
||||
"*.a"
|
||||
],
|
||||
"modules": [
|
||||
"tkinter.json",
|
||||
"pypi-dependencies.json",
|
||||
{
|
||||
"name": "qelectrotech",
|
||||
"buildsystem": "qmake",
|
||||
"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": [
|
||||
{
|
||||
@@ -29,7 +41,9 @@
|
||||
},
|
||||
{
|
||||
"type": "patch",
|
||||
"path": "patches/0001-build-Fix-the-installation-paths.patch"
|
||||
"paths": [
|
||||
"patches/fix-the-installation-paths.patch"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
From 2a390b5188fe070295090b1bd37273d12963b371 Mon Sep 17 00:00:00 2001
|
||||
From: Laurent Trinques <scorpio@qelectrotech.org>
|
||||
Date: Sat, 26 Sep 2020 22:52:52 +0200
|
||||
Subject: [PATCH] build: Fix the installation paths
|
||||
|
||||
---
|
||||
qelectrotech.pro | 14 +++++++-------
|
||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/qelectrotech.pro b/qelectrotech.pro
|
||||
index 2901a30d5..1019a9870 100644
|
||||
--- a/qelectrotech.pro
|
||||
+++ b/qelectrotech.pro
|
||||
@@ -5,20 +5,20 @@
|
||||
# Chemins utilises pour la compilation et l'installation de QET
|
||||
unix {
|
||||
# Chemins UNIX
|
||||
- COMPIL_PREFIX = '/usr/local/'
|
||||
- INSTALL_PREFIX = '/usr/local/'
|
||||
+ COMPIL_PREFIX = '/app/'
|
||||
+ INSTALL_PREFIX = '/app/'
|
||||
QET_BINARY_PATH = 'bin/'
|
||||
QET_COMMON_COLLECTION_PATH = 'share/qelectrotech/elements/'
|
||||
QET_COMMON_TBT_PATH = 'share/qelectrotech/titleblocks/'
|
||||
QET_LANG_PATH = 'share/qelectrotech/lang/'
|
||||
QET_EXAMPLES_PATH = 'share/qelectrotech/examples/'
|
||||
- QET_LICENSE_PATH = 'doc/qelectrotech/'
|
||||
- QET_MIME_XML_PATH = '../share/mime/application/'
|
||||
- QET_MIME_DESKTOP_PATH = '../share/mimelnk/application/'
|
||||
- QET_MIME_PACKAGE_PATH = '../share/mime/packages/'
|
||||
+ QET_LICENSE_PATH = 'share/doc/qelectrotech/'
|
||||
+ QET_MIME_XML_PATH = 'share/mime/application/'
|
||||
+ QET_MIME_DESKTOP_PATH = 'share/mimelnk/application/'
|
||||
+ QET_MIME_PACKAGE_PATH = 'share/mime/packages/'
|
||||
QET_DESKTOP_PATH = 'share/applications/'
|
||||
QET_ICONS_PATH = 'share/icons/hicolor/'
|
||||
- QET_MAN_PATH = 'man/'
|
||||
+ QET_MAN_PATH = 'share/man/'
|
||||
QET_APPDATA_PATH = 'share/appdata'
|
||||
}
|
||||
win32 {
|
||||
--
|
||||
2.28.0
|
||||
|
||||
54
build-aux/flatpak/patches/fix-appdata.patch
Normal file
@@ -0,0 +1,54 @@
|
||||
From 5cb80674cec7363ed00bab5248b3674ca5241c2f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Sabri=20=C3=9Cnal?= <yakushabb@gmail.com>
|
||||
Date: Fri, 20 Feb 2026 22:56:52 +0300
|
||||
Subject: [PATCH] Fix appdata paper cuts
|
||||
|
||||
---
|
||||
misc/qelectrotech.appdata.xml | 26 ++++++++++++++++++++------
|
||||
1 file changed, 20 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/misc/qelectrotech.appdata.xml b/misc/qelectrotech.appdata.xml
|
||||
index dd06ab7..eb02119 100644
|
||||
--- a/misc/qelectrotech.appdata.xml
|
||||
+++ b/misc/qelectrotech.appdata.xml
|
||||
@@ -1,7 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2006-2023 The QElectroTech Team -->
|
||||
-<application>
|
||||
- <id type="desktop">qelectrotech.desktop</id>
|
||||
+<component type="desktop-application">
|
||||
+ <id>org.qelectrotech.QElectroTech</id>
|
||||
+ <launchable type="desktop-id">qelectrotech.desktop</launchable>
|
||||
<metadata_license>MIT</metadata_license>
|
||||
<project_license>GPL-2.0-or-later</project_license>
|
||||
<name>QElectroTech</name>
|
||||
@@ -83,9 +84,22 @@
|
||||
QET は要素と回路図に XML 形式を利用し、回路図エディタ、要素エディタ、表題欄エディタを含みます。
|
||||
</p>
|
||||
</description>
|
||||
- <url type="homepage">http://qelectrotech.org</url>
|
||||
+ <url type="homepage">https://qelectrotech.org</url>
|
||||
+ <url type="bugtracker">https://qelectrotech.org/bugtracker</url>
|
||||
+ <url type="vcs-browser">https://github.com/qelectrotech/qelectrotech-source-mirror</url>
|
||||
+ <developer id="org.qelectrotech">
|
||||
+ <name>QElectroTech</name>
|
||||
+ </developer>
|
||||
<screenshots>
|
||||
- <screenshot type="default">http://download.tuxfamily.org/qet/screens/qelectrotech5.png</screenshot>
|
||||
+ <screenshot type="default">
|
||||
+ <image>https://qelectrotech.org/screenshots/qet_overview04.png</image>
|
||||
+ </screenshot>
|
||||
+ <screenshot>
|
||||
+ <image>https://qelectrotech.org/screenshots/qet_overview06.png</image>
|
||||
+ </screenshot>
|
||||
+ <screenshot>
|
||||
+ <image>https://qelectrotech.org/screenshots/qet_overview09.png</image>
|
||||
+ </screenshot>
|
||||
</screenshots>
|
||||
- <updatecontact>qet@lists.tuxfamily.org</updatecontact>
|
||||
-</application>
|
||||
+ <update_contact>qet@lists.tuxfamily.org</update_contact>
|
||||
+</component>
|
||||
--
|
||||
2.53.0
|
||||
|
||||
27
build-aux/flatpak/patches/fix-the-installation-paths.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
diff -ruN a/qelectrotech.pro b/qelectrotech.pro
|
||||
--- a/qelectrotech.pro 2023-04-20 11:47:07.695847458 +0200
|
||||
+++ b/qelectrotech.pro 2023-04-20 11:51:14.843611898 +0200
|
||||
@@ -5,18 +5,18 @@
|
||||
# Chemins utilises pour la compilation et l'installation de QET
|
||||
unix {
|
||||
# Chemins UNIX
|
||||
- COMPIL_PREFIX = '/usr/local/'
|
||||
- INSTALL_PREFIX = '/usr/local/'
|
||||
+ COMPIL_PREFIX = '/app/'
|
||||
+ INSTALL_PREFIX = '/app/'
|
||||
QET_BINARY_PATH = 'bin/'
|
||||
QET_COMMON_COLLECTION_PATH = 'share/qelectrotech/elements/'
|
||||
QET_COMMON_TBT_PATH = 'share/qelectrotech/titleblocks/'
|
||||
QET_LANG_PATH = 'share/qelectrotech/lang/'
|
||||
QET_EXAMPLES_PATH = 'share/qelectrotech/examples/'
|
||||
- QET_LICENSE_PATH = 'doc/qelectrotech/'
|
||||
- QET_MIME_PACKAGE_PATH = '../share/mime/packages/'
|
||||
+ QET_LICENSE_PATH = 'share/doc/qelectrotech/'
|
||||
+ QET_MIME_PACKAGE_PATH = 'share/mime/packages/'
|
||||
QET_DESKTOP_PATH = 'share/applications/'
|
||||
QET_ICONS_PATH = 'share/icons/hicolor/'
|
||||
- QET_MAN_PATH = 'man/'
|
||||
+ QET_MAN_PATH = 'share/man/'
|
||||
QET_APPDATA_PATH = 'share/appdata'
|
||||
}
|
||||
win32 {
|
||||
184
build-aux/flatpak/patches/tkinter-build.patch
Normal file
@@ -0,0 +1,184 @@
|
||||
commit 3bbb09a0598fc976d2bf8dac932b27740086c1bd
|
||||
Author: Hubert Figuière <hub@figuiere.net>
|
||||
Date: Sun Dec 21 17:49:43 2025 -0500
|
||||
|
||||
Port to Python 3.13
|
||||
|
||||
Signed-off-by: Hubert Figuière <hub@figuiere.net>
|
||||
|
||||
diff --git a/_tkinter.c b/_tkinter.c
|
||||
index e537707..dfc5789 100644
|
||||
--- a/_tkinter.c
|
||||
+++ b/_tkinter.c
|
||||
@@ -21,7 +21,6 @@ Copyright (C) 1994 Steen Lumholt.
|
||||
|
||||
*/
|
||||
|
||||
-#define PY_SSIZE_T_CLEAN
|
||||
#ifndef Py_BUILD_CORE_BUILTIN
|
||||
# define Py_BUILD_CORE_MODULE 1
|
||||
#endif
|
||||
@@ -32,6 +31,9 @@ Copyright (C) 1994 Steen Lumholt.
|
||||
# include "pycore_fileutils.h" // _Py_stat()
|
||||
#endif
|
||||
|
||||
+#include "pycore_long.h" // _PyLong_IsNegative()
|
||||
+#include "pycore_sysmodule.h" // _PySys_GetOptionalAttrString()
|
||||
+
|
||||
#ifdef MS_WINDOWS
|
||||
#include <windows.h>
|
||||
#endif
|
||||
@@ -135,7 +137,7 @@ _get_tcl_lib_path()
|
||||
struct stat stat_buf;
|
||||
int stat_return_value;
|
||||
|
||||
- prefix = PyUnicode_FromWideChar(Py_GetPrefix(), -1);
|
||||
+ (void) _PySys_GetOptionalAttrString("base_prefix", &prefix);
|
||||
if (prefix == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -143,9 +145,11 @@ _get_tcl_lib_path()
|
||||
/* Check expected location for an installed Python first */
|
||||
tcl_library_path = PyUnicode_FromString("\\tcl\\tcl" TCL_VERSION);
|
||||
if (tcl_library_path == NULL) {
|
||||
+ Py_DECREF(prefix);
|
||||
return NULL;
|
||||
}
|
||||
tcl_library_path = PyUnicode_Concat(prefix, tcl_library_path);
|
||||
+ Py_DECREF(prefix);
|
||||
if (tcl_library_path == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
@@ -959,7 +963,8 @@ AsObj(PyObject *value)
|
||||
(unsigned char *)(void *)&wideValue,
|
||||
sizeof(wideValue),
|
||||
PY_LITTLE_ENDIAN,
|
||||
- /* signed */ 1) == 0) {
|
||||
+ /* signed */ 1,
|
||||
+ /* with_exceptions */ 1) == 0) {
|
||||
return Tcl_NewWideIntObj(wideValue);
|
||||
}
|
||||
PyErr_Clear();
|
||||
@@ -1988,7 +1993,7 @@ _tkinter_tkapp_getboolean(TkappObject *self, PyObject *arg)
|
||||
int v;
|
||||
|
||||
if (PyLong_Check(arg)) { /* int or bool */
|
||||
- return PyBool_FromLong(Py_SIZE(arg) != 0);
|
||||
+ return PyBool_FromLong(!_PyLong_IsZero((PyLongObject *)arg));
|
||||
}
|
||||
|
||||
if (PyTclObject_Check(arg)) {
|
||||
diff --git a/clinic/_tkinter.c.h b/clinic/_tkinter.c.h
|
||||
index 9103565..f43510d 100644
|
||||
--- a/clinic/_tkinter.c.h
|
||||
+++ b/clinic/_tkinter.c.h
|
||||
@@ -2,6 +2,8 @@
|
||||
preserve
|
||||
[clinic start generated code]*/
|
||||
|
||||
+#include "pycore_modsupport.h" // _PyArg_BadArgument()
|
||||
+
|
||||
PyDoc_STRVAR(_tkinter_tkapp_eval__doc__,
|
||||
"eval($self, script, /)\n"
|
||||
"--\n"
|
||||
@@ -426,7 +428,7 @@ _tkinter_tkapp_createfilehandler(TkappObject *self, PyObject *const *args, Py_ss
|
||||
goto exit;
|
||||
}
|
||||
file = args[0];
|
||||
- mask = _PyLong_AsInt(args[1]);
|
||||
+ mask = PyLong_AsInt(args[1]);
|
||||
if (mask == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
@@ -490,7 +492,7 @@ _tkinter_tkapp_createtimerhandler(TkappObject *self, PyObject *const *args, Py_s
|
||||
if (!_PyArg_CheckPositional("createtimerhandler", nargs, 2, 2)) {
|
||||
goto exit;
|
||||
}
|
||||
- milliseconds = _PyLong_AsInt(args[0]);
|
||||
+ milliseconds = PyLong_AsInt(args[0]);
|
||||
if (milliseconds == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
@@ -524,7 +526,7 @@ _tkinter_tkapp_mainloop(TkappObject *self, PyObject *const *args, Py_ssize_t nar
|
||||
if (nargs < 1) {
|
||||
goto skip_optional;
|
||||
}
|
||||
- threshold = _PyLong_AsInt(args[0]);
|
||||
+ threshold = PyLong_AsInt(args[0]);
|
||||
if (threshold == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
@@ -558,7 +560,7 @@ _tkinter_tkapp_dooneevent(TkappObject *self, PyObject *const *args, Py_ssize_t n
|
||||
if (nargs < 1) {
|
||||
goto skip_optional;
|
||||
}
|
||||
- flags = _PyLong_AsInt(args[0]);
|
||||
+ flags = PyLong_AsInt(args[0]);
|
||||
if (flags == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
@@ -741,29 +743,29 @@ _tkinter_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
|
||||
if (nargs < 4) {
|
||||
goto skip_optional;
|
||||
}
|
||||
- interactive = _PyLong_AsInt(args[3]);
|
||||
- if (interactive == -1 && PyErr_Occurred()) {
|
||||
+ interactive = PyObject_IsTrue(args[3]);
|
||||
+ if (interactive < 0) {
|
||||
goto exit;
|
||||
}
|
||||
if (nargs < 5) {
|
||||
goto skip_optional;
|
||||
}
|
||||
- wantobjects = _PyLong_AsInt(args[4]);
|
||||
- if (wantobjects == -1 && PyErr_Occurred()) {
|
||||
+ wantobjects = PyObject_IsTrue(args[4]);
|
||||
+ if (wantobjects < 0) {
|
||||
goto exit;
|
||||
}
|
||||
if (nargs < 6) {
|
||||
goto skip_optional;
|
||||
}
|
||||
- wantTk = _PyLong_AsInt(args[5]);
|
||||
- if (wantTk == -1 && PyErr_Occurred()) {
|
||||
+ wantTk = PyObject_IsTrue(args[5]);
|
||||
+ if (wantTk < 0) {
|
||||
goto exit;
|
||||
}
|
||||
if (nargs < 7) {
|
||||
goto skip_optional;
|
||||
}
|
||||
- sync = _PyLong_AsInt(args[6]);
|
||||
- if (sync == -1 && PyErr_Occurred()) {
|
||||
+ sync = PyObject_IsTrue(args[6]);
|
||||
+ if (sync < 0) {
|
||||
goto exit;
|
||||
}
|
||||
if (nargs < 8) {
|
||||
@@ -814,7 +816,7 @@ _tkinter_setbusywaitinterval(PyObject *module, PyObject *arg)
|
||||
PyObject *return_value = NULL;
|
||||
int new_val;
|
||||
|
||||
- new_val = _PyLong_AsInt(arg);
|
||||
+ new_val = PyLong_AsInt(arg);
|
||||
if (new_val == -1 && PyErr_Occurred()) {
|
||||
goto exit;
|
||||
}
|
||||
diff --git a/setup.py b/setup.py
|
||||
index f379305..cf7b6ad 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -3,11 +3,11 @@ from distutils.core import setup, Extension
|
||||
module1 = Extension('_tkinter',
|
||||
libraries=['tcl8.6', 'tk8.6'],
|
||||
sources=['_tkinter.c'],
|
||||
- include_dirs=['/app/include/'])
|
||||
+ include_dirs=['/app/include/', '/usr/include/python3.13/internal/'])
|
||||
|
||||
setup(
|
||||
name='tkinter-standalone',
|
||||
- version='3.11',
|
||||
+ version='3.13',
|
||||
description='Tkinter packaged as an external package for flatpak.',
|
||||
ext_modules=[module1],
|
||||
packages=["tkinter"]
|
||||
40
build-aux/flatpak/pypi-dependencies.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "pypi-dependencies",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [],
|
||||
"modules": [
|
||||
{
|
||||
"name": "python3-PySimpleGUI",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"PySimpleGUI\" --no-build-isolation"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/4d/d9/3de4b7ca71a7779e4f4a160088621b072a29d9b814a7fa9b5411571f4849/pysimplegui-5.0.8.3-py3-none-any.whl",
|
||||
"sha256": "67e35ad6dd76e9369051261114f4711308e87815a0488f7fa28b37c29a546f8b"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "python3-qet-tb-generator",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"qet-tb-generator\" --no-build-isolation"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/4d/d9/3de4b7ca71a7779e4f4a160088621b072a29d9b814a7fa9b5411571f4849/pysimplegui-5.0.8.3-py3-none-any.whl",
|
||||
"sha256": "67e35ad6dd76e9369051261114f4711308e87815a0488f7fa28b37c29a546f8b"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"url": "https://files.pythonhosted.org/packages/63/d6/81de49a3ccec259583241fec4d79c668eff4acf9eb4d0226db36e1399f2d/qet_tb_generator-1.3.1-py3-none-any.whl",
|
||||
"sha256": "80fb4af229edfd5774e61f96fa387ff394d5060abd0ca45c3c74d29de1ce9b53"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
58
build-aux/flatpak/tkinter.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"//note": "The `tkinter` module is missing from the Freedesktop Sdk's Python installation",
|
||||
"name": "tkinter",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"pip3 install --prefix=${FLATPAK_DEST} --no-build-isolation ."
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"url": "https://github.com/iwalton3/tkinter-standalone",
|
||||
"commit": "88aa05075d90d393a29a484bce676e237d311082"
|
||||
},
|
||||
{
|
||||
"type": "patch",
|
||||
"path": "patches/tkinter-build.patch"
|
||||
}
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
"name": "tcl",
|
||||
"buildsystem": "autotools",
|
||||
"subdir": "unix",
|
||||
"post-install": [
|
||||
"chmod 755 /app/lib/libtcl*.so"
|
||||
],
|
||||
"cleanup": [
|
||||
"/bin"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://prdownloads.sourceforge.net/tcl/tcl8.6.17-src.tar.gz",
|
||||
"sha256": "a3903371efcce8a405c5c245d029e9f6850258a60fa3761c4d58995610949b31"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "tk",
|
||||
"buildsystem": "autotools",
|
||||
"subdir": "unix",
|
||||
"post-install": [
|
||||
"chmod 755 /app/lib/libtk*.so"
|
||||
],
|
||||
"cleanup": [
|
||||
"/bin",
|
||||
"/lib/tk*/demos"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://prdownloads.sourceforge.net/tcl/tk8.6.17-src.tar.gz",
|
||||
"sha256": "e4982df6f969c08bf9dd858a6891059b4a3f50dc6c87c10abadbbe2fc4838946"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,3 +1,6 @@
|
||||
[ca]
|
||||
Col·lecció d'elements per a QElectroTech.
|
||||
|
||||
[fr]
|
||||
Collection d'éléments pour QElectroTech.
|
||||
|
||||
@@ -10,6 +13,7 @@ Bauteilsammlung für QElectroTech.
|
||||
[es]
|
||||
Collección de elementos para QElectroTech.
|
||||
|
||||
|
||||
[pt]
|
||||
Colecção de elementos para QElectroTech.
|
||||
|
||||
|
||||
20
build-aux/snap/local/launchers/qelectrotech-launch
Executable file → Normal file
@@ -1,15 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
# a KDE session forces the KDE Plasma platformtheme which is incompatible with QET
|
||||
# unset the ENV vars in that case to prevent loading of the theme
|
||||
if [ ! -z "$KDE_FULL_SESSION" ]; then
|
||||
unset KDE_FULL_SESSION
|
||||
fi
|
||||
|
||||
if echo "$XDG_CURRENT_DESKTOP" | grep -q KDE; then
|
||||
unset XDG_CURRENT_DESKTOP
|
||||
fi
|
||||
|
||||
# migrate .qet directory from SNAP_USER_DATA to SNAP_USER_COMMON
|
||||
from="$SNAP_USER_DATA/.qet"
|
||||
to="$SNAP_USER_COMMON/.qet"
|
||||
@@ -19,16 +9,6 @@ if [ ! -d "$to" ] && [ -d "$from" ]; then
|
||||
cp -av "$from/." "$to"
|
||||
fi
|
||||
|
||||
# link DXFtoQET so that QET finds it
|
||||
mkdir -p "$HOME/.qet"
|
||||
ln -snf "$SNAP/bin/DXFtoQET" "$HOME/.qet/DXFtoQET"
|
||||
|
||||
# start desktop portal. Open & save dialogs might fail if it is not running
|
||||
dbus-send --print-reply \
|
||||
--dest=org.freedesktop.DBus \
|
||||
/org/freedesktop/DBus \
|
||||
org.freedesktop.DBus.StartServiceByName \
|
||||
string:org.freedesktop.portal.Desktop \
|
||||
uint32:0
|
||||
|
||||
exec "${@}"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: qelectrotech
|
||||
title: QElectroTech
|
||||
base: core18
|
||||
base: core22
|
||||
adopt-info: qelectrotech
|
||||
license: GPL-2.0
|
||||
summary: Electrical diagram editor
|
||||
@@ -10,45 +10,39 @@ description: |
|
||||
|
||||
grade: stable
|
||||
confinement: strict
|
||||
compression: lzo
|
||||
|
||||
architectures:
|
||||
- build-on: amd64
|
||||
run-on: amd64
|
||||
|
||||
build-for: amd64
|
||||
- build-on: arm64
|
||||
build-for: arm64
|
||||
|
||||
layout:
|
||||
/usr/local/share/qelectrotech:
|
||||
symlink: $SNAP/usr/local/share/qelectrotech
|
||||
/usr/share/libdrm/amdgpu.ids:
|
||||
symlink: $SNAP/kf5/usr/share/libdrm/amdgpu.ids
|
||||
|
||||
|
||||
apps:
|
||||
qelectrotech:
|
||||
command: usr/local/bin/qelectrotech
|
||||
command-chain:
|
||||
- bin/qelectrotech-launch
|
||||
desktop: usr/local/share/applications/qelectrotech.desktop
|
||||
extensions: [kde-neon]
|
||||
plugs: &plugs [opengl, unity7, home, removable-media, gsettings, network, cups-control]
|
||||
common-id: qelectrotech.desktop
|
||||
extensions:
|
||||
- kde-neon
|
||||
plugs: &plugs [opengl, unity7, home, removable-media, gsettings, network, cups-control, wayland, x11]
|
||||
environment: &env
|
||||
__EGL_VENDOR_LIBRARY_DIRS: $SNAP/kf5/usr/share/glvnd/egl_vendor.d:$SNAP/usr/share/glvnd/egl_vendor.d
|
||||
TCL_LIBRARY: $SNAP/usr/share/tcltk/tcl8.6
|
||||
QT_QPA_PLATFORMTHEME: gtk3
|
||||
QT_AUTO_SCREEN_SCALE_FACTOR: 1
|
||||
HOME: $SNAP_USER_COMMON
|
||||
PYTHONPATH: $SNAP:$SNAP/lib/python3.6/site-packages:$SNAP/usr/lib/python3.6:$SNAP/usr/lib/python3.6/lib-dynload
|
||||
PYTHONPATH: $SNAP:$SNAP/lib/python3.10/site-packages:$SNAP/usr/lib/python3.10:$SNAP/usr/lib/python3.10/lib-dynload
|
||||
|
||||
qet-tb-generator:
|
||||
command: bin/qelectrotech-launch $SNAP/bin/qet_tb_generator
|
||||
extensions: [kde-neon]
|
||||
command: bin/qet_tb_generator
|
||||
extensions:
|
||||
- kde-neon
|
||||
plugs: *plugs
|
||||
environment: *env
|
||||
|
||||
dxf-to-qet:
|
||||
command: bin/DXFtoQET
|
||||
extensions: [kde-neon]
|
||||
plugs: *plugs
|
||||
environment: *env
|
||||
|
||||
|
||||
parts:
|
||||
launchers:
|
||||
plugin: dump
|
||||
@@ -58,8 +52,8 @@ parts:
|
||||
|
||||
qet-tb-generator:
|
||||
plugin: python
|
||||
python-version: python3
|
||||
source: https://github.com/qelectrotech/qet_tb_generator.git
|
||||
source: https://github.com/raulroda/qet_tb_generator-plugin.git
|
||||
python-packages: [PySimpleGUI]
|
||||
stage-packages:
|
||||
- python3-lxml
|
||||
- python3-tk
|
||||
@@ -68,57 +62,50 @@ parts:
|
||||
kde-sdk-setup:
|
||||
plugin: nil
|
||||
build-snaps:
|
||||
- kde-frameworks-5-core18-sdk
|
||||
- kf5-5-110-qt-5-15-11-core22-sdk
|
||||
build-packages:
|
||||
- g++
|
||||
- mesa-common-dev
|
||||
- libglvnd-dev
|
||||
- rsync
|
||||
override-build: |
|
||||
rsync -a --ignore-existing /snap/kde-frameworks-5-core18-sdk/current/ /
|
||||
|
||||
dxf-to-qet:
|
||||
after: [kde-sdk-setup]
|
||||
plugin: nil
|
||||
source: https://github.com/qelectrotech/DXFtoQET-2020.git
|
||||
override-build: |
|
||||
qmake "$SNAPCRAFT_PART_SRC/DXFtoQET.pro"
|
||||
make -j$(nproc)
|
||||
mkdir -p "$SNAPCRAFT_PART_INSTALL/bin"
|
||||
cp DXFtoQET "$SNAPCRAFT_PART_INSTALL/bin/"
|
||||
rsync -a --ignore-existing /snap/kf5-5-110-qt-5-15-11-core22-sdk/current/ /
|
||||
|
||||
|
||||
qelectrotech:
|
||||
after: [kde-sdk-setup]
|
||||
plugin: nil
|
||||
source: .
|
||||
stage-packages: [ git, sqlite3 ]
|
||||
stage-packages: [ git, sqlite3, xdg-user-dirs ]
|
||||
build-packages:
|
||||
- git
|
||||
- libsqlite3-dev
|
||||
override-pull: |
|
||||
snapcraftctl pull
|
||||
snap_version=$(git describe --dirty)
|
||||
modified_displayed_version=$snap_version".snap"
|
||||
sed -i -E "s|const QString displayedVersion =.*|const QString displayedVersion =\"$modified_displayed_version\";|" sources/qet.h
|
||||
snapcraftctl set-version "$snap_version"
|
||||
override-build: |
|
||||
qmake "$SNAPCRAFT_PART_SRC/qelectrotech.pro"
|
||||
make -j$(nproc)
|
||||
make install INSTALL_ROOT="$SNAPCRAFT_PART_INSTALL"
|
||||
displayed_version=$(cat sources/qetversion.cpp | grep "return QVersionNumber{"| head -n 1| awk -F "{" '{ print $2 }' | awk -F "}" '{ print $1 }' | sed -e 's/,/./g' -e 's/ //g')
|
||||
snap_version="${displayed_version}-g$(git rev-parse --short=8 HEAD)"
|
||||
modified_displayed_version="${snap_version}.snap"
|
||||
sed -i -E "s|const QString displayedVersion =.*|const QString displayedVersion =\"$modified_displayed_version\";|" sources/qet.h
|
||||
craftctl set version="$snap_version"
|
||||
qmake "$CRAFT_PART_SRC/qelectrotech.pro"
|
||||
make -j${CRAFT_PARALLEL_BUILD_COUNT}
|
||||
make install INSTALL_ROOT="$CRAFT_PART_INSTALL"
|
||||
override-stage: |
|
||||
snapcraftctl stage
|
||||
craftctl default
|
||||
# patch desktop file with correct icon path
|
||||
SED_CMD="sed -i -E s|^Icon=(.*)|Icon=\${SNAP}/usr/local/share/icons/hicolor/128x128/apps/\1.png|g"
|
||||
$SED_CMD usr/local/share/applications/qelectrotech.desktop
|
||||
$SED_CMD usr/local/share/applications/org.qelectrotech.qelectrotech.desktop
|
||||
|
||||
cleanup:
|
||||
after: [qelectrotech, dxf-to-qet, qet-tb-generator]
|
||||
after: [qelectrotech, qet-tb-generator]
|
||||
plugin: nil
|
||||
build-snaps: [core18, kde-frameworks-5-core18]
|
||||
build-snaps: [kf5-5-110-qt-5-15-11-core22]
|
||||
override-prime: |
|
||||
# Remove all files from snap that are already included in the base snap or in
|
||||
# any connected content snaps
|
||||
set -eux
|
||||
for snap in "core18" "kde-frameworks-5-core18"; do # List all content-snaps and base snaps you're using here
|
||||
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$SNAPCRAFT_PRIME/{}" \;
|
||||
for snap in "kf5-5-110-qt-5-15-11-core22"; do # List all content-snaps you're using here
|
||||
cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$CRAFT_PRIME/{}" "$CRAFT_PRIME/usr/{}" \;
|
||||
done
|
||||
for cruft in bug lintian man; do
|
||||
rm -rf $CRAFT_PRIME/usr/share/$cruft
|
||||
done
|
||||
find $CRAFT_PRIME/usr/share/doc/ -type f -not -name 'copyright' -delete
|
||||
find $CRAFT_PRIME/usr/share -type d -empty -delete
|
||||
|
||||
@@ -1,191 +0,0 @@
|
||||
# Header, don't edit
|
||||
NLF v6
|
||||
# Start editing here
|
||||
# Language ID
|
||||
2067
|
||||
# Font and size - dash (-) means default
|
||||
-
|
||||
-
|
||||
# Codepage - dash (-) means ANSI code page
|
||||
1252
|
||||
# RTL - anything else than RTL means LTR
|
||||
-
|
||||
# Translation by Ronny Desmedt (any credits should go here)
|
||||
# ^Branding
|
||||
Nullsoft Install System %s
|
||||
# ^SetupCaption
|
||||
$(^Name) Installatie
|
||||
# ^UninstallCaption
|
||||
$(^Name) Deïnstallatie
|
||||
# ^LicenseSubCaption
|
||||
: Licentie overeenkomst
|
||||
# ^ComponentsSubCaption
|
||||
: Installatie Opties
|
||||
# ^DirSubCaption
|
||||
: Installatie Map
|
||||
# ^InstallingSubCaption
|
||||
: Installeren
|
||||
# ^CompletedSubCaption
|
||||
: Voltooid
|
||||
# ^UnComponentsSubCaption
|
||||
: Deïnstallatie Opties
|
||||
# ^UnDirSubCaption
|
||||
: Deïnstallatie Map
|
||||
# ^ConfirmSubCaption
|
||||
: Bevestigen
|
||||
# ^UninstallingSubCaption
|
||||
: Deïnstalleren
|
||||
# ^UnCompletedSubCaption
|
||||
: Voltooid
|
||||
# ^BackBtn
|
||||
< &Terug
|
||||
# ^NextBtn
|
||||
&Volgende >
|
||||
# ^AgreeBtn
|
||||
Ik ben &Akkoord
|
||||
# ^AcceptBtn
|
||||
Ik &Accepteer de licentie overeenkomst
|
||||
# ^DontAcceptBtn
|
||||
Ik &Accepteer de licentie overeenkomst niet
|
||||
# ^InstallBtn
|
||||
&Installeer
|
||||
# ^UninstallBtn
|
||||
&Deïnstalleer
|
||||
# ^CancelBtn
|
||||
Afbreken
|
||||
# ^CloseBtn
|
||||
&Sluiten
|
||||
# ^BrowseBtn
|
||||
B&laderen...
|
||||
# ^ShowDetailsBtn
|
||||
Toon &details
|
||||
# ^ClickNext
|
||||
Klik op volgende om verder te gaan.
|
||||
# ^ClickInstall
|
||||
Klik op installeren om de installatie te starten.
|
||||
# ^ClickUninstall
|
||||
Klik op deïnstalleren om de installatie te verwijderen.
|
||||
# ^Name
|
||||
Naam
|
||||
# ^Completed
|
||||
Voltooid
|
||||
# ^LicenseText
|
||||
Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te installeren. Als u akkord bent met de licentie overeenkomst, klik op akkoord.
|
||||
# ^LicenseTextCB
|
||||
Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te installeren. Als u akkord bent met de licentie overeenkomst, klik op onderstaande selectievakje. $_CLICK
|
||||
# ^LicenseTextRB
|
||||
Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te installeren. Als u akkord bent met de licentie overeenkomst, selecteer de eerste onderstaande optie. $_CLICK
|
||||
# ^UnLicenseText
|
||||
Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te deïnstalleren. Als u akkord bent met de licentie overeenkomst, klik op akkoord.
|
||||
# ^UnLicenseTextCB
|
||||
Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te deïnstalleren. Als u akkord bent met de licentie overeenkomst, klik op onderstaande selectievakje. $_CLICK
|
||||
# ^UnLicenseTextRB
|
||||
Gelieve de licentie overeenkomst te lezen alvorens $(^NameDA) te deïnstalleren. Als u akkord bent met de licentie overeenkomst, selecteer de eerste onderstaande optie. $_CLICK
|
||||
# ^Custom
|
||||
Aangepast
|
||||
# ^ComponentsText
|
||||
Selecteer de onderdelen die u wilt installeren en deselecteer de onderdelen die u niet wilt installeren. $_CLICK
|
||||
# ^ComponentsSubText1
|
||||
Selecteer een installatie type:
|
||||
# ^ComponentsSubText2_NoInstTypes
|
||||
Selecteer de onderdelen om te installeren:
|
||||
# ^ComponentsSubText2
|
||||
Of, selecteer optionelen onderdelen die u wilt installeren:
|
||||
# ^UnComponentsText
|
||||
Selecteer de onderdelen die u wilt deïnstalleren en deselecteer de onderdelen die u niet wilt deïinstalleren. $_CLICK
|
||||
# ^UnComponentsSubText1
|
||||
Selecteer een deïnstallatie type:
|
||||
# ^UnComponentsSubText2_NoInstTypes
|
||||
Selecteer de onderdelen om te deïnstalleren:
|
||||
# ^UnComponentsSubText2
|
||||
Of, selecteer optionelen onderdelen die u wilt deïnstalleren:
|
||||
# ^DirText
|
||||
De installatie van $(^NameDA) wordt in volgende map uitgevoerd. Om in een andere map te installeren, klik op bladeren om een andere map te selecteren. $_CLICK
|
||||
# ^DirSubText
|
||||
Installatie map
|
||||
# ^DirBrowseText
|
||||
Selecteerd de map om $(^NameDA) in te installeren:
|
||||
# ^UnDirText
|
||||
De deïnstallatie van $(^NameDA) in de volgende map. Om een andere map te deïnstalleren, klik op bladren om een andere map te selecteren. $_CLICK
|
||||
# ^UnDirSubText
|
||||
""
|
||||
# ^UnDirBrowseText
|
||||
Selecteer en map om $(^NameDA) van te deînstalleren:
|
||||
# ^SpaceAvailable
|
||||
"Beschikbare ruimte: "
|
||||
# ^SpaceRequired
|
||||
"Benodigde ruimte: "
|
||||
# ^UninstallingText
|
||||
$(^NameDA) wordt gedeïnstalleerd uit volgende map. $_CLICK
|
||||
# ^UninstallingSubText
|
||||
Deïnstalleren van:
|
||||
# ^FileError
|
||||
Fout bij openen van bestand om te schrijven: \r\n\r\n$0\r\n\r\nKlik op afbreken om de installatie te stoppen,\r\nOpnieuw om te proberen, of\r\nNegeren om dit bestand over te slaan.
|
||||
# ^FileError_NoIgnore
|
||||
Fout bij openen van bestand om te schrijven: \r\n\r\n$0\r\n\r\nOpnieuw om te proberen, of\r\nAfbreken om de installatie te stoppen.
|
||||
# ^CantWrite
|
||||
"Kan niet schrijven: "
|
||||
# ^CopyFailed
|
||||
Kopieren mislukt
|
||||
# ^CopyTo
|
||||
"Copier naar "
|
||||
# ^Registering
|
||||
"Registreren: "
|
||||
# ^Unregistering
|
||||
"Deregistreren: "
|
||||
# ^SymbolNotFound
|
||||
"Kan symbool niet vinden: "
|
||||
# ^CouldNotLoad
|
||||
"Kan niet laden: "
|
||||
# ^CreateFolder
|
||||
"Map maken: "
|
||||
# ^CreateShortcut
|
||||
"Snelkoppeling maken: "
|
||||
# ^CreatedUninstaller
|
||||
"Doe deïnstallatie: "
|
||||
# ^Delete
|
||||
"Verwijder bestanden: "
|
||||
# ^DeleteOnReboot
|
||||
Verwijder bij herstarten: "
|
||||
# ^ErrorCreatingShortcut
|
||||
"Fout bij maken snelkoppeling: "
|
||||
# ^ErrorCreating
|
||||
"Fout bij maken: "
|
||||
# ^ErrorDecompressing
|
||||
Fout bij uitpakken gegevens! Beschadigd bestand?
|
||||
# ^ErrorRegistering
|
||||
Fout bij registreren DLL
|
||||
# ^ExecShell
|
||||
"ExecShell: "
|
||||
# ^Exec
|
||||
"Uitvoeren: "
|
||||
# ^Extract
|
||||
"Extract: "
|
||||
# ^ErrorWriting
|
||||
Fout: fout bij schrijven naar bestand "
|
||||
# ^InvalidOpcode
|
||||
Installie beschadigd: niet toegestane opcode
|
||||
# ^NoOLE
|
||||
"Geen OLE voor: "
|
||||
# ^OutputFolder
|
||||
"Bestemmings map: "
|
||||
# ^RemoveFolder
|
||||
"Verwijder mapr: "
|
||||
# ^RenameOnReboot
|
||||
"Hernoem bij opstarten: "
|
||||
# ^Rename
|
||||
"Hernoem: "
|
||||
# ^Skipped
|
||||
Overgeslagen: "
|
||||
# ^CopyDetails
|
||||
Copier details naar klembord
|
||||
# ^LogInstall
|
||||
Log instaltie proces
|
||||
# ^Byte
|
||||
B
|
||||
# ^Kilo
|
||||
K
|
||||
# ^Mega
|
||||
M
|
||||
# ^Giga
|
||||
G
|
||||
@@ -1,128 +0,0 @@
|
||||
;Language:Dutch_Belgium (2067)
|
||||
;By Ronny Desmedt
|
||||
|
||||
!insertmacro LANGFILE "Dutch_Belgium" "Dutch_Belgium"
|
||||
|
||||
!ifdef MUI_WELCOMEPAGE
|
||||
${LangFileString} MUI_TEXT_WELCOME_INFO_TITLE "Welkom bij $(^NameDA) installatie Wizard"
|
||||
${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "Deze wizard zal u begeleiden bij de installatie van $(^NameDA).$\r$\n$\r$\nHet is aanbevol dat u alle andere programmas afsluit voordat u deze installatie uitvoerd. Dit geeft de mogelijkheid om relevante systeem bestanden bij te werken zonder dat uw systeem terug moet opstarten.$\r$\n$\r$\n$_CLICK"
|
||||
!endif
|
||||
|
||||
!ifdef MUI_UNWELCOMEPAGE
|
||||
${LangFileString} MUI_UNTEXT_WELCOME_INFO_TITLE "Welkom bij de $(^NameDA) deïnstallatie wizard"
|
||||
${LangFileString} MUI_UNTEXT_WELCOME_INFO_TEXT "Deze wizard zal u begeleiden bij de deïnstallatie van $(^NameDA).$\r$\n$\r$\nControleer of $(^NameDA) is afgesloten alvorens de deïnstallatie te starten.$\r$\n$\r$\n$_CLICK"
|
||||
!endif
|
||||
|
||||
!ifdef MUI_LICENSEPAGE
|
||||
${LangFileString} MUI_TEXT_LICENSE_TITLE "Licentie overeenkomst"
|
||||
${LangFileString} MUI_TEXT_LICENSE_SUBTITLE "Gelieve de licentie te lezen alvorens U $(^NameDA) installeert."
|
||||
${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM "Klik op akkoord om de overeenkomst te aanvaarden. U moet de overeenkomst aanvaarden om $(^NameDA) te installeren."
|
||||
${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_CHECKBOX "Als u de voorwaarden van de overeenkomst aanvaard, Klik op onderstaande selectievakje. U moet de overeenkomst aanvaarden om $(^NameDA) te installeren. $_CLICK"
|
||||
${LangFileString} MUI_INNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "Als u de voorwaarden van de overeenkomst aanvaard, selecteer de eerste onderstaande optie. U moet de overeenkomst aanvaarden om $(^NameDA) te installeren. $_CLICK"
|
||||
!endif
|
||||
|
||||
!ifdef MUI_UNLICENSEPAGE
|
||||
${LangFileString} MUI_UNTEXT_LICENSE_TITLE "Licentie overeenkomst"
|
||||
${LangFileString} MUI_UNTEXT_LICENSE_SUBTITLE "Gelieve de licentie overeenkomst te herlezen alvorens met de deïnstallatie van $(^NameDA) verder te doen."
|
||||
${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM "Klik op akkoord om de overeenkomst te aanvaarden. U moet de overeenkomst aanvaarden om $(^NameDA) te deïnstalleren."
|
||||
${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_CHECKBOX "Als u de voorwaarden van de overeenkomst aanvaard, Klik op onderstaande selectievakje. U moet de overeenkomst aanvaarden om $(^NameDA) te deïnstalleren. $_CLICK"
|
||||
${LangFileString} MUI_UNINNERTEXT_LICENSE_BOTTOM_RADIOBUTTONS "Als u de voorwaarden van de overeenkomst aanvaard, selecteer de eerste onderstaande optie. U moet de overeenkomst aanvaarden om $(^NameDA) te deïnstalleren. $_CLICK"
|
||||
!endif
|
||||
|
||||
!ifdef MUI_LICENSEPAGE | MUI_UNLICENSEPAGE
|
||||
${LangFileString} MUI_INNERTEXT_LICENSE_TOP "Gebruik pagina neer om de rest van de overeenkomst te lezen."
|
||||
!endif
|
||||
|
||||
!ifdef MUI_COMPONENTSPAGE
|
||||
${LangFileString} MUI_TEXT_COMPONENTS_TITLE "Kies onderdelen"
|
||||
${LangFileString} MUI_TEXT_COMPONENTS_SUBTITLE "Kies de onderdelen van $(^NameDA) die u wilt installeren."
|
||||
!endif
|
||||
|
||||
!ifdef MUI_UNCOMPONENTSPAGE
|
||||
${LangFileString} MUI_UNTEXT_COMPONENTS_TITLE "Kies onderdelen"
|
||||
${LangFileString} MUI_UNTEXT_COMPONENTS_SUBTITLE "Kies de onderdelen van $(^NameDA) die u wilt deïnstalleren."
|
||||
!endif
|
||||
|
||||
!ifdef MUI_COMPONENTSPAGE | MUI_UNCOMPONENTSPAGE
|
||||
${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE "Beschrijving"
|
||||
!ifndef NSIS_CONFIG_COMPONENTPAGE_ALTERNATIVE
|
||||
${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "Beweeg de muisaanwijzer over de onderdelen om de beschrijving te zien."
|
||||
!else
|
||||
${LangFileString} MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO "Beweeg de muisaanwijzer over de onderdelen om de beschrijving te zien."
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!ifdef MUI_DIRECTORYPAGE
|
||||
${LangFileString} MUI_TEXT_DIRECTORY_TITLE "Kies een installatie locatie"
|
||||
${LangFileString} MUI_TEXT_DIRECTORY_SUBTITLE "Kies een map waar U $(^NameDA) wilt installeren."
|
||||
!endif
|
||||
|
||||
!ifdef MUI_UNDIRECTORYPAGE
|
||||
${LangFileString} MUI_UNTEXT_DIRECTORY_TITLE "Kies een deïnstallatie locatie"
|
||||
${LangFileString} MUI_UNTEXT_DIRECTORY_SUBTITLE "Kies een map waar U $(^NameDA) wilt deïnstalleren."
|
||||
!endif
|
||||
|
||||
!ifdef MUI_INSTFILESPAGE
|
||||
${LangFileString} MUI_TEXT_INSTALLING_TITLE "Installeren"
|
||||
${LangFileString} MUI_TEXT_INSTALLING_SUBTITLE "Even gedult terwijl $(^NameDA) wordt geinstalleerd."
|
||||
${LangFileString} MUI_TEXT_FINISH_TITLE "Installatie voltooid"
|
||||
${LangFileString} MUI_TEXT_FINISH_SUBTITLE "De installatie is succesvol afgerond."
|
||||
${LangFileString} MUI_TEXT_ABORT_TITLE "Installatie is afgebroken"
|
||||
${LangFileString} MUI_TEXT_ABORT_SUBTITLE "De installatie is niet voltooid."
|
||||
!endif
|
||||
|
||||
!ifdef MUI_UNINSTFILESPAGE
|
||||
${LangFileString} MUI_UNTEXT_UNINSTALLING_TITLE "DeïnEven geduld terwijl $(^NameDA) wordt gedeïnstalleerd."
|
||||
${LangFileString} MUI_UNTEXT_FINISH_TITLE "Deïnstallatie voltooid"
|
||||
${LangFileString} MUI_UNTEXT_FINISH_SUBTITLE "Deïnstallatie succesvol afgerond."
|
||||
${LangFileString} MUI_UNTEXT_ABORT_TITLE "Deïnstallatie onderbroken"
|
||||
${LangFileString} MUI_UNTEXT_ABORT_SUBTITLE "Deïnstallatie is niet voltooid."
|
||||
!endif
|
||||
|
||||
!ifdef MUI_FINISHPAGE
|
||||
${LangFileString} MUI_TEXT_FINISH_INFO_TITLE "Voltooien van de $(^NameDA) installatie Wizard"
|
||||
${LangFileString} MUI_TEXT_FINISH_INFO_TEXT "$(^NameDA) is geinstalleerd op uw computer.$\r$\n$\r$\nKlik op einde om de installatie wizard af te sluiten."
|
||||
${LangFileString} MUI_TEXT_FINISH_INFO_REBOOT "Uw computer moet herstarten op de installatie van $(^NameDA) te voltooien. Wilt u nu opnieuw opstarten?"
|
||||
!endif
|
||||
|
||||
!ifdef MUI_UNFINISHPAGE
|
||||
${LangFileString} MUI_UNTEXT_FINISH_INFO_TITLE "Voltooien van de $(^NameDA) deïnstallatie wizard"
|
||||
${LangFileString} MUI_UNTEXT_FINISH_INFO_TEXT "$(^NameDA) is gedeïnstalleerd op uw computer.$\r$\n$\r$\nKlik op einde om de installatie wizard af te sluiten."
|
||||
${LangFileString} MUI_UNTEXT_FINISH_INFO_REBOOT "Uw computer moet herstarten op de deïnstallatie van $(^NameDA)te voltooien. Wilt u nu opnieuw opstarten?"
|
||||
!endif
|
||||
|
||||
!ifdef MUI_FINISHPAGE | MUI_UNFINISHPAGE
|
||||
${LangFileString} MUI_TEXT_FINISH_REBOOTNOW "Nu herstarten"
|
||||
${LangFileString} MUI_TEXT_FINISH_REBOOTLATER "Ik wil later herstarten"
|
||||
${LangFileString} MUI_TEXT_FINISH_RUN "&Starten $(^NameDA)"
|
||||
${LangFileString} MUI_TEXT_FINISH_SHOWREADME "&Toon leesmij"
|
||||
${LangFileString} MUI_BUTTONTEXT_FINISH "&Einde"
|
||||
!endif
|
||||
|
||||
!ifdef MUI_STARTMENUPAGE
|
||||
${LangFileString} MUI_TEXT_STARTMENU_TITLE "Kies start menu map"
|
||||
${LangFileString} MUI_TEXT_STARTMENU_SUBTITLE "Kies een map in start menu voor de snelkoppeling van $(^NameDA)."
|
||||
${LangFileString} MUI_INNERTEXT_STARTMENU_TOP "Kies een map in start menu waar u de programma snelkoppelingen wilt aanmaken. U kan ook de naam van een nieuwe map opgeven."
|
||||
${LangFileString} MUI_INNERTEXT_STARTMENU_CHECKBOX "Maak geen snelkoppelingen"
|
||||
!endif
|
||||
|
||||
!ifdef MUI_UNCONFIRMPAGE
|
||||
${LangFileString} MUI_UNTEXT_CONFIRM_TITLE "Deïnstalleer$(^NameDA)"
|
||||
${LangFileString} MUI_UNTEXT_CONFIRM_SUBTITLE "Verwijder $(^NameDA) van uw computer."
|
||||
!endif
|
||||
|
||||
!ifdef MUI_ABORTWARNING
|
||||
${LangFileString} MUI_TEXT_ABORTWARNING "Weet u zeker dat U installatie van $(^Name) wilt afbreken?"
|
||||
!endif
|
||||
|
||||
!ifdef MUI_UNABORTWARNING
|
||||
${LangFileString} MUI_UNTEXT_ABORTWARNING "Weet u zeker dat U de deïnstallatie van $(^Name)wilt afbreken?"
|
||||
!endif
|
||||
|
||||
!ifdef MULTIUSER_INSTALLMODEPAGE
|
||||
${LangFileString} MULTIUSER_TEXT_INSTALLMODE_TITLE "Kies gebruikers"
|
||||
${LangFileString} MULTIUSER_TEXT_INSTALLMODE_SUBTITLE "Kies voor welke gebruikers U $(^NameDA) wilt installeren."
|
||||
${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_TOP "Kies of U $(^NameDA) alleen voor u zelf of voor alle gebruikers op deze computer wilt installeren. $(^ClickNext)"
|
||||
${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS "Installeer voor iedereen die deze computer gebruikt"
|
||||
${LangFileString} MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER "Installeer alleen voor mij"
|
||||
!endif
|
||||
7
build-aux/windows/Lancer QET.bat
Normal file → Executable file
@@ -5,7 +5,10 @@ set current_dir=%~dp0
|
||||
cd /d %current_dir%
|
||||
|
||||
rem lance QElectroTech
|
||||
rem Sans option --config-dir, la configuration de QElectroTech ainsi que la
|
||||
rem collection d'elements perso seront dans "%APPDATA%\qet"
|
||||
rem Sans option --config-dir, la configuration de QElectroTech seront dans
|
||||
rem "C:/Users/<USER>/AppData/Local/QElectroTech/QElectroTech"
|
||||
rem Sans l'option --data-dir, les données utilisateur (elements, titleblocks,
|
||||
rem log, ...) de QElectroTech sont stockées dans
|
||||
rem "C:/Users/<USER>/AppData/Roaming/QElectroTech/QElectroTech"
|
||||
set command=bin\qelectrotech.exe --common-elements-dir=elements/ --common-tbt-dir=titleblocks/ --lang-dir=lang/ -style windowsvista %*
|
||||
@start %command%
|
||||
|
||||
118
build-aux/windows/MIGRATION_NOTES.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Migration NSIS 2.x → 3.x — QElectroTech
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
| Fichier | Changement |
|
||||
|---|---|
|
||||
| `QET64.nsi` | Migration complète (voir détails ci-dessous) |
|
||||
| `lang_extra_fr.nsh` | Réencodé ISO-8859-1 → UTF-8 |
|
||||
| `lang_extra.nsh` | Inchangé (déjà UTF-8) |
|
||||
|
||||
---
|
||||
|
||||
## Détail des changements dans `QET64.nsi`
|
||||
|
||||
### 1. `SetCompressor` déplacé en tête de fichier
|
||||
**NSIS 3 exige** que `SetCompressor` apparaisse avant toute `Section` ou `Function`.
|
||||
Avant il était après les `!include` et `!define` — cela fonctionnait en NSIS 2 mais
|
||||
génère un avertissement/erreur en NSIS 3.
|
||||
|
||||
```nsis
|
||||
; ✅ NSIS 3 — en tout premier
|
||||
SetCompressor /FINAL /SOLID lzma
|
||||
```
|
||||
|
||||
### 2. `XPStyle on` supprimé → remplacé par `ManifestSupportedOS`
|
||||
`XPStyle on` est **retiré en NSIS 3**. Il était utilisé pour activer les styles visuels
|
||||
Windows XP/Vista. NSIS 3 gère cela via le manifeste de l'exécutable :
|
||||
|
||||
```nsis
|
||||
; ✅ NSIS 3
|
||||
ManifestSupportedOS all
|
||||
ManifestDPIAware true
|
||||
```
|
||||
|
||||
### 3. `Var /GLOBAL` déclarées au niveau global
|
||||
En NSIS 2, des `Var /GLOBAL` à l'intérieur d'une `Section` compilaient sans erreur.
|
||||
En NSIS 3, les variables doivent être déclarées **au niveau du script** (avant toute section).
|
||||
|
||||
```nsis
|
||||
; ✅ NSIS 3 — déclaration globale
|
||||
Var final_qet_exe
|
||||
Var final_project_ico
|
||||
Var final_element_ico
|
||||
Var final_titleblock_ico
|
||||
```
|
||||
|
||||
### 4. `SetRegView 64` ajouté dans `.onInit`, section cachée, et `un.onInit`
|
||||
En NSIS 3, sur un système 64 bits, **la redirection de registre WOW6432Node est active
|
||||
par défaut**. Sans `SetRegView 64`, les clés HKLM atterrissent dans
|
||||
`HKLM\SOFTWARE\Wow6432Node\` au lieu de `HKLM\SOFTWARE\`.
|
||||
|
||||
Ajouté à trois endroits :
|
||||
- `Function .onInit` → pour lire la clé d'installation existante
|
||||
- Section cachée (registry/shortcuts) → avant les `WriteRegStr`
|
||||
- `Section "Uninstall"` → pour supprimer les bonnes clés
|
||||
- `Function un.onInit` → cohérence avec l'installation
|
||||
|
||||
### 5. Icônes MUI mises à jour
|
||||
Les icônes `XPUI-install.ico` / `XPUI-uninstall.ico` sont remplacées par les nouvelles
|
||||
icônes NSIS 3 :
|
||||
|
||||
```nsis
|
||||
; ✅ NSIS 3
|
||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-install.ico"
|
||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-uninstall.ico"
|
||||
```
|
||||
> Les anciennes icônes XPUI sont encore présentes pour compatibilité ascendante, mais
|
||||
> les nouvelles sont recommandées.
|
||||
|
||||
### 6. `${IfNot} ${RunningX64}` — syntaxe clarifiée
|
||||
Remplacement du bloc `${If}/${Else}/${EndIf}` moins lisible par `${IfNot}` plus concis :
|
||||
|
||||
```nsis
|
||||
; ✅ NSIS 3 — idiome recommandé
|
||||
${IfNot} ${RunningX64}
|
||||
MessageBox MB_OK|MB_ICONSTOP $(wrongArch)
|
||||
Abort
|
||||
${EndIf}
|
||||
```
|
||||
|
||||
### 7. URLs HTTP → HTTPS
|
||||
Les URLs `http://qelectrotech.org/` ont été mises à jour en `https://qelectrotech.org/`
|
||||
(cosmétique, sans impact sur la compilation).
|
||||
|
||||
### 8. `lang_extra_fr.nsh` — Réencodage ISO-8859-1 → UTF-8
|
||||
NSIS 3 est **Unicode natif** : tous les fichiers `.nsh` doivent être encodés en UTF-8
|
||||
(avec ou sans BOM). Le fichier `lang_extra_fr.nsh` était en ISO-8859-1 — il a été
|
||||
converti en UTF-8.
|
||||
|
||||
> **Commande utilisée :** `iconv -f ISO-8859-1 -t UTF-8 lang_extra_fr.nsh`
|
||||
|
||||
---
|
||||
|
||||
## Ce qui N'A PAS changé (déjà compatible NSIS 3)
|
||||
|
||||
- `!include "MUI2.nsh"` — inchangé ✅
|
||||
- `!define MUI_LANGDLL_ALLLANGUAGES` — toujours supporté ✅
|
||||
- `!insertmacro MUI_RESERVEFILE_LANGDLL` — inchangé ✅
|
||||
- `FileFunc.nsh` / macro `Locate` — inchangé ✅
|
||||
- `RequestExecutionLevel admin` — inchangé ✅
|
||||
- `InstallDir "$PROGRAMFILES64\..."` — inchangé ✅
|
||||
- Structure Sections / SubSections — inchangée ✅
|
||||
- `!insertmacro MUI_FUNCTION_DESCRIPTION_*` — inchangé ✅
|
||||
- Toutes les `LangString` — inchangées ✅
|
||||
- `Dutch_Belgium` via `Contrib/` — inchangé ✅
|
||||
|
||||
---
|
||||
|
||||
## Checklist avant compilation avec NSIS 3
|
||||
|
||||
- [ ] NSIS 3.x installé (https://nsis.sourceforge.io/)
|
||||
- [ ] Tous les plugins utilisés sont la version Unicode/NSIS3
|
||||
- `FileFunc.nsh` : fourni avec NSIS 3 ✅
|
||||
- `x64.nsh` : fourni avec NSIS 3 ✅
|
||||
- `MUI2.nsh` : fourni avec NSIS 3 ✅
|
||||
- [ ] `lang_extra.nsh` et `lang_extra_fr.nsh` encodés en UTF-8
|
||||
- [ ] Le fichier `Contrib/Dutch_Belgium.nlf` / `.nsh` est placé dans
|
||||
`%NSIS%\Contrib\Language files\` ou référencé via un chemin relatif
|
||||
@@ -1,391 +0,0 @@
|
||||
; this file is part of installer for QElectroTech
|
||||
; Copyright (C)2015 QElectroTech Team <scorpio@qelectrotech.org>
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or
|
||||
; modify it under the terms of the GNU General Public License
|
||||
; as published by the Free Software Foundation; either
|
||||
; version 2 of the License, or (at your option) any later version.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program; if not, write to the Free Software
|
||||
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
; WebSite : http://qelectrotech.org/
|
||||
|
||||
;--------------------------------
|
||||
;Include Modern UI
|
||||
|
||||
!include "MUI2.nsh"
|
||||
!include "FileFunc.nsh"
|
||||
!insertmacro Locate
|
||||
!include FileFunc.nsh
|
||||
!insertmacro GetParameters
|
||||
!insertmacro GetOptions
|
||||
|
||||
|
||||
|
||||
; MUI Settings
|
||||
;--------------------------------
|
||||
;General
|
||||
; General Product Description Definitions
|
||||
!define SOFT_NAME "QElectroTech"
|
||||
!define SOFT_VERSION "0.5-dev+4113"
|
||||
!define SOFT_WEB_SITE "http://qelectrotech.org/"
|
||||
!define SOFT_BUILD "1"
|
||||
|
||||
SetCompressor /final /solid lzma
|
||||
CRCCheck force
|
||||
XPStyle on
|
||||
BrandingText "${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}" ; Shows in the Bottom Left of the installer
|
||||
|
||||
;Name and file
|
||||
Name "${SOFT_NAME} ${SOFT_VERSION}"
|
||||
OutFile "Installer_${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}.exe"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$PROGRAMFILES\${SOFT_NAME}"
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey HKCU "Software\${SOFT_NAME}" ""
|
||||
|
||||
;Request application privileges for Windows Vista
|
||||
; we request for admin because we write stuff into the registry
|
||||
RequestExecutionLevel admin
|
||||
|
||||
;--------------------------------
|
||||
;Interface Settings
|
||||
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-install.ico"
|
||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-uninstall.ico"
|
||||
|
||||
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\images\wizard.bmp"
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
|
||||
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP ".\images\header.bmp" ; optional
|
||||
|
||||
;--------------------------------
|
||||
;Language Selection Dialog Settings
|
||||
|
||||
;Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "Software\${SOFT_NAME}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
|
||||
|
||||
;--------------------------------
|
||||
;Pages
|
||||
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "files\LICENSE"
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
; Finish page and checkbox to run QElectroTech
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\Lancer QET.bat"
|
||||
!define MUI_FINISHPAGE_RUN_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "$(Check)"
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
;--------------------------------
|
||||
;Languages
|
||||
;Since NSIS 2.26, the language selection dialog of Modern UI hides languages unsupported by the user's selected codepage by default.
|
||||
;To revert to the old behavior and display all languages, no matter what the user will see when they're selected, use MUI_LANGDLL_ALLLANGUAGES.
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
; For consistency, we limit the installer to languages supported by QElectroTech itself
|
||||
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
||||
!insertmacro MUI_LANGUAGE "French"
|
||||
!insertmacro MUI_LANGUAGE "Spanish"
|
||||
!insertmacro MUI_LANGUAGE "Russian"
|
||||
!insertmacro MUI_LANGUAGE "Portuguese"
|
||||
!insertmacro MUI_LANGUAGE "Czech"
|
||||
!insertmacro MUI_LANGUAGE "Polish"
|
||||
!insertmacro MUI_LANGUAGE "Greek"
|
||||
!insertmacro MUI_LANGUAGE "Arabic"
|
||||
!insertmacro MUI_LANGUAGE "German"
|
||||
!insertmacro MUI_LANGUAGE "Italian"
|
||||
!insertmacro MUI_LANGUAGE "Romanian"
|
||||
!insertmacro MUI_LANGUAGE "Catalan"
|
||||
!insertmacro MUI_LANGUAGE "Croatian"
|
||||
!insertmacro MUI_LANGUAGE "Dutch"
|
||||
!insertmacro MUI_LANGUAGE "Dutch_Belgium"
|
||||
!insertmacro MUI_LANGUAGE "Danish"
|
||||
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
!include lang_extra.nsh
|
||||
!include lang_extra_fr.nsh
|
||||
|
||||
|
||||
|
||||
SetOverwrite on
|
||||
Section "Main Program"
|
||||
SectionIn RO ; Read only, always installed
|
||||
|
||||
Setoutpath "$INSTDIR\bin\"
|
||||
File "./files/bin/${SOFT_NAME}.exe"
|
||||
|
||||
Setoutpath "$INSTDIR"
|
||||
File "./files/ChangeLog"
|
||||
File "./files/CREDIT"
|
||||
File "./files/ELEMENTS.LICENSE"
|
||||
File "./files/LICENSE"
|
||||
File "./files/qet_uninstall_file_associations.reg"
|
||||
File "./files/README"
|
||||
File "./files/register_filetypes.bat"
|
||||
File "Lancer QET.bat"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "./files/ico"
|
||||
|
||||
SectionEnd
|
||||
|
||||
;---------------------------
|
||||
SetOverwrite on
|
||||
SubSection "$(Elements)" SEC01
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Electric)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/10_electric"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Logic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/20_logic"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Hydraulic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/30_hydraulic"
|
||||
SectionEnd
|
||||
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Pneumatic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/50_pneumatic"
|
||||
SectionEnd
|
||||
|
||||
|
||||
;---------------------------------
|
||||
SubSection "$(Energy)"
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(water)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /r "./files/elements/60_energy/11_water"
|
||||
File /r "./files/elements/60_energy/"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Refrigeration)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /r "./files/elements/60_energy/21_refrigeration"
|
||||
File /r "./files/elements/60_energy/"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Solar_thermal)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /r "./files/elements/60_energy/31_solar_thermal"
|
||||
File /r "./files/elements/60_energy/"
|
||||
SectionEnd
|
||||
|
||||
SubSectionEnd
|
||||
SubSectionEnd
|
||||
;-------------------------------
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Lang)" SEC02
|
||||
SetOutPath "$INSTDIR\lang"
|
||||
File "./files/lang/*.qm"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Titleblocks)" SEC03
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "./files/titleblocks"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Examples)" SEC04
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "./files/examples"
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(var1)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(var2)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $(var3)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $(var4)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
;--------------------------------
|
||||
|
||||
;Installer Sections
|
||||
|
||||
Section ""
|
||||
SetOutPath "$INSTDIR"
|
||||
;Store installation folder
|
||||
WriteRegStr HKCU "Software\${SOFT_NAME}" "" $INSTDIR
|
||||
; write uninstall strings
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "DisplayName" "${SOFT_NAME} (remove only)"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "UninstallString" '"$INSTDIR\Uninstall.exe"'
|
||||
;Create uninstaller
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
; get the final path for the icons and the launch script
|
||||
Var /GLOBAL final_qet_exe
|
||||
Var /GLOBAL final_project_ico
|
||||
Var /GLOBAL final_element_ico
|
||||
Var /GLOBAL final_titleblock_ico
|
||||
|
||||
StrCpy $final_qet_exe "$INSTDIR\Lancer QET.bat"
|
||||
StrCpy $final_project_ico "$INSTDIR\\ico\application-x-qet-project.ico"
|
||||
StrCpy $final_element_ico "$INSTDIR\\ico\application-x-qet-element.ico"
|
||||
StrCpy $final_titleblock_ico "$INSTDIR\\ico\application-x-qet-titleblock.ico"
|
||||
|
||||
; write file associations registry keys
|
||||
WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Schéma QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "Élément QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".titleblock" "" "qet_titleblock_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file" "" "Titleblock QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\DefaultIcon" "" "$final_titleblock_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
|
||||
SetShellVarContext all ; all users
|
||||
; shortcuts in the start menu
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}"
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Manual"
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Upgrade"
|
||||
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\\ico\qelectrotech.ico"
|
||||
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\Uninstall QElectroTech.lnk" "$INSTDIR\Uninstall.exe"
|
||||
|
||||
; shortcut on the desktop
|
||||
CreateShortCut "$DESKTOP\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/manual_0.7/build/index.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/joshua/html/QET_ru.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/builds/nightly/"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Donate.url" "InternetShortcut" "URL" "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC"
|
||||
|
||||
;changing $INSTDIR\elements\ *.elmt to read-only attribute
|
||||
${Locate} "$INSTDIR\elements\" "/L=FD /M=*.elmt" "LocateCallback"
|
||||
IfErrors 0 +2
|
||||
;MessageBox MB_OK "Error"
|
||||
SectionEnd
|
||||
|
||||
Function LocateCallback
|
||||
SetFileAttributes $R9 FILE_ATTRIBUTE_READONLY
|
||||
Push $0
|
||||
FunctionEnd
|
||||
;--------------------------------
|
||||
;Installer Functions
|
||||
|
||||
Function .onInit
|
||||
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
|
||||
;Auto-uninstall old before installing new
|
||||
ReadRegStr $R0 HKLM \
|
||||
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \
|
||||
"UninstallString"
|
||||
StrCmp $R0 "" done
|
||||
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
|
||||
"$(installed)" \
|
||||
IDOK uninst
|
||||
Abort
|
||||
|
||||
|
||||
;Run the uninstaller
|
||||
uninst:
|
||||
ClearErrors
|
||||
ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
|
||||
|
||||
IfErrors no_remove_uninstaller done
|
||||
;You can either use Delete /REBOOTOK in the uninstaller or add some code
|
||||
;here to remove the uninstaller. Use a registry key to check
|
||||
;whether the user has chosen to uninstall. If you are using an uninstaller
|
||||
;components page, make sure all sections are uninstalled.
|
||||
no_remove_uninstaller:
|
||||
|
||||
done:
|
||||
|
||||
FunctionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Descriptions
|
||||
|
||||
;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC
|
||||
|
||||
;Assign descriptions to sections
|
||||
;!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
;!insertmacro MUI_DESCRIPTION_TEXT ${CopyFiles} "CopyFiles"
|
||||
;!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Section
|
||||
|
||||
Section "Uninstall"
|
||||
SetShellVarContext all ; all users
|
||||
; remove start menu shortcuts
|
||||
RMDir /r "$SMPROGRAMS\${SOFT_NAME}"
|
||||
; remove shortcut on the desktop
|
||||
Delete "$DESKTOP\QElectroTech.lnk"
|
||||
|
||||
; remove the application files
|
||||
Delete "$INSTDIR\*.*"
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
;remove installation registry keys
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}"
|
||||
DeleteRegKey /ifempty HKCU "Software\${SOFT_NAME}"
|
||||
|
||||
; remove file associations registry keys
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "Applications\qelectrotech.exe"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".qet"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_diagram_file"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".elmt"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_element_file"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".titleblock"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_titleblock_file"
|
||||
|
||||
IfFileExists "$INSTDIR" 0 NoErrorMsg
|
||||
;MessageBox MB_OK "Note: $INSTDIR could not be removed!" IDOK 0 ; skipped if file doesn't exist
|
||||
NoErrorMsg:
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Functions
|
||||
|
||||
Function un.onInit
|
||||
|
||||
!insertmacro MUI_UNGETLANGUAGE
|
||||
|
||||
FunctionEnd
|
||||
@@ -1,406 +1,491 @@
|
||||
; this file is part of installer for QElectroTech
|
||||
; Copyright (C)2015 QElectroTech Team <scorpio@qelectrotech.org>
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or
|
||||
; modify it under the terms of the GNU General Public License
|
||||
; as published by the Free Software Foundation; either
|
||||
; version 2 of the License, or (at your option) any later version.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program; if not, write to the Free Software
|
||||
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
; WebSite : http://qelectrotech.org/
|
||||
|
||||
;--------------------------------
|
||||
;Include Modern UI
|
||||
!include x64.nsh
|
||||
!include "MUI2.nsh"
|
||||
!include "FileFunc.nsh"
|
||||
!insertmacro Locate
|
||||
!include FileFunc.nsh
|
||||
!insertmacro GetParameters
|
||||
!insertmacro GetOptions
|
||||
|
||||
|
||||
!ifndef PROC
|
||||
!define PROC 32 ;
|
||||
!endif
|
||||
|
||||
|
||||
|
||||
; MUI Settings
|
||||
;--------------------------------
|
||||
;General
|
||||
; General Product Description Definitions
|
||||
!define SOFT_NAME "QElectroTech"
|
||||
!define SOFT_VERSION "0.5-dev_x86_64-win64+4094"
|
||||
!define SOFT_WEB_SITE "http://qelectrotech.org/"
|
||||
!define SOFT_BUILD "1"
|
||||
|
||||
|
||||
SetCompressor /final /solid lzma
|
||||
CRCCheck force
|
||||
XPStyle on
|
||||
BrandingText "${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}" ; Shows in the Bottom Left of the installer
|
||||
|
||||
|
||||
;Name and file
|
||||
Name "${SOFT_NAME} ${SOFT_VERSION}"
|
||||
OutFile "Installer_${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}.exe"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$PROGRAMFILES64\${SOFT_NAME}"
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey HKCU "Software\${SOFT_NAME}" ""
|
||||
|
||||
;Request application privileges for Windows Vista
|
||||
; we request for admin because we write stuff into the registry
|
||||
RequestExecutionLevel admin
|
||||
|
||||
;--------------------------------
|
||||
;Interface Settings
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-install.ico"
|
||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\XPUI-uninstall.ico"
|
||||
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\images\wizard.bmp"
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
|
||||
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP ".\images\header.bmp" ; optional
|
||||
;--------------------------------
|
||||
;Language Selection Dialog Settings
|
||||
|
||||
;Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "Software\${SOFT_NAME}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
|
||||
|
||||
;--------------------------------
|
||||
;Pages
|
||||
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "files\LICENSE"
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
; Finish page and checkbox to run QElectroTech
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\Lancer QET.bat"
|
||||
!define MUI_FINISHPAGE_RUN_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "$(Check)"
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
;--------------------------------
|
||||
;Languages
|
||||
;Since NSIS 2.26, the language selection dialog of Modern UI hides languages unsupported by the user's selected codepage by default.
|
||||
;To revert to the old behavior and display all languages, no matter what the user will see when they're selected, use MUI_LANGDLL_ALLLANGUAGES.
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
; For consistency, we limit the installer to languages supported by QElectroTech itself
|
||||
!insertmacro MUI_LANGUAGE "English" ;first language is the default language
|
||||
!insertmacro MUI_LANGUAGE "French"
|
||||
!insertmacro MUI_LANGUAGE "Spanish"
|
||||
!insertmacro MUI_LANGUAGE "Russian"
|
||||
!insertmacro MUI_LANGUAGE "Portuguese"
|
||||
!insertmacro MUI_LANGUAGE "Czech"
|
||||
!insertmacro MUI_LANGUAGE "Polish"
|
||||
!insertmacro MUI_LANGUAGE "Greek"
|
||||
!insertmacro MUI_LANGUAGE "Arabic"
|
||||
!insertmacro MUI_LANGUAGE "German"
|
||||
!insertmacro MUI_LANGUAGE "Italian"
|
||||
!insertmacro MUI_LANGUAGE "Romanian"
|
||||
!insertmacro MUI_LANGUAGE "Catalan"
|
||||
!insertmacro MUI_LANGUAGE "Croatian"
|
||||
!insertmacro MUI_LANGUAGE "Dutch"
|
||||
!insertmacro MUI_LANGUAGE "Dutch_Belgium"
|
||||
!insertmacro MUI_LANGUAGE "Danish"
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
!include lang_extra.nsh
|
||||
!include lang_extra_fr.nsh
|
||||
|
||||
|
||||
|
||||
SetOverwrite on
|
||||
Section "Main Program"
|
||||
SectionIn RO ; Read only, always installed
|
||||
|
||||
Setoutpath "$INSTDIR\bin\"
|
||||
File "./files/bin/${SOFT_NAME}.exe"
|
||||
|
||||
Setoutpath "$INSTDIR"
|
||||
File "./files/ChangeLog"
|
||||
File "./files/CREDIT"
|
||||
File "./files/ELEMENTS.LICENSE"
|
||||
File "./files/LICENSE"
|
||||
File "./files/qet_uninstall_file_associations.reg"
|
||||
File "./files/README"
|
||||
File "./files/register_filetypes.bat"
|
||||
File "Lancer QET.bat"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "./files/ico"
|
||||
|
||||
SectionEnd
|
||||
|
||||
;---------------------------
|
||||
SetOverwrite on
|
||||
SubSection "$(Elements)" SEC01
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Electric)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/10_electric"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Logic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/20_logic"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Hydraulic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/30_hydraulic"
|
||||
SectionEnd
|
||||
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Pneumatic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /r "./files/elements/50_pneumatic"
|
||||
SectionEnd
|
||||
|
||||
|
||||
;---------------------------------
|
||||
SubSection "$(Energy)"
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(water)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /r "./files/elements/60_energy/11_water"
|
||||
File /r "./files/elements/60_energy/"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Refrigeration)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /r "./files/elements/60_energy/21_refrigeration"
|
||||
File /r "./files/elements/60_energy/"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Solar_thermal)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /r "./files/elements/60_energy/31_solar_thermal"
|
||||
File /r "./files/elements/60_energy/"
|
||||
SectionEnd
|
||||
|
||||
SubSectionEnd
|
||||
SubSectionEnd
|
||||
;-------------------------------
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Lang)" SEC02
|
||||
SetOutPath "$INSTDIR\lang"
|
||||
File "./files/lang/*.qm"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Titleblocks)" SEC03
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "./files/titleblocks"
|
||||
SectionEnd
|
||||
|
||||
SetOverwrite on
|
||||
Section "$(Examples)" SEC04
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "./files/examples"
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(var1)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(var2)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $(var3)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $(var4)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
;--------------------------------
|
||||
|
||||
;Installer Sections
|
||||
|
||||
Section ""
|
||||
SetOutPath "$INSTDIR"
|
||||
;Store installation folder
|
||||
WriteRegStr HKCU "Software\${SOFT_NAME}" "" $INSTDIR
|
||||
; write uninstall strings
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "DisplayName" "${SOFT_NAME} (remove only)"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" "UninstallString" '"$INSTDIR\Uninstall.exe"'
|
||||
;Create uninstaller
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
SetRegView 64
|
||||
|
||||
; get the final path for the icons and the launch script
|
||||
Var /GLOBAL final_qet_exe
|
||||
Var /GLOBAL final_project_ico
|
||||
Var /GLOBAL final_element_ico
|
||||
Var /GLOBAL final_titleblock_ico
|
||||
|
||||
StrCpy $final_qet_exe "$INSTDIR\Lancer QET.bat"
|
||||
StrCpy $final_project_ico "$INSTDIR\ico\application-x-qet-project.ico"
|
||||
StrCpy $final_element_ico "$INSTDIR\ico\application-x-qet-element.ico"
|
||||
StrCpy $final_titleblock_ico "$INSTDIR\ico\application-x-qet-titleblock.ico"
|
||||
|
||||
; write file associations registry keys
|
||||
WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Schéma QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "Élément QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".titleblock" "" "qet_titleblock_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file" "" "Titleblock QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\DefaultIcon" "" "$final_titleblock_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\shell\open\command" "" "$\"$final_qet_exe$\" $\"%1$\""
|
||||
|
||||
SetShellVarContext all ; all users
|
||||
; shortcuts in the start menu
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}"
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Manual"
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Upgrade"
|
||||
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
|
||||
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\Uninstall QElectroTech.lnk" "$INSTDIR\Uninstall.exe"
|
||||
; TODO : add the QuickStart Guide (or any other documentation) when available
|
||||
|
||||
; shortcut on the desktop
|
||||
CreateShortCut "$DESKTOP\QElectroTech.lnk" "$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/manual_0.7/build/index.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/joshua/html/QET_ru.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" "InternetShortcut" "URL" "https://download.tuxfamily.org/qet/builds/nightly/"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Donate.url" "InternetShortcut" "URL" "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC"
|
||||
|
||||
;changing $INSTDIR\elements\ *.elmt to read-only attribute
|
||||
|
||||
${Locate} "$INSTDIR\elements\" "/L=FD /M=*.elmt" "LocateCallback"
|
||||
IfErrors 0 +2
|
||||
;MessageBox MB_OK "Error"
|
||||
SectionEnd
|
||||
|
||||
Function LocateCallback
|
||||
SetFileAttributes $R9 FILE_ATTRIBUTE_READONLY
|
||||
Push $0
|
||||
FunctionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Installer Functions
|
||||
|
||||
Function .onInit
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
|
||||
${If} ${RunningX64}
|
||||
${Else}
|
||||
|
||||
MessageBox MB_OK|MB_ICONSTOP $(wrongArch)
|
||||
Abort $(wrongArch)
|
||||
${EndIf}
|
||||
|
||||
;Auto-uninstall old before installing new
|
||||
ReadRegStr $R0 HKLM \
|
||||
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \
|
||||
"UninstallString"
|
||||
StrCmp $R0 "" done
|
||||
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
|
||||
"$(installed)" \
|
||||
IDOK uninst
|
||||
Abort
|
||||
|
||||
;Run the uninstaller
|
||||
uninst:
|
||||
ClearErrors
|
||||
ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
|
||||
|
||||
IfErrors no_remove_uninstaller done
|
||||
;You can either use Delete /REBOOTOK in the uninstaller or add some code
|
||||
;here to remove the uninstaller. Use a registry key to check
|
||||
;whether the user has chosen to uninstall. If you are using an uninstaller
|
||||
;components page, make sure all sections are uninstalled.
|
||||
no_remove_uninstaller:
|
||||
|
||||
done:
|
||||
|
||||
FunctionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Descriptions
|
||||
|
||||
;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC
|
||||
|
||||
;Assign descriptions to sections
|
||||
;!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
; !insertmacro MUI_DESCRIPTION_TEXT ${CopyFiles} "CopyFiles"
|
||||
;!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Section
|
||||
|
||||
Section "Uninstall"
|
||||
SetShellVarContext all ; all users
|
||||
; remove start menu shortcuts
|
||||
RMDir /r "$SMPROGRAMS\${SOFT_NAME}"
|
||||
; remove shortcut on the desktop
|
||||
Delete "$DESKTOP\QElectroTech.lnk"
|
||||
|
||||
; remove the application files
|
||||
Delete "$INSTDIR\*.*"
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
;remove installation registry keys
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}"
|
||||
DeleteRegKey /ifempty HKCU "Software\${SOFT_NAME}"
|
||||
|
||||
; remove file associations registry keys
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "Applications\qelectrotech.exe"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".qet"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_diagram_file"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".elmt"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_element_file"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".titleblock"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_titleblock_file"
|
||||
|
||||
IfFileExists "$INSTDIR" 0 NoErrorMsg
|
||||
;MessageBox MB_OK "Note: $INSTDIR could not be removed!" IDOK 0 ; skipped if file doesn't exist
|
||||
NoErrorMsg:
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Functions
|
||||
|
||||
Function un.onInit
|
||||
|
||||
!insertmacro MUI_UNGETLANGUAGE
|
||||
|
||||
FunctionEnd
|
||||
|
||||
|
||||
; this file is part of installer for QElectroTech
|
||||
; Copyright (C)2015 QElectroTech Team <scorpio@qelectrotech.org>
|
||||
;
|
||||
; This program is free software; you can redistribute it and/or
|
||||
; modify it under the terms of the GNU General Public License
|
||||
; as published by the Free Software Foundation; either
|
||||
; version 2 of the License, or (at your option) any later version.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program; if not, write to the Free Software
|
||||
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
; WebSite : https://qelectrotech.org/
|
||||
|
||||
;==============================================================================
|
||||
; NSIS 3.x compatibility notes:
|
||||
; - Unicode is native in NSIS 3 (no need for Unicode installer plugin)
|
||||
; - XPStyle is deprecated/removed; ManifestSupportedOS replaces it
|
||||
; - SetCompressor must appear before any Section/Function
|
||||
; - SetRegView 64 moved to top of the hidden section (before WriteRegStr)
|
||||
; - x64.nsh is still available but ${RunningX64} is now also in x64.nsh
|
||||
; - MUI2.nsh is unchanged; MUI_LANGDLL_ALLLANGUAGES is still valid
|
||||
; - FileFunc.nsh / Locate macro: unchanged
|
||||
; - Var /GLOBAL must be declared at global scope, not inside a Section
|
||||
; - ${__FILEDIR__} resolves to the directory of the .nsi at compile time;
|
||||
; used for bitmaps and LICENSE so no sed path-patching is needed.
|
||||
;==============================================================================
|
||||
|
||||
;--------------------------------
|
||||
; NSIS 3 requires SetCompressor BEFORE any Section or Function
|
||||
SetCompressor /FINAL /SOLID lzma
|
||||
|
||||
;--------------------------------
|
||||
; Includes
|
||||
!include x64.nsh
|
||||
!include "MUI2.nsh"
|
||||
!include "FileFunc.nsh"
|
||||
!insertmacro Locate
|
||||
!insertmacro GetParameters
|
||||
!insertmacro GetOptions
|
||||
|
||||
;--------------------------------
|
||||
; NSIS 3: Unicode is the default. The installer binary will be Unicode.
|
||||
; No extra plugin needed.
|
||||
|
||||
!ifndef PROC
|
||||
!define PROC 64
|
||||
!endif
|
||||
|
||||
;--------------------------------
|
||||
; General Product Description Definitions
|
||||
!define SOFT_NAME "QElectroTech"
|
||||
!define SOFT_VERSION "0.5-dev_x86_64-win64+4094"
|
||||
!define SOFT_WEB_SITE "https://qelectrotech.org/"
|
||||
!define SOFT_BUILD "1"
|
||||
|
||||
;--------------------------------
|
||||
; General settings
|
||||
CRCCheck force
|
||||
BrandingText "${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}"
|
||||
|
||||
; NSIS 3: XPStyle is removed. Use ManifestSupportedOS to declare modern OS support.
|
||||
; This replaces "XPStyle on" and enables proper DPI awareness + visual styles.
|
||||
ManifestSupportedOS all
|
||||
ManifestDPIAware true
|
||||
|
||||
; Name and output file
|
||||
Name "${SOFT_NAME} ${SOFT_VERSION}"
|
||||
OutFile "Installer_${SOFT_NAME}-${SOFT_VERSION}-${SOFT_BUILD}.exe"
|
||||
|
||||
; Default installation folder
|
||||
InstallDir "$PROGRAMFILES64\${SOFT_NAME}"
|
||||
|
||||
; Get installation folder from registry if available
|
||||
; NSIS 3: InstallDirRegKey still works, but SetRegView 64 must be set at
|
||||
; runtime (in .onInit) to read 64-bit registry hive correctly.
|
||||
InstallDirRegKey HKCU "Software\${SOFT_NAME}" ""
|
||||
|
||||
; Request admin privileges (required for HKLM / file associations)
|
||||
RequestExecutionLevel admin
|
||||
|
||||
;--------------------------------
|
||||
; Declare global variables at script scope (NSIS 3 requirement)
|
||||
; In NSIS 2 these could be declared inside a Section; that still compiles
|
||||
; in NSIS 3 but triggers a warning. Declare them here.
|
||||
Var final_qet_exe
|
||||
Var final_project_ico
|
||||
Var final_element_ico
|
||||
Var final_titleblock_ico
|
||||
|
||||
;--------------------------------
|
||||
; MUI Interface Settings
|
||||
!define MUI_ABORTWARNING
|
||||
|
||||
; NSIS 3 ships updated icons; XPUI icons are still present for compatibility.
|
||||
; You may switch to the modern ones:
|
||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-install.ico"
|
||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\nsis3-uninstall.ico"
|
||||
|
||||
; ${__FILEDIR__} resolves at compile time to the directory containing this
|
||||
; .nsi file (= nsis_root/ when makensis runs from that folder).
|
||||
; No sed path-patching needed for these two defines.
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "${__FILEDIR__}\images\wizard.bmp"
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
|
||||
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP "${__FILEDIR__}\images\header.bmp"
|
||||
|
||||
;--------------------------------
|
||||
; Language Selection Dialog Settings (remember chosen language in registry)
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "Software\${SOFT_NAME}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
|
||||
|
||||
;--------------------------------
|
||||
; Pages
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
; ${__FILEDIR__} resolves to nsis_root/ at compile time — no sed needed.
|
||||
!insertmacro MUI_PAGE_LICENSE "${__FILEDIR__}\files\LICENSE"
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
; Finish page - checkbox to launch QElectroTech
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\Lancer QET.bat"
|
||||
!define MUI_FINISHPAGE_RUN_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "$(Check)"
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
;--------------------------------
|
||||
; Languages
|
||||
; NSIS 3: MUI_LANGDLL_ALLLANGUAGES is still supported and works as before.
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English" ; first = default
|
||||
!insertmacro MUI_LANGUAGE "Korean"
|
||||
!insertmacro MUI_LANGUAGE "French"
|
||||
!insertmacro MUI_LANGUAGE "Spanish"
|
||||
!insertmacro MUI_LANGUAGE "Russian"
|
||||
!insertmacro MUI_LANGUAGE "Portuguese"
|
||||
!insertmacro MUI_LANGUAGE "Czech"
|
||||
!insertmacro MUI_LANGUAGE "Polish"
|
||||
!insertmacro MUI_LANGUAGE "Greek"
|
||||
!insertmacro MUI_LANGUAGE "Arabic"
|
||||
!insertmacro MUI_LANGUAGE "German"
|
||||
!insertmacro MUI_LANGUAGE "Italian"
|
||||
!insertmacro MUI_LANGUAGE "Romanian"
|
||||
!insertmacro MUI_LANGUAGE "Catalan"
|
||||
!insertmacro MUI_LANGUAGE "Croatian"
|
||||
!insertmacro MUI_LANGUAGE "Dutch"
|
||||
!insertmacro MUI_LANGUAGE "Danish"
|
||||
!insertmacro MUI_LANGUAGE "Hungarian"
|
||||
!insertmacro MUI_LANGUAGE "Japanese"
|
||||
!insertmacro MUI_LANGUAGE "Mongolian"
|
||||
!insertmacro MUI_LANGUAGE "Norwegian"
|
||||
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
||||
!insertmacro MUI_LANGUAGE "Serbian"
|
||||
!insertmacro MUI_LANGUAGE "Slovak"
|
||||
!insertmacro MUI_LANGUAGE "Slovenian"
|
||||
!insertmacro MUI_LANGUAGE "Swedish"
|
||||
!insertmacro MUI_LANGUAGE "Turkish"
|
||||
!insertmacro MUI_LANGUAGE "Ukrainian"
|
||||
!insertmacro MUI_LANGUAGE "SimpChinese"
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
; Language strings for all supported locales
|
||||
!include lang_extra.nsh
|
||||
!include lang_extra_fr.nsh
|
||||
!include lang_extra_missing.nsh
|
||||
; NOTE: The string "uninstFailed" must be defined in lang_extra.nsh and
|
||||
; lang_extra_fr.nsh (and any other lang_extra_*.nsh) like so:
|
||||
; LangString uninstFailed ${LANG_ENGLISH} "Uninstallation of the previous version failed.$\nPlease uninstall QElectroTech manually before continuing."
|
||||
; LangString uninstFailed ${LANG_FRENCH} "La desinstallation de la version precedente a echoue.$\nVeuillez desinstaller QElectroTech manuellement avant de continuer."
|
||||
|
||||
;==============================================================================
|
||||
; SECTIONS
|
||||
;==============================================================================
|
||||
|
||||
SetOverwrite on
|
||||
|
||||
Section "Main Program"
|
||||
SectionIn RO ; Read-only - always installed
|
||||
|
||||
SetOutPath "$INSTDIR\bin\"
|
||||
File /r "./files/bin\*"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File /nonfatal "./files/ChangeLog"
|
||||
File /nonfatal "./files/CREDIT"
|
||||
File /nonfatal "./files/ELEMENTS.LICENSE"
|
||||
File /nonfatal "./files/LICENSE"
|
||||
File /nonfatal "./files/qet_uninstall_file_associations.reg"
|
||||
File /nonfatal "./files/README"
|
||||
File /nonfatal "./files/register_filetypes.bat"
|
||||
File "Lancer QET.bat"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File /nonfatal /r "./files/ico"
|
||||
|
||||
SectionEnd
|
||||
|
||||
;---------------------------
|
||||
SubSection "$(Elements)" SEC01
|
||||
|
||||
Section "$(Electric)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /nonfatal /r "./files/elements/10_electric"
|
||||
SectionEnd
|
||||
|
||||
Section "$(Logic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /nonfatal /r "./files/elements/20_logic"
|
||||
SectionEnd
|
||||
|
||||
Section "$(Hydraulic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /nonfatal /r "./files/elements/30_hydraulic"
|
||||
SectionEnd
|
||||
|
||||
Section "$(Pneumatic)"
|
||||
SetOutPath "$INSTDIR\elements"
|
||||
File /nonfatal /r "./files/elements/50_pneumatic"
|
||||
SectionEnd
|
||||
|
||||
;---------------------------------
|
||||
SubSection "$(Energy)"
|
||||
|
||||
Section "$(water)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /nonfatal /r "./files/elements/60_energy/11_water"
|
||||
SectionEnd
|
||||
|
||||
Section "$(Refrigeration)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /nonfatal /r "./files/elements/60_energy/21_refrigeration"
|
||||
SectionEnd
|
||||
|
||||
Section "$(Solar_thermal)"
|
||||
SetOutPath "$INSTDIR\elements\60_energy"
|
||||
File /nonfatal /r "./files/elements/60_energy/31_solar_thermal"
|
||||
SectionEnd
|
||||
|
||||
SubSectionEnd
|
||||
|
||||
SubSectionEnd
|
||||
|
||||
;-------------------------------
|
||||
Section "$(Lang)" SEC02
|
||||
SetOutPath "$INSTDIR\lang"
|
||||
File /nonfatal "./files/lang/*.qm"
|
||||
SectionEnd
|
||||
|
||||
Section "$(Titleblocks)" SEC03
|
||||
SetOutPath "$INSTDIR"
|
||||
File /nonfatal /r "./files/titleblocks"
|
||||
SectionEnd
|
||||
|
||||
Section "$(Examples)" SEC04
|
||||
SetOutPath "$INSTDIR"
|
||||
File /nonfatal /r "./files/examples"
|
||||
SectionEnd
|
||||
|
||||
Section "$(Fonts)" SEC05
|
||||
SetOutPath "$INSTDIR"
|
||||
File /nonfatal /r "./files/fonts"
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
; Component descriptions
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(var1)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(var2)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $(var3)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $(var4)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC05} $(var5)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
;--------------------------------
|
||||
; Hidden section: registry, shortcuts, file associations
|
||||
Section ""
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
; NSIS 3 on 64-bit Windows: set 64-bit registry view BEFORE any WriteRegStr
|
||||
; so keys land in HKLM\SOFTWARE (not the Wow6432Node redirect).
|
||||
SetRegView 64
|
||||
|
||||
; Store installation folder
|
||||
WriteRegStr HKCU "Software\${SOFT_NAME}" "" $INSTDIR
|
||||
|
||||
; Uninstall registry entries
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \
|
||||
"DisplayName" "${SOFT_NAME} (remove only)"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \
|
||||
"UninstallString" '"$INSTDIR\Uninstall.exe"'
|
||||
|
||||
; Create uninstaller
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
; Build paths for icons and launch script
|
||||
StrCpy $final_qet_exe "$INSTDIR\Lancer QET.bat"
|
||||
StrCpy $final_project_ico "$INSTDIR\ico\application-x-qet-project.ico"
|
||||
StrCpy $final_element_ico "$INSTDIR\ico\application-x-qet-element.ico"
|
||||
StrCpy $final_titleblock_ico "$INSTDIR\ico\application-x-qet-titleblock.ico"
|
||||
|
||||
; File associations - .qet
|
||||
WriteRegStr HKEY_CLASSES_ROOT "Applications\qelectrotech.exe\shell\open\command" "" \
|
||||
'"$final_qet_exe" "%1"'
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".qet" "" "qet_diagram_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file" "" "Diagram QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_diagram_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\DefaultIcon" "" "$final_project_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_diagram_file\shell\open\command" "" '"$final_qet_exe" "%1"'
|
||||
|
||||
; File associations - .elmt
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".elmt" "" "qet_element_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file" "" "Element QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_element_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\DefaultIcon" "" "$final_element_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_element_file\shell\open\command" "" '"$final_qet_exe" "%1"'
|
||||
|
||||
; File associations - .titleblock
|
||||
WriteRegStr HKEY_CLASSES_ROOT ".titleblock" "" "qet_titleblock_file"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file" "" "Titleblock QET"
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "EditFlags" 0x00000000
|
||||
WriteRegDWORD HKEY_CLASSES_ROOT "qet_titleblock_file" "BrowserFlags" 0x00000008
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\DefaultIcon" "" "$final_titleblock_ico"
|
||||
WriteRegStr HKEY_CLASSES_ROOT "qet_titleblock_file\shell\open\command" "" '"$final_qet_exe" "%1"'
|
||||
|
||||
SetShellVarContext all ; apply shortcuts for all users
|
||||
|
||||
; Start Menu shortcuts
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}"
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Manual"
|
||||
CreateDirectory "$SMPROGRAMS\${SOFT_NAME}\Upgrade"
|
||||
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\QElectroTech.lnk" \
|
||||
"$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
|
||||
CreateShortCut "$SMPROGRAMS\${SOFT_NAME}\Uninstall QElectroTech.lnk" \
|
||||
"$INSTDIR\Uninstall.exe"
|
||||
|
||||
; Desktop shortcut
|
||||
CreateShortCut "$DESKTOP\QElectroTech.lnk" \
|
||||
"$INSTDIR\Lancer QET.bat" 0 "$INSTDIR\ico\qelectrotech.ico"
|
||||
|
||||
; Internet shortcuts
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_English.url" \
|
||||
"InternetShortcut" "URL" "https://download.qelectrotech.org/qet/manual_0.7/build/index.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Manual\Manual_Russian.url" \
|
||||
"InternetShortcut" "URL" "https://download.qelectrotech.org/qet/joshua/html/QET_ru.html"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Upgrade\Download.url" \
|
||||
"InternetShortcut" "URL" "https://download.qelectrotech.org/qet/builds/nightly/"
|
||||
WriteINIStr "$SMPROGRAMS\${SOFT_NAME}\Donate.url" \
|
||||
"InternetShortcut" "URL" "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC"
|
||||
|
||||
; Mark installed elements as read-only
|
||||
${Locate} "$INSTDIR\elements\" "/L=FD /M=*.elmt" "LocateCallback"
|
||||
IfErrors 0 +2
|
||||
; MessageBox MB_OK "Error in Locate" ; uncomment for debugging
|
||||
|
||||
SectionEnd
|
||||
|
||||
;--------------------------------
|
||||
; Locate callback - sets FILE_ATTRIBUTE_READONLY on each .elmt file
|
||||
Function LocateCallback
|
||||
SetFileAttributes $R9 FILE_ATTRIBUTE_READONLY
|
||||
Push $0
|
||||
FunctionEnd
|
||||
|
||||
;==============================================================================
|
||||
; INSTALLER FUNCTIONS
|
||||
;==============================================================================
|
||||
|
||||
Function .onInit
|
||||
; NSIS 3: SetRegView in .onInit ensures InstallDirRegKey reads the right hive
|
||||
SetRegView 64
|
||||
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
|
||||
; Abort if not running on a 64-bit OS
|
||||
${IfNot} ${RunningX64}
|
||||
MessageBox MB_OK|MB_ICONSTOP $(wrongArch)
|
||||
Abort
|
||||
${EndIf}
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Auto-uninstall previous version before installing new one
|
||||
; ----------------------------------------------------------------
|
||||
ReadRegStr $R0 HKLM \
|
||||
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}" \
|
||||
"UninstallString"
|
||||
|
||||
; No previous installation found - proceed normally
|
||||
StrCmp $R0 "" done
|
||||
|
||||
; Also read the install dir of the previous version
|
||||
ReadRegStr $R1 HKCU "Software\${SOFT_NAME}" ""
|
||||
|
||||
; Ask user whether to uninstall the existing version
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "$(installed)" IDOK uninst
|
||||
Abort ; user clicked Cancel - stop the installer
|
||||
|
||||
uninst:
|
||||
; Remove surrounding quotes from the UninstallString if present
|
||||
StrCpy $R2 $R0 1 ; first character
|
||||
StrCmp $R2 '"' 0 unquoted
|
||||
; Strip leading and trailing quote
|
||||
StrCpy $R0 $R0 "" 1 ; remove leading "
|
||||
StrLen $R3 $R0
|
||||
IntOp $R3 $R3 - 1
|
||||
StrCpy $R0 $R0 $R3 ; remove trailing "
|
||||
unquoted:
|
||||
|
||||
ClearErrors
|
||||
${If} $R1 != ""
|
||||
ExecWait '"$R0" /S _?=$R1'
|
||||
${Else}
|
||||
ExecWait '"$R0" /S'
|
||||
${EndIf}
|
||||
|
||||
IfErrors uninstall_failed
|
||||
|
||||
${If} $R1 != ""
|
||||
IfFileExists "$R1\${SOFT_NAME}.exe" uninstall_failed
|
||||
IfFileExists "$R1\bin\${SOFT_NAME}.exe" uninstall_failed
|
||||
${EndIf}
|
||||
|
||||
Goto done
|
||||
|
||||
uninstall_failed:
|
||||
MessageBox MB_OK|MB_ICONSTOP "$(uninstFailed)"
|
||||
Abort
|
||||
|
||||
done:
|
||||
|
||||
FunctionEnd
|
||||
|
||||
;==============================================================================
|
||||
; UNINSTALLER SECTION
|
||||
;==============================================================================
|
||||
|
||||
Section "Uninstall"
|
||||
SetRegView 64 ; NSIS 3: required so we delete from the correct hive
|
||||
SetShellVarContext all
|
||||
|
||||
; Remove Start Menu shortcuts
|
||||
RMDir /r "$SMPROGRAMS\${SOFT_NAME}"
|
||||
|
||||
; Remove Desktop shortcut
|
||||
Delete "$DESKTOP\QElectroTech.lnk"
|
||||
|
||||
; Remove application files
|
||||
Delete "$INSTDIR\*.*"
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
; Remove installation registry keys
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SOFT_NAME}"
|
||||
DeleteRegKey /ifempty HKCU "Software\${SOFT_NAME}"
|
||||
|
||||
; Remove file associations registry keys
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "Applications\qelectrotech.exe"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".qet"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_diagram_file"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".elmt"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_element_file"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT ".titleblock"
|
||||
DeleteRegKey HKEY_CLASSES_ROOT "qet_titleblock_file"
|
||||
|
||||
IfFileExists "$INSTDIR" 0 NoErrorMsg
|
||||
; MessageBox MB_OK "Note: $INSTDIR could not be removed!"
|
||||
NoErrorMsg:
|
||||
|
||||
SectionEnd
|
||||
|
||||
;==============================================================================
|
||||
; UNINSTALLER FUNCTIONS
|
||||
;==============================================================================
|
||||
|
||||
Function un.onInit
|
||||
SetRegView 64 ; NSIS 3: match the view used during install
|
||||
!insertmacro MUI_UNGETLANGUAGE
|
||||
FunctionEnd
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
LangString Refrigeration ${LANG_ENGLISH} "Refrigeration"
|
||||
LangString Solar_thermal ${LANG_ENGLISH} "Solar_thermal"
|
||||
LangString Lang ${LANG_ENGLISH} "Lang"
|
||||
LangString Fonts ${LANG_ENGLISH} "Fonts"
|
||||
LangString Titleblocks ${LANG_ENGLISH} "Titleblocks"
|
||||
LangString Examples ${LANG_ENGLISH} "Examples"
|
||||
LangString Check ${LANG_ENGLISH} "Check to start ${SOFT_NAME}"
|
||||
@@ -17,8 +18,34 @@
|
||||
LangString var2 ${LANG_ENGLISH} "languagues files"
|
||||
LangString var3 ${LANG_ENGLISH} "Examples of cartridges"
|
||||
LangString var4 ${LANG_ENGLISH} "Examples of diagrams"
|
||||
LangString var5 ${LANG_ENGLISH} "Fonts"
|
||||
LangString uninstFailed ${LANG_ENGLISH} "Uninstallation of the previous version failed.$\nPlease uninstall ${SOFT_NAME} manually before continuing."
|
||||
|
||||
|
||||
|
||||
LangString installed ${LANG_KOREAN} "${SOFT_NAME}이(가) 이미 설치되어 있습니다. $\n$\n이전 버전을 제거하려면 `OK`를, 업그레이드를 취소하려면 `Cancel`을 클릭하세요."
|
||||
LangString wrongArch ${LANG_KOREAN} "이 배포판은 64비트 컴퓨터에서만 사용할 수 있습니다."
|
||||
LangString Elements ${LANG_KOREAN} "요소"
|
||||
LangString Electric ${LANG_KOREAN} "전기"
|
||||
LangString Logic ${LANG_KOREAN} "로직"
|
||||
LangString Hydraulic ${LANG_KOREAN} "유압"
|
||||
LangString Pneumatic ${LANG_KOREAN} "공압"
|
||||
LangString Energy ${LANG_KOREAN} "에너지"
|
||||
LangString water ${LANG_KOREAN} "물"
|
||||
LangString Refrigeration ${LANG_KOREAN} "냉동"
|
||||
LangString Solar_thermal ${LANG_KOREAN} "태양열"
|
||||
LangString Lang ${LANG_KOREAN} "언어"
|
||||
LangString Fonts ${LANG_KOREAN} "글꼴"
|
||||
LangString Titleblocks ${LANG_KOREAN} "표제란"
|
||||
LangString Examples ${LANG_KOREAN} "예제"
|
||||
LangString Check ${LANG_KOREAN} "${SOFT_NAME} 실행"
|
||||
LangString var1 ${LANG_KOREAN} "공식 컬렉션 요소"
|
||||
LangString var2 ${LANG_KOREAN} "언어 파일"
|
||||
LangString var3 ${LANG_KOREAN} "표제란 예제"
|
||||
LangString var4 ${LANG_KOREAN} "도면 예제"
|
||||
LangString var5 ${LANG_KOREAN} "글꼴"
|
||||
LangString uninstFailed ${LANG_KOREAN} "이전 버전을 제거하지 못했습니다.$\n계속하기 전에 ${SOFT_NAME}을(를) 수동으로 제거해 주세요."
|
||||
|
||||
|
||||
LangString installed ${LANG_POLISH} "${SOFT_NAME} jest już zainstalowany. $\n$\nKliknij `OK` aby odinstalować poprzednią wersję lub `Anuluj` aby przerwać aktualizację."
|
||||
LangString wrongArch ${LANG_POLISH} "To oprogramowanie jest przeznaczone wyłącznie dla komputerów 64 bitowych."
|
||||
LangString Elements ${LANG_POLISH} "Elementy"
|
||||
@@ -31,13 +58,16 @@
|
||||
LangString Refrigeration ${LANG_POLISH} "Chłodnictwo"
|
||||
LangString Solar_thermal ${LANG_POLISH} "Energia słoneczna"
|
||||
LangString Lang ${LANG_POLISH} "Język"
|
||||
LangString Fonts ${LANG_POLISH} "Czcionki"
|
||||
LangString Titleblocks ${LANG_POLISH} "Tabliczki rysunkowe"
|
||||
LangString Examples ${LANG_POLISH} "Przykłady"
|
||||
LangString Check ${LANG_POLISH} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_POLISH} "Elements of the official collection"
|
||||
LangString var2 ${LANG_POLISH} "languagues files"
|
||||
LangString var3 ${LANG_POLISH} "Examples of cartridges"
|
||||
LangString var4 ${LANG_POLISH} "Examples of diagrams"
|
||||
LangString Check ${LANG_POLISH} "Zaznacz, aby uruchomić ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_POLISH} "Elementy oficjalnej kolekcji"
|
||||
LangString var2 ${LANG_POLISH} "Pliki językowe"
|
||||
LangString var3 ${LANG_POLISH} "Przykłady tabliczek rysunkowych"
|
||||
LangString var4 ${LANG_POLISH} "Przykłady schematów"
|
||||
LangString var5 ${LANG_POLISH} "Czcionki"
|
||||
LangString uninstFailed ${LANG_POLISH} "Odinstalowanie poprzedniej wersji nie powiodło się.$\nPrzed kontynuowaniem odinstaluj ręcznie program ${SOFT_NAME}."
|
||||
|
||||
|
||||
LangString installed ${LANG_GREEK} "${SOFT_NAME} είναι ήδη εγκατεστημένο. $\n$\nΠάτησε `OK` για αφαίρεση της προηγούμενης έκδοσης ή `Cancel` για ακύρωση της αναβάθμισης."
|
||||
@@ -52,59 +82,68 @@
|
||||
LangString Refrigeration ${LANG_GREEK} "Ψύξη"
|
||||
LangString Solar_thermal ${LANG_GREEK} "Ηλιοθερμία"
|
||||
LangString Lang ${LANG_GREEK} "Γλώσσα"
|
||||
LangString Fonts ${LANG_GREEK} "Γραμματοσειρές"
|
||||
LangString Titleblocks ${LANG_GREEK} "Πινακίδες"
|
||||
LangString Examples ${LANG_GREEK} "Παραδείγματα"
|
||||
LangString Check ${LANG_GREEK} "Επιλέξτε για εκκίνηση ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_GREEK} "Στοιχεία της επίσημης συλλογής"
|
||||
LangString var2 ${LANG_GREEK} "Αρχεία γλωσσών"
|
||||
LangString var3 ${LANG_GREEK} "Examples of cartridges"
|
||||
LangString var3 ${LANG_GREEK} "Παραδείγματα πινακίδων"
|
||||
LangString var4 ${LANG_GREEK} "Παραδείγματα διαγραμμάτων"
|
||||
LangString var5 ${LANG_GREEK} "Γραμματοσειρές"
|
||||
LangString uninstFailed ${LANG_GREEK} "Η απεγκατάσταση της προηγούμενης έκδοσης απέτυχε.$\nΠαρακαλώ απεγκαταστήστε χειροκίνητα το ${SOFT_NAME} πριν συνεχίσετε."
|
||||
|
||||
|
||||
LangString installed ${LANG_CZECH} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
LangString wrongArch ${LANG_CZECH} "This distribution is for 64 bits computers only."
|
||||
LangString Elements ${LANG_CZECH} "Elements"
|
||||
LangString Electric ${LANG_CZECH} "Electric"
|
||||
LangString Logic ${LANG_CZECH} "Logic"
|
||||
LangString Hydraulic ${LANG_CZECH} "Hydraulic"
|
||||
LangString Pneumatic ${LANG_CZECH} "Pneumatic"
|
||||
LangString Energy ${LANG_CZECH} "Energy"
|
||||
LangString water ${LANG_CZECH} "Water"
|
||||
LangString Refrigeration ${LANG_CZECH} "Refrigeration"
|
||||
LangString Solar_thermal ${LANG_CZECH} "Solar_thermal"
|
||||
LangString Lang ${LANG_CZECH} "Lang"
|
||||
LangString Titleblocks ${LANG_CZECH} "Titleblocks"
|
||||
LangString Examples ${LANG_CZECH} "Examples"
|
||||
LangString Check ${LANG_CZECH} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_CZECH} "Elements of the official collection"
|
||||
LangString var2 ${LANG_CZECH} "languagues files"
|
||||
LangString var3 ${LANG_CZECH} "Examples of cartridges"
|
||||
LangString var4 ${LANG_CZECH} "Examples of diagrams"
|
||||
LangString installed ${LANG_CZECH} "${SOFT_NAME} je již nainstalován. $\n$\nKlikněte na `OK` pro odebrání předchozí verze nebo na `Zrušit` pro zrušení tohoto upgradu."
|
||||
LangString wrongArch ${LANG_CZECH} "Tato distribuce je určena pouze pro 64bitové počítače."
|
||||
LangString Elements ${LANG_CZECH} "Prvky"
|
||||
LangString Electric ${LANG_CZECH} "Elektrika"
|
||||
LangString Logic ${LANG_CZECH} "Logika"
|
||||
LangString Hydraulic ${LANG_CZECH} "Hydraulika"
|
||||
LangString Pneumatic ${LANG_CZECH} "Pneumatika"
|
||||
LangString Energy ${LANG_CZECH} "Energie"
|
||||
LangString water ${LANG_CZECH} "Voda"
|
||||
LangString Refrigeration ${LANG_CZECH} "Chlazení"
|
||||
LangString Solar_thermal ${LANG_CZECH} "Solární_teplo"
|
||||
LangString Lang ${LANG_CZECH} "Jazyk"
|
||||
LangString Fonts ${LANG_CZECH} "Písma"
|
||||
LangString Titleblocks ${LANG_CZECH} "Popisová pole"
|
||||
LangString Examples ${LANG_CZECH} "Příklady"
|
||||
LangString Check ${LANG_CZECH} "Zaškrtněte pro spuštění ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_CZECH} "Prvky oficiální kolekce"
|
||||
LangString var2 ${LANG_CZECH} "Jazykové soubory"
|
||||
LangString var3 ${LANG_CZECH} "Příklady popisových polí"
|
||||
LangString var4 ${LANG_CZECH} "Příklady schémat"
|
||||
LangString var5 ${LANG_CZECH} "Písma"
|
||||
LangString uninstFailed ${LANG_CZECH} "Odinstalování předchozí verze se nezdařilo.$\nPřed pokračováním prosím odinstalujte ${SOFT_NAME} ručně."
|
||||
|
||||
|
||||
LangString installed ${LANG_SPANISH} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
LangString wrongArch ${LANG_SPANISH} "This distribution is for 64 bits computers only."
|
||||
LangString Elements ${LANG_SPANISH} "Elements"
|
||||
LangString Electric ${LANG_SPANISH} "Electric"
|
||||
LangString Logic ${LANG_SPANISH} "Logic"
|
||||
LangString Hydraulic ${LANG_SPANISH} "Hydraulic"
|
||||
LangString Pneumatic ${LANG_SPANISH} "Pneumatic"
|
||||
LangString Energy ${LANG_SPANISH} "Energy"
|
||||
LangString water ${LANG_SPANISH} "Water"
|
||||
LangString Refrigeration ${LANG_SPANISH} "Refrigeration"
|
||||
LangString Solar_thermal ${LANG_SPANISH} "Solar_thermal"
|
||||
LangString Lang ${LANG_SPANISH} "Lang"
|
||||
LangString Titleblocks ${LANG_SPANISH} "Titleblocks"
|
||||
LangString Examples ${LANG_SPANISH} "Examples"
|
||||
LangString Check ${LANG_SPANISH} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_SPANISH} "Elements of the official collection"
|
||||
LangString var2 ${LANG_SPANISH} "languagues files"
|
||||
LangString var3 ${LANG_SPANISH} "Examples of cartridges"
|
||||
LangString var4 ${LANG_SPANISH} "Examples of diagrams"
|
||||
LangString installed ${LANG_SPANISH} "${SOFT_NAME} ya está instalado. $\n$\nHaga clic en `Aceptar` para eliminar la versión anterior o en `Cancelar` para cancelar esta actualización."
|
||||
LangString wrongArch ${LANG_SPANISH} "Esta distribución es solo para ordenadores de 64 bits."
|
||||
LangString Elements ${LANG_SPANISH} "Elementos"
|
||||
LangString Electric ${LANG_SPANISH} "Eléctrico"
|
||||
LangString Logic ${LANG_SPANISH} "Lógica"
|
||||
LangString Hydraulic ${LANG_SPANISH} "Hidráulica"
|
||||
LangString Pneumatic ${LANG_SPANISH} "Neumática"
|
||||
LangString Energy ${LANG_SPANISH} "Energía"
|
||||
LangString water ${LANG_SPANISH} "Agua"
|
||||
LangString Refrigeration ${LANG_SPANISH} "Refrigeración"
|
||||
LangString Solar_thermal ${LANG_SPANISH} "Solar_térmico"
|
||||
LangString Lang ${LANG_SPANISH} "Idioma"
|
||||
LangString Fonts ${LANG_SPANISH} "Fuentes"
|
||||
LangString Titleblocks ${LANG_SPANISH} "Cartelas"
|
||||
LangString Examples ${LANG_SPANISH} "Ejemplos"
|
||||
LangString Check ${LANG_SPANISH} "Marcar para iniciar ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_SPANISH} "Elementos de la colección oficial"
|
||||
LangString var2 ${LANG_SPANISH} "Archivos de idioma"
|
||||
LangString var3 ${LANG_SPANISH} "Ejemplos de cartelas"
|
||||
LangString var4 ${LANG_SPANISH} "Ejemplos de esquemas"
|
||||
LangString var5 ${LANG_SPANISH} "Fuentes"
|
||||
LangString uninstFailed ${LANG_SPANISH} "La desinstalación de la versión anterior ha fallado.$\nPor favor, desinstale ${SOFT_NAME} manualmente antes de continuar."
|
||||
|
||||
|
||||
LangString installed ${LANG_GERMAN} "${SOFT_NAME} ist bereits installiert. $\n$\nKlicken Sie auf `OK`, um die alte Version zu deinstallieren, oder auf `Abbrechen`, um das Upgrade abzubrechen."
|
||||
LangString wrongArch ${LANG_GERMAN} "Dieses Programm läuft ausschließlich unter Windows 64 Bits."
|
||||
LangString wrongArch ${LANG_GERMAN} "Dieses Programm läuft ausschließlich unter Windows 64 Bit."
|
||||
LangString Elements ${LANG_GERMAN} "Bauteile"
|
||||
LangString Electric ${LANG_GERMAN} "Elektrik"
|
||||
LangString Logic ${LANG_GERMAN} "Logik"
|
||||
@@ -115,13 +154,16 @@
|
||||
LangString Refrigeration ${LANG_GERMAN} "Kältetechnik"
|
||||
LangString Solar_thermal ${LANG_GERMAN} "Solar-Wärmetechnik"
|
||||
LangString Lang ${LANG_GERMAN} "Sprachen"
|
||||
LangString Titleblocks ${LANG_GERMAN} "Zeichnungsköpfe"
|
||||
LangString Fonts ${LANG_GERMAN} "Schriften"
|
||||
LangString Titleblocks ${LANG_GERMAN} "Schriftfelder"
|
||||
LangString Examples ${LANG_GERMAN} "Beispiele"
|
||||
LangString Check ${LANG_GERMAN} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_GERMAN} "Elements of the official collection"
|
||||
LangString var2 ${LANG_GERMAN} "languagues files"
|
||||
LangString var3 ${LANG_GERMAN} "Examples of cartridges"
|
||||
LangString var4 ${LANG_GERMAN} "Examples of diagrams"
|
||||
LangString Check ${LANG_GERMAN} "Ankreuzen zum Starten von ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_GERMAN} "Elemente der offiziellen Sammlung"
|
||||
LangString var2 ${LANG_GERMAN} "Sprachdateien"
|
||||
LangString var3 ${LANG_GERMAN} "Schriftfeld-Beispiele"
|
||||
LangString var4 ${LANG_GERMAN} "Schaltplan-Beispiele"
|
||||
LangString var5 ${LANG_GERMAN} "Schriften"
|
||||
LangString uninstFailed ${LANG_GERMAN} "Die Deinstallation der vorherigen Version ist fehlgeschlagen.$\nBitte deinstallieren Sie ${SOFT_NAME} manuell, bevor Sie fortfahren."
|
||||
|
||||
|
||||
LangString installed ${LANG_RUSSIAN} "${SOFT_NAME} уже установлен. $\n$\nДля удаления предыдущей версии нажмите `OK` или `Cancel` для отмены обновления."
|
||||
@@ -136,6 +178,7 @@
|
||||
LangString Refrigeration ${LANG_RUSSIAN} "Холодильная техника"
|
||||
LangString Solar_thermal ${LANG_RUSSIAN} "Солнечная-тепловая"
|
||||
LangString Lang ${LANG_RUSSIAN} "Язык"
|
||||
LangString Fonts ${LANG_RUSSIAN} "Шрифты"
|
||||
LangString Titleblocks ${LANG_RUSSIAN} "Штампы"
|
||||
LangString Examples ${LANG_RUSSIAN} "Примеры"
|
||||
LangString Check ${LANG_RUSSIAN} "Нажмите для запуска ${SOFT_NAME}"
|
||||
@@ -143,48 +186,56 @@
|
||||
LangString var2 ${LANG_RUSSIAN} "языковые файлы"
|
||||
LangString var3 ${LANG_RUSSIAN} "Примеры штампов"
|
||||
LangString var4 ${LANG_RUSSIAN} "Примеры схем"
|
||||
LangString var5 ${LANG_RUSSIAN} "Шрифты"
|
||||
LangString uninstFailed ${LANG_RUSSIAN} "Удаление предыдущей версии завершилось с ошибкой.$\nПожалуйста, удалите ${SOFT_NAME} вручную перед продолжением."
|
||||
|
||||
|
||||
LangString installed ${LANG_ARABIC} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
LangString wrongArch ${LANG_ARABIC} "This distribution is for 64 bits computers only."
|
||||
LangString Elements ${LANG_ARABIC} "Elements"
|
||||
LangString Electric ${LANG_ARABIC} "Electric"
|
||||
LangString Logic ${LANG_ARABIC} "Logic"
|
||||
LangString Hydraulic ${LANG_ARABIC} "Hydraulic"
|
||||
LangString Pneumatic ${LANG_ARABIC} "Pneumatic"
|
||||
LangString Energy ${LANG_ARABIC} "Energy"
|
||||
LangString water ${LANG_ARABIC} "Water"
|
||||
LangString Refrigeration ${LANG_ARABIC} "Refrigeration"
|
||||
LangString Solar_thermal ${LANG_ARABIC} "Solar_thermal"
|
||||
LangString Lang ${LANG_ARABIC} "Lang"
|
||||
LangString Titleblocks ${LANG_ARABIC} "Titleblocks"
|
||||
LangString Examples ${LANG_ARABIC} "Examples"
|
||||
LangString Check ${LANG_ARABIC} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_ARABIC} "Elements of the official collection"
|
||||
LangString var2 ${LANG_ARABIC} "languagues files"
|
||||
LangString var3 ${LANG_ARABIC} "Examples of cartridges"
|
||||
LangString var4 ${LANG_ARABIC} "Examples of diagrams"
|
||||
LangString installed ${LANG_ARABIC} "${SOFT_NAME} مثبَّت بالفعل. $\n$\nانقر على `موافق` لإزالة الإصدار السابق أو على `إلغاء` لإلغاء هذا التحديث."
|
||||
LangString wrongArch ${LANG_ARABIC} "هذا التوزيع مخصص لأجهزة الكمبيوتر 64 بت فقط."
|
||||
LangString Elements ${LANG_ARABIC} "العناصر"
|
||||
LangString Electric ${LANG_ARABIC} "الكهرباء"
|
||||
LangString Logic ${LANG_ARABIC} "المنطق"
|
||||
LangString Hydraulic ${LANG_ARABIC} "الهيدروليك"
|
||||
LangString Pneumatic ${LANG_ARABIC} "الهواء المضغوط"
|
||||
LangString Energy ${LANG_ARABIC} "الطاقة"
|
||||
LangString water ${LANG_ARABIC} "الماء"
|
||||
LangString Refrigeration ${LANG_ARABIC} "التبريد"
|
||||
LangString Solar_thermal ${LANG_ARABIC} "الطاقة_الشمسية_الحرارية"
|
||||
LangString Lang ${LANG_ARABIC} "اللغة"
|
||||
LangString Fonts ${LANG_ARABIC} "الخطوط"
|
||||
LangString Titleblocks ${LANG_ARABIC} "كتل العنوان"
|
||||
LangString Examples ${LANG_ARABIC} "أمثلة"
|
||||
LangString Check ${LANG_ARABIC} "حدد لتشغيل ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_ARABIC} "عناصر المجموعة الرسمية"
|
||||
LangString var2 ${LANG_ARABIC} "ملفات اللغة"
|
||||
LangString var3 ${LANG_ARABIC} "أمثلة على كتل العنوان"
|
||||
LangString var4 ${LANG_ARABIC} "أمثلة على المخططات"
|
||||
LangString var5 ${LANG_ARABIC} "الخطوط"
|
||||
LangString uninstFailed ${LANG_ARABIC} "فشل إلغاء تثبيت الإصدار السابق. يرجى إلغاء تثبيت ${SOFT_NAME} يدويًا قبل المتابعة."
|
||||
|
||||
|
||||
LangString installed ${LANG_CATALAN} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
LangString wrongArch ${LANG_CATALAN} "This distribution is for 64 bits computers only."
|
||||
LangString installed ${LANG_CATALAN} "${SOFT_NAME} ja està instal·lat. $\n$\nFeu clic a `D'acord` per eliminar la versió anterior o a `Cancel·la` per cancel·lar aquesta actualització."
|
||||
LangString wrongArch ${LANG_CATALAN} "Aquesta distribució és només per a ordinadors de 64 bits."
|
||||
LangString Elements ${LANG_CATALAN} "Elements"
|
||||
LangString Electric ${LANG_CATALAN} "Electric"
|
||||
LangString Logic ${LANG_CATALAN} "Logic"
|
||||
LangString Hydraulic ${LANG_CATALAN} "Hydraulic"
|
||||
LangString Pneumatic ${LANG_CATALAN} "Pneumatic"
|
||||
LangString Energy ${LANG_CATALAN} "Energy"
|
||||
LangString water ${LANG_CATALAN} "Water"
|
||||
LangString Refrigeration ${LANG_CATALAN} "Refrigeration"
|
||||
LangString Solar_thermal ${LANG_CATALAN} "Solar_thermal"
|
||||
LangString Lang ${LANG_CATALAN} "Lang"
|
||||
LangString Titleblocks ${LANG_CATALAN} "Titleblocks"
|
||||
LangString Examples ${LANG_CATALAN} "Examples"
|
||||
LangString Check ${LANG_CATALAN} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_CATALAN} "Elements of the official collection"
|
||||
LangString var2 ${LANG_CATALAN} "languagues files"
|
||||
LangString var3 ${LANG_CATALAN} "Examples of cartridges"
|
||||
LangString var4 ${LANG_CATALAN} "Examples of diagrams"
|
||||
LangString Electric ${LANG_CATALAN} "Elèctric"
|
||||
LangString Logic ${LANG_CATALAN} "Lògica"
|
||||
LangString Hydraulic ${LANG_CATALAN} "Hidràulica"
|
||||
LangString Pneumatic ${LANG_CATALAN} "Pneumàtica"
|
||||
LangString Energy ${LANG_CATALAN} "Energia"
|
||||
LangString water ${LANG_CATALAN} "Aigua"
|
||||
LangString Refrigeration ${LANG_CATALAN} "Refrigeració"
|
||||
LangString Solar_thermal ${LANG_CATALAN} "Solar_tèrmic"
|
||||
LangString Lang ${LANG_CATALAN} "Idioma"
|
||||
LangString Fonts ${LANG_CATALAN} "Tipus de lletra"
|
||||
LangString Titleblocks ${LANG_CATALAN} "Cartutxos"
|
||||
LangString Examples ${LANG_CATALAN} "Exemples"
|
||||
LangString Check ${LANG_CATALAN} "Marca per iniciar ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_CATALAN} "Elements de la col·lecció oficial"
|
||||
LangString var2 ${LANG_CATALAN} "Fitxers d'idioma"
|
||||
LangString var3 ${LANG_CATALAN} "Exemples de cartutxos"
|
||||
LangString var4 ${LANG_CATALAN} "Exemples d'esquemes"
|
||||
LangString var5 ${LANG_CATALAN} "Tipus de lletra"
|
||||
LangString uninstFailed ${LANG_CATALAN} "La desinstal·lació de la versió anterior ha fallat.$\nSi us plau, desinstal·leu ${SOFT_NAME} manualment abans de continuar."
|
||||
|
||||
|
||||
LangString installed ${LANG_ITALIAN} "${SOFT_NAME} è già installato. $\n$\nFare click su `OK` per rimuovere la versione precedente o su `Annulla` per annullare questo aggiornamento."
|
||||
@@ -199,6 +250,7 @@
|
||||
LangString Refrigeration ${LANG_ITALIAN} "Refrigerazione"
|
||||
LangString Solar_thermal ${LANG_ITALIAN} "Solare_termico"
|
||||
LangString Lang ${LANG_ITALIAN} "Lingua"
|
||||
LangString Fonts ${LANG_ITALIAN} "Caratteri"
|
||||
LangString Titleblocks ${LANG_ITALIAN} "Cartigli"
|
||||
LangString Examples ${LANG_ITALIAN} "Esempi"
|
||||
LangString Check ${LANG_ITALIAN} "Avvia ${SOFT_NAME}"
|
||||
@@ -206,69 +258,80 @@
|
||||
LangString var2 ${LANG_ITALIAN} "File della lingua"
|
||||
LangString var3 ${LANG_ITALIAN} "Cartigli di esempio"
|
||||
LangString var4 ${LANG_ITALIAN} "Schemi di esempio"
|
||||
LangString var5 ${LANG_ITALIAN} "Caratteri"
|
||||
LangString uninstFailed ${LANG_ITALIAN} "La disinstallazione della versione precedente non è riuscita.$\nSi prega di disinstallare ${SOFT_NAME} manualmente prima di continuare."
|
||||
|
||||
|
||||
LangString installed ${LANG_PORTUGUESE} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
LangString wrongArch ${LANG_PORTUGUESE} "This distribution is for 64 bits computers only."
|
||||
LangString Elements ${LANG_PORTUGUESE} "Elements"
|
||||
LangString Electric ${LANG_PORTUGUESE} "Electric"
|
||||
LangString Logic ${LANG_PORTUGUESE} "Logic"
|
||||
LangString Hydraulic ${LANG_PORTUGUESE} "Hydraulic"
|
||||
LangString Pneumatic ${LANG_PORTUGUESE} "Pneumatic"
|
||||
LangString Energy ${LANG_PORTUGUESE} "Energy"
|
||||
LangString water ${LANG_PORTUGUESE} "Water"
|
||||
LangString Refrigeration ${LANG_PORTUGUESE} "Refrigeration"
|
||||
LangString Solar_thermal ${LANG_PORTUGUESE} "Solar_thermal"
|
||||
LangString Lang ${LANG_PORTUGUESE} "Lang"
|
||||
LangString Titleblocks ${LANG_PORTUGUESE} "Titleblocks"
|
||||
LangString Examples ${LANG_PORTUGUESE} "Examples"
|
||||
LangString Check ${LANG_PORTUGUESE} "Avviare ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_PORTUGUESE} "Elements of the official collection"
|
||||
LangString var2 ${LANG_PORTUGUESE} "languagues files"
|
||||
LangString var3 ${LANG_PORTUGUESE} "Examples of cartridges"
|
||||
LangString var4 ${LANG_PORTUGUESE} "Examples of diagrams"
|
||||
LangString installed ${LANG_PORTUGUESE} "${SOFT_NAME} já está instalado. $\n$\nClique em `OK` para remover a versão anterior ou em `Cancelar` para cancelar esta atualização."
|
||||
LangString wrongArch ${LANG_PORTUGUESE} "Esta distribuição é apenas para computadores de 64 bits."
|
||||
LangString Elements ${LANG_PORTUGUESE} "Elementos"
|
||||
LangString Electric ${LANG_PORTUGUESE} "Elétrica"
|
||||
LangString Logic ${LANG_PORTUGUESE} "Lógica"
|
||||
LangString Hydraulic ${LANG_PORTUGUESE} "Hidráulica"
|
||||
LangString Pneumatic ${LANG_PORTUGUESE} "Pneumática"
|
||||
LangString Energy ${LANG_PORTUGUESE} "Energia"
|
||||
LangString water ${LANG_PORTUGUESE} "Água"
|
||||
LangString Refrigeration ${LANG_PORTUGUESE} "Refrigeração"
|
||||
LangString Solar_thermal ${LANG_PORTUGUESE} "Solar_térmico"
|
||||
LangString Lang ${LANG_PORTUGUESE} "Idioma"
|
||||
LangString Fonts ${LANG_PORTUGUESE} "Fontes"
|
||||
LangString Titleblocks ${LANG_PORTUGUESE} "Legendas"
|
||||
LangString Examples ${LANG_PORTUGUESE} "Exemplos"
|
||||
LangString Check ${LANG_PORTUGUESE} "Marcar para iniciar ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_PORTUGUESE} "Elementos da coleção oficial"
|
||||
LangString var2 ${LANG_PORTUGUESE} "Arquivos de idioma"
|
||||
LangString var3 ${LANG_PORTUGUESE} "Exemplos de legendas"
|
||||
LangString var4 ${LANG_PORTUGUESE} "Exemplos de esquemas"
|
||||
LangString var5 ${LANG_PORTUGUESE} "Fontes"
|
||||
LangString uninstFailed ${LANG_PORTUGUESE} "A desinstalação da versão anterior falhou.$\nPor favor, desinstale ${SOFT_NAME} manualmente antes de continuar."
|
||||
|
||||
|
||||
LangString installed ${LANG_ROMANIAN} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
LangString wrongArch ${LANG_ROMANIAN} "This distribution is for 64 bits computers only."
|
||||
LangString Elements ${LANG_ROMANIAN} "Elements"
|
||||
LangString installed ${LANG_ROMANIAN} "${SOFT_NAME} este deja instalat. $\n$\nFaceți clic pe `OK` pentru a elimina versiunea anterioară sau pe `Anulare` pentru a anula această actualizare."
|
||||
LangString wrongArch ${LANG_ROMANIAN} "Această distribuție este destinată numai computerelor pe 64 de biți."
|
||||
LangString Elements ${LANG_ROMANIAN} "Elemente"
|
||||
LangString Electric ${LANG_ROMANIAN} "Electric"
|
||||
LangString Logic ${LANG_ROMANIAN} "Logic"
|
||||
LangString Hydraulic ${LANG_ROMANIAN} "Hydraulic"
|
||||
LangString Pneumatic ${LANG_ROMANIAN} "Pneumatic"
|
||||
LangString Energy ${LANG_ROMANIAN} "Energy"
|
||||
LangString water ${LANG_ROMANIAN} "Water"
|
||||
LangString Refrigeration ${LANG_ROMANIAN} "Refrigeration"
|
||||
LangString Solar_thermal ${LANG_ROMANIAN} "Solar_thermal"
|
||||
LangString Lang ${LANG_ROMANIAN} "Lang"
|
||||
LangString Titleblocks ${LANG_ROMANIAN} "Titleblocks"
|
||||
LangString Examples ${LANG_ROMANIAN} "Examples"
|
||||
LangString Check ${LANG_ROMANIAN} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_ROMANIAN} "Elements of the official collection"
|
||||
LangString var2 ${LANG_ROMANIAN} "languagues files"
|
||||
LangString var3 ${LANG_ROMANIAN} "Examples of cartridges"
|
||||
LangString var4 ${LANG_ROMANIAN} "Examples of diagrams"
|
||||
LangString Logic ${LANG_ROMANIAN} "Logică"
|
||||
LangString Hydraulic ${LANG_ROMANIAN} "Hidraulică"
|
||||
LangString Pneumatic ${LANG_ROMANIAN} "Pneumatică"
|
||||
LangString Energy ${LANG_ROMANIAN} "Energie"
|
||||
LangString water ${LANG_ROMANIAN} "Apă"
|
||||
LangString Refrigeration ${LANG_ROMANIAN} "Refrigerare"
|
||||
LangString Solar_thermal ${LANG_ROMANIAN} "Solar_termic"
|
||||
LangString Lang ${LANG_ROMANIAN} "Limbă"
|
||||
LangString Fonts ${LANG_ROMANIAN} "Fonturi"
|
||||
LangString Titleblocks ${LANG_ROMANIAN} "Cartușe"
|
||||
LangString Examples ${LANG_ROMANIAN} "Exemple"
|
||||
LangString Check ${LANG_ROMANIAN} "Bifați pentru a porni ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_ROMANIAN} "Elemente din colecția oficială"
|
||||
LangString var2 ${LANG_ROMANIAN} "Fișiere de limbă"
|
||||
LangString var3 ${LANG_ROMANIAN} "Exemple de cartușe"
|
||||
LangString var4 ${LANG_ROMANIAN} "Exemple de scheme"
|
||||
LangString var5 ${LANG_ROMANIAN} "Fonturi"
|
||||
LangString uninstFailed ${LANG_ROMANIAN} "Dezinstalarea versiunii anterioare a eșuat.$\nVă rugăm să dezinstalați ${SOFT_NAME} manual înainte de a continua."
|
||||
|
||||
|
||||
LangString installed ${LANG_CROATIAN} "${SOFT_NAME} is already installed. $\n$\nClick `OK` to remove the previous version or `Cancel` to cancel this upgrade."
|
||||
LangString wrongArch ${LANG_CROATIAN} "This distribution is for 64 bits computers only."
|
||||
LangString Elements ${LANG_CROATIAN} "Elements"
|
||||
LangString Electric ${LANG_CROATIAN} "Electric"
|
||||
LangString Logic ${LANG_CROATIAN} "Logic"
|
||||
LangString Hydraulic ${LANG_CROATIAN} "Hydraulic"
|
||||
LangString Pneumatic ${LANG_CROATIAN} "Pneumatic"
|
||||
LangString Energy ${LANG_CROATIAN} "Energy"
|
||||
LangString water ${LANG_CROATIAN} "Water"
|
||||
LangString Refrigeration ${LANG_CROATIAN} "Refrigeration"
|
||||
LangString Solar_thermal ${LANG_CROATIAN} "Solar_thermal"
|
||||
LangString Lang ${LANG_CROATIAN} "Lang"
|
||||
LangString Titleblocks ${LANG_CROATIAN} "Titleblocks"
|
||||
LangString Examples ${LANG_CROATIAN} "Examples"
|
||||
LangString Check ${LANG_CROATIAN} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_CROATIAN} "Elements of the official collection"
|
||||
LangString var2 ${LANG_CROATIAN} "languagues files"
|
||||
LangString var3 ${LANG_CROATIAN} "Examples of cartridges"
|
||||
LangString var4 ${LANG_CROATIAN} "Examples of diagrams"
|
||||
LangString installed ${LANG_CROATIAN} "${SOFT_NAME} je već instaliran. $\n$\nKliknite `U redu` za uklanjanje prethodne verzije ili `Odustani` za odustajanje od nadogradnje."
|
||||
LangString wrongArch ${LANG_CROATIAN} "Ova distribucija namijenjena je samo za 64-bitna računala."
|
||||
LangString Elements ${LANG_CROATIAN} "Elementi"
|
||||
LangString Electric ${LANG_CROATIAN} "Elektrika"
|
||||
LangString Logic ${LANG_CROATIAN} "Logika"
|
||||
LangString Hydraulic ${LANG_CROATIAN} "Hidraulika"
|
||||
LangString Pneumatic ${LANG_CROATIAN} "Pneumatika"
|
||||
LangString Energy ${LANG_CROATIAN} "Energija"
|
||||
LangString water ${LANG_CROATIAN} "Voda"
|
||||
LangString Refrigeration ${LANG_CROATIAN} "Hlađenje"
|
||||
LangString Solar_thermal ${LANG_CROATIAN} "Solarno_toplinsko"
|
||||
LangString Lang ${LANG_CROATIAN} "Jezik"
|
||||
LangString Fonts ${LANG_CROATIAN} "Fontovi"
|
||||
LangString Titleblocks ${LANG_CROATIAN} "Zaglavlja"
|
||||
LangString Examples ${LANG_CROATIAN} "Primjeri"
|
||||
LangString Check ${LANG_CROATIAN} "Označite za pokretanje ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_CROATIAN} "Elementi službene zbirke"
|
||||
LangString var2 ${LANG_CROATIAN} "Jezične datoteke"
|
||||
LangString var3 ${LANG_CROATIAN} "Primjeri zaglavlja"
|
||||
LangString var4 ${LANG_CROATIAN} "Primjeri shema"
|
||||
LangString var5 ${LANG_CROATIAN} "Fontovi"
|
||||
LangString uninstFailed ${LANG_CROATIAN} "Deinstalacija prethodne verzije nije uspjela.$\nMolimo deinstalirajte ${SOFT_NAME} ručno prije nastavka."
|
||||
|
||||
|
||||
LangString installed ${LANG_DUTCH} "${SOFT_NAME} is al geinstalleerd. $\n$\nklik `OK` om vorige versie te verwijderen of `annuleer` om deze upgrade te annuleren."
|
||||
@@ -283,34 +346,16 @@
|
||||
LangString Refrigeration ${LANG_DUTCH} "Koelinstallaties"
|
||||
LangString Solar_thermal ${LANG_DUTCH} "Zonne_warmte"
|
||||
LangString Lang ${LANG_DUTCH} "Taal"
|
||||
LangString Fonts ${LANG_DUTCH} "Lettertypen"
|
||||
LangString Titleblocks ${LANG_DUTCH} "Titelblok"
|
||||
LangString Examples ${LANG_DUTCH} "Voorbeelden"
|
||||
LangString Check ${LANG_DUTCH} "Check to start ${SOFT_NAME}"
|
||||
LangString Check ${LANG_DUTCH} "Check to start ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_DUTCH} "Elements of the official collection"
|
||||
LangString var2 ${LANG_DUTCH} "languagues files"
|
||||
LangString var3 ${LANG_DUTCH} "Examples of cartridges"
|
||||
LangString var4 ${LANG_DUTCH} "Examples of diagrams"
|
||||
|
||||
LangString installed ${LANG_DUTCH_BELGIUM} "${SOFT_NAME} is reeds geinstallerd. $\n$\nKlik`OK` om vorige versie te verwijderen of `Afbreken` om de upgrade niet uit te voeren."
|
||||
LangString wrongArch ${LANG_DUTCH_BELGIUM} "Deze distributie werkt enkel op 64 bits computers."
|
||||
LangString Elements ${LANG_DUTCH_BELGIUM} "Elementen"
|
||||
LangString Electric ${LANG_DUTCH_BELGIUM} "Electrisch"
|
||||
LangString Logic ${LANG_DUTCH_BELGIUM} "Logica"
|
||||
LangString Hydraulic ${LANG_DUTCH_BELGIUM} "Hydraulisch"
|
||||
LangString Pneumatic ${LANG_DUTCH_BELGIUM} "Pneumatisch"
|
||||
LangString Energy ${LANG_DUTCH_BELGIUM} "Energie"
|
||||
LangString water ${LANG_DUTCH_BELGIUM} "Water"
|
||||
LangString Refrigeration ${LANG_DUTCH_BELGIUM} "Klimatisatie"
|
||||
LangString Solar_thermal ${LANG_DUTCH_BELGIUM} "Termisch & zonlicht"
|
||||
LangString Lang ${LANG_DUTCH_BELGIUM} "Taal"
|
||||
LangString Titleblocks ${LANG_DUTCH_BELGIUM} "Titelhoek"
|
||||
LangString Examples ${LANG_DUTCH_BELGIUM} "Voorbeelden"
|
||||
LangString Check ${LANG_DUTCH_BELGIUM} "Controleer om te beginnen ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_DUTCH_BELGIUM} "Symbolen van de officielen verzameling"
|
||||
LangString var2 ${LANG_DUTCH_BELGIUM} "taal bestanden"
|
||||
LangString var3 ${LANG_DUTCH_BELGIUM} "Voorbeel titelhoeken"
|
||||
LangString var4 ${LANG_DUTCH_BELGIUM} "Voorbeeld schema's"
|
||||
LangString Check ${LANG_DUTCH} "Aanvinken om ${SOFT_NAME} te starten"
|
||||
LangString var1 ${LANG_DUTCH} "Elementen van de officiële verzameling"
|
||||
LangString var2 ${LANG_DUTCH} "Taalbestanden"
|
||||
LangString var3 ${LANG_DUTCH} "Voorbeelden van titelblokken"
|
||||
LangString var4 ${LANG_DUTCH} "Voorbeelden van schema's"
|
||||
LangString var5 ${LANG_DUTCH} "Lettertypen"
|
||||
LangString uninstFailed ${LANG_DUTCH} "Het verwijderen van de vorige versie is mislukt.$\nVerwijder ${SOFT_NAME} handmatig voordat u verdergaat."
|
||||
|
||||
|
||||
LangString installed ${LANG_DANISH} "${SOFT_NAME} er allerede installeret. $\n$\nKlik `Ok` for at fjerne foregående version eller `Annuller` for at annullere opgraderingen."
|
||||
@@ -325,6 +370,7 @@
|
||||
LangString Refrigeration ${LANG_DANISH} "Køle teknik"
|
||||
LangString Solar_thermal ${LANG_DANISH} "Sol & varme teknik"
|
||||
LangString Lang ${LANG_DANISH} "Sprog"
|
||||
LangString Fonts ${LANG_DANISH} "Skrifttyper"
|
||||
LangString Titleblocks ${LANG_DANISH} "Titel blokke"
|
||||
LangString Examples ${LANG_DANISH} "Eksempler"
|
||||
LangString Check ${LANG_DANISH} "Vælg for at starte ${SOFT_NAME}"
|
||||
@@ -332,5 +378,8 @@
|
||||
LangString var2 ${LANG_DANISH} "Sprog filer"
|
||||
LangString var3 ${LANG_DANISH} "Titel blokke eksempler"
|
||||
LangString var4 ${LANG_DANISH} "Diagram eksempler"
|
||||
LangString var5 ${LANG_DANISH} "Skrifttyper"
|
||||
LangString uninstFailed ${LANG_DANISH} "Afinstallation af den tidligere version mislykkedes.$\nAfinstaller venligst ${SOFT_NAME} manuelt, inden du fortsætter."
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
LangString wrongArch ${LANG_FRENCH} "Ce programme est pour Windows 64 bits seulement."
|
||||
LangString installed ${LANG_FRENCH} "${SOFT_NAME} est déja installé. $\n$\nCliquer sur `OK` pour désinstaller l'ancienne version `Annuler` pour annuler cet upgrade."
|
||||
LangString Elements ${LANG_FRENCH} "Eléments"
|
||||
LangString installed ${LANG_FRENCH} "${SOFT_NAME} est déja installé. $\n$\nCliquer sur `OK` pour désinstaller l'ancienne version `Annuler` pour annuler cet upgrade."
|
||||
LangString Elements ${LANG_FRENCH} "Eléments"
|
||||
LangString Electric ${LANG_FRENCH} "Electrique"
|
||||
LangString Logic ${LANG_FRENCH} "Logique"
|
||||
LangString Hydraulic ${LANG_FRENCH} "Hydraulique"
|
||||
@@ -10,10 +10,13 @@
|
||||
LangString Refrigeration ${LANG_FRENCH} "Climatisation"
|
||||
LangString Solar_thermal ${LANG_FRENCH} "Thermique & solaire"
|
||||
LangString Lang ${LANG_FRENCH} "Langues"
|
||||
LangString Fonts ${LANG_FRENCH} "Polices"
|
||||
LangString Titleblocks ${LANG_FRENCH} "Cartouches"
|
||||
LangString Examples ${LANG_FRENCH} "Exemples"
|
||||
LangString Check ${LANG_FRENCH} "Cocher pour lancer ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_FRENCH} "Eléments de la collection officielle"
|
||||
LangString var1 ${LANG_FRENCH} "Eléments de la collection officielle"
|
||||
LangString var2 ${LANG_FRENCH} "Fichiers de langues"
|
||||
LangString var3 ${LANG_FRENCH} "Exemples de cartouches"
|
||||
LangString var4 ${LANG_FRENCH} "Exemples de schémas"
|
||||
LangString var4 ${LANG_FRENCH} "Exemples de schémas"
|
||||
LangString var5 ${LANG_FRENCH} "Polices"
|
||||
LangString uninstFailed ${LANG_FRENCH} "La désinstallation de la version précédente a échoué.$\nVeuillez désinstaller ${SOFT_NAME} manuellement avant de continuer."
|
||||
|
||||
335
build-aux/windows/lang_extra_missing.nsh
Normal file
@@ -0,0 +1,335 @@
|
||||
; Missing language translations for QElectroTech installer
|
||||
; Languages added: hu, ja, mn, nb, nl_BE, nl_NL, pt_BR, rs/sr, sk, sl, sv, tr, uk, zh
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Hungarian (LANG_HUNGARIAN)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_HUNGARIAN} "${SOFT_NAME} már telepítve van. $\n$\nKattintson az `OK` gombra az előző verzió eltávolításához, vagy a `Mégse` gombra a frissítés megszakításához."
|
||||
LangString wrongArch ${LANG_HUNGARIAN} "Ez a terjesztés csak 64 bites számítógépekre való."
|
||||
LangString Elements ${LANG_HUNGARIAN} "Elemek"
|
||||
LangString Electric ${LANG_HUNGARIAN} "Elektromos"
|
||||
LangString Logic ${LANG_HUNGARIAN} "Logika"
|
||||
LangString Hydraulic ${LANG_HUNGARIAN} "Hidraulika"
|
||||
LangString Pneumatic ${LANG_HUNGARIAN} "Pneumatika"
|
||||
LangString Energy ${LANG_HUNGARIAN} "Energia"
|
||||
LangString water ${LANG_HUNGARIAN} "Víz"
|
||||
LangString Refrigeration ${LANG_HUNGARIAN} "Hűtés"
|
||||
LangString Solar_thermal ${LANG_HUNGARIAN} "Nap_hőenergia"
|
||||
LangString Lang ${LANG_HUNGARIAN} "Nyelv"
|
||||
LangString Fonts ${LANG_HUNGARIAN} "Betűtípusok"
|
||||
LangString Titleblocks ${LANG_HUNGARIAN} "Rajzfejlécek"
|
||||
LangString Examples ${LANG_HUNGARIAN} "Példák"
|
||||
LangString Check ${LANG_HUNGARIAN} "Jelölje be a ${SOFT_NAME} indításához"
|
||||
LangString var1 ${LANG_HUNGARIAN} "A hivatalos gyűjtemény elemei"
|
||||
LangString var2 ${LANG_HUNGARIAN} "Nyelvfájlok"
|
||||
LangString var3 ${LANG_HUNGARIAN} "Rajzfejléc-példák"
|
||||
LangString var4 ${LANG_HUNGARIAN} "Kapcsolási rajz példák"
|
||||
LangString var5 ${LANG_HUNGARIAN} "Betűtípusok"
|
||||
LangString uninstFailed ${LANG_HUNGARIAN} "Az előző verzió eltávolítása nem sikerült.$\nKérjük, távolítsa el manuálisan a ${SOFT_NAME} programot, mielőtt folytatná."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Japanese (LANG_JAPANESE)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_JAPANESE} "${SOFT_NAME} はすでにインストールされています。$\n$\n前のバージョンを削除するには `OK` をクリックし、このアップグレードをキャンセルするには `キャンセル` をクリックしてください。"
|
||||
LangString wrongArch ${LANG_JAPANESE} "この配布パッケージは64ビットコンピュータ専用です。"
|
||||
LangString Elements ${LANG_JAPANESE} "部品"
|
||||
LangString Electric ${LANG_JAPANESE} "電気"
|
||||
LangString Logic ${LANG_JAPANESE} "論理"
|
||||
LangString Hydraulic ${LANG_JAPANESE} "油圧"
|
||||
LangString Pneumatic ${LANG_JAPANESE} "空圧"
|
||||
LangString Energy ${LANG_JAPANESE} "エネルギー"
|
||||
LangString water ${LANG_JAPANESE} "水"
|
||||
LangString Refrigeration ${LANG_JAPANESE} "冷凍"
|
||||
LangString Solar_thermal ${LANG_JAPANESE} "太陽熱"
|
||||
LangString Lang ${LANG_JAPANESE} "言語"
|
||||
LangString Fonts ${LANG_JAPANESE} "フォント"
|
||||
LangString Titleblocks ${LANG_JAPANESE} "表題欄"
|
||||
LangString Examples ${LANG_JAPANESE} "例"
|
||||
LangString Check ${LANG_JAPANESE} "${SOFT_NAME} を起動するにはチェックを入れてください"
|
||||
LangString var1 ${LANG_JAPANESE} "公式コレクションの部品"
|
||||
LangString var2 ${LANG_JAPANESE} "言語ファイル"
|
||||
LangString var3 ${LANG_JAPANESE} "表題欄の例"
|
||||
LangString var4 ${LANG_JAPANESE} "回路図の例"
|
||||
LangString var5 ${LANG_JAPANESE} "フォント"
|
||||
LangString uninstFailed ${LANG_JAPANESE} "前のバージョンのアンインストールに失敗しました。$\n続行する前に、${SOFT_NAME} を手動でアンインストールしてください。"
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Mongolian (LANG_MONGOLIAN)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_MONGOLIAN} "${SOFT_NAME} аль хэдийн суулгасан байна. $\n$\nӨмнөх хувилбарыг устгахын тулд `OK` дарна уу эсвэл энэ шинэчлэлтийг цуцлахын тулд `Цуцлах` дарна уу."
|
||||
LangString wrongArch ${LANG_MONGOLIAN} "Энэ тарилга нь зөвхөн 64 битийн компьютерт зориулагдсан."
|
||||
LangString Elements ${LANG_MONGOLIAN} "Элементүүд"
|
||||
LangString Electric ${LANG_MONGOLIAN} "Цахилгаан"
|
||||
LangString Logic ${LANG_MONGOLIAN} "Логик"
|
||||
LangString Hydraulic ${LANG_MONGOLIAN} "Гидравлик"
|
||||
LangString Pneumatic ${LANG_MONGOLIAN} "Пневматик"
|
||||
LangString Energy ${LANG_MONGOLIAN} "Эрчим хүч"
|
||||
LangString water ${LANG_MONGOLIAN} "Ус"
|
||||
LangString Refrigeration ${LANG_MONGOLIAN} "Хөргөлт"
|
||||
LangString Solar_thermal ${LANG_MONGOLIAN} "Нарны_дулаан"
|
||||
LangString Lang ${LANG_MONGOLIAN} "Хэл"
|
||||
LangString Fonts ${LANG_MONGOLIAN} "Фонт"
|
||||
LangString Titleblocks ${LANG_MONGOLIAN} "Гарчгийн блокууд"
|
||||
LangString Examples ${LANG_MONGOLIAN} "Жишээнүүд"
|
||||
LangString Check ${LANG_MONGOLIAN} "${SOFT_NAME} эхлүүлэхийн тулд тэмдэглэнэ үү"
|
||||
LangString var1 ${LANG_MONGOLIAN} "Албан ёсны цуглуулгын элементүүд"
|
||||
LangString var2 ${LANG_MONGOLIAN} "Хэлний файлууд"
|
||||
LangString var3 ${LANG_MONGOLIAN} "Гарчгийн блокын жишээнүүд"
|
||||
LangString var4 ${LANG_MONGOLIAN} "Схемийн жишээнүүд"
|
||||
LangString var5 ${LANG_MONGOLIAN} "Фонт"
|
||||
LangString uninstFailed ${LANG_MONGOLIAN} "Өмнөх хувилбарыг устгаж чадсангүй.$\nҮргэлжлүүлэхийн өмнө ${SOFT_NAME}-г гараар устгана уу."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Norwegian Bokmål (LANG_NORWEGIAN)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_NORWEGIAN} "${SOFT_NAME} er allerede installert. $\n$\nKlikk `OK` for å fjerne forrige versjon, eller `Avbryt` for å avbryte denne oppgraderingen."
|
||||
LangString wrongArch ${LANG_NORWEGIAN} "Denne distribusjonen er kun for 64-biters datamaskiner."
|
||||
LangString Elements ${LANG_NORWEGIAN} "Elementer"
|
||||
LangString Electric ${LANG_NORWEGIAN} "Elektrisk"
|
||||
LangString Logic ${LANG_NORWEGIAN} "Logikk"
|
||||
LangString Hydraulic ${LANG_NORWEGIAN} "Hydraulikk"
|
||||
LangString Pneumatic ${LANG_NORWEGIAN} "Pneumatikk"
|
||||
LangString Energy ${LANG_NORWEGIAN} "Energi"
|
||||
LangString water ${LANG_NORWEGIAN} "Vann"
|
||||
LangString Refrigeration ${LANG_NORWEGIAN} "Kjøling"
|
||||
LangString Solar_thermal ${LANG_NORWEGIAN} "Solvarme"
|
||||
LangString Lang ${LANG_NORWEGIAN} "Språk"
|
||||
LangString Fonts ${LANG_NORWEGIAN} "Skrifttyper"
|
||||
LangString Titleblocks ${LANG_NORWEGIAN} "Titelblokker"
|
||||
LangString Examples ${LANG_NORWEGIAN} "Eksempler"
|
||||
LangString Check ${LANG_NORWEGIAN} "Kryss av for å starte ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_NORWEGIAN} "Elementer fra den offisielle samlingen"
|
||||
LangString var2 ${LANG_NORWEGIAN} "Språkfiler"
|
||||
LangString var3 ${LANG_NORWEGIAN} "Eksempler på titelblokker"
|
||||
LangString var4 ${LANG_NORWEGIAN} "Eksempler på skjemaer"
|
||||
LangString var5 ${LANG_NORWEGIAN} "Skrifttyper"
|
||||
LangString uninstFailed ${LANG_NORWEGIAN} "Avinstallasjon av forrige versjon mislyktes.$\nVennligst avinstaller ${SOFT_NAME} manuelt før du fortsetter."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Dutch Belgium (LANG_DUTCH / nl_BE — same LANG_DUTCH constant, Belgian variant)
|
||||
; Note: NSIS uses a single LANG_DUTCH constant for both nl_BE and nl_NL.
|
||||
; If your build distinguishes them via a custom constant, replace accordingly.
|
||||
; The block below is already covered by LANG_DUTCH in lang_extra.nsh.
|
||||
; Included here for completeness / override if needed.
|
||||
; ----------------------------------------------------------------
|
||||
; (nl_BE uses the same LANG_DUTCH strings already defined in lang_extra.nsh)
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Portuguese Brazil (LANG_PORTUGUESEBR)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_PORTUGUESEBR} "${SOFT_NAME} já está instalado. $\n$\nClique em `OK` para remover a versão anterior ou em `Cancelar` para cancelar esta atualização."
|
||||
LangString wrongArch ${LANG_PORTUGUESEBR} "Esta distribuição é apenas para computadores de 64 bits."
|
||||
LangString Elements ${LANG_PORTUGUESEBR} "Elementos"
|
||||
LangString Electric ${LANG_PORTUGUESEBR} "Elétrico"
|
||||
LangString Logic ${LANG_PORTUGUESEBR} "Lógica"
|
||||
LangString Hydraulic ${LANG_PORTUGUESEBR} "Hidráulica"
|
||||
LangString Pneumatic ${LANG_PORTUGUESEBR} "Pneumática"
|
||||
LangString Energy ${LANG_PORTUGUESEBR} "Energia"
|
||||
LangString water ${LANG_PORTUGUESEBR} "Água"
|
||||
LangString Refrigeration ${LANG_PORTUGUESEBR} "Refrigeração"
|
||||
LangString Solar_thermal ${LANG_PORTUGUESEBR} "Solar_térmico"
|
||||
LangString Lang ${LANG_PORTUGUESEBR} "Idioma"
|
||||
LangString Fonts ${LANG_PORTUGUESEBR} "Fontes"
|
||||
LangString Titleblocks ${LANG_PORTUGUESEBR} "Legendas"
|
||||
LangString Examples ${LANG_PORTUGUESEBR} "Exemplos"
|
||||
LangString Check ${LANG_PORTUGUESEBR} "Marcar para iniciar ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_PORTUGUESEBR} "Elementos da coleção oficial"
|
||||
LangString var2 ${LANG_PORTUGUESEBR} "Arquivos de idioma"
|
||||
LangString var3 ${LANG_PORTUGUESEBR} "Exemplos de legendas"
|
||||
LangString var4 ${LANG_PORTUGUESEBR} "Exemplos de esquemas"
|
||||
LangString var5 ${LANG_PORTUGUESEBR} "Fontes"
|
||||
LangString uninstFailed ${LANG_PORTUGUESEBR} "A desinstalação da versão anterior falhou.$\nPor favor, desinstale ${SOFT_NAME} manualmente antes de continuar."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Serbian (LANG_SERBIAN) — covers rs/sr
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_SERBIAN} "${SOFT_NAME} је већ инсталиран. $\n$\nКликните `OK` да уклоните претходну верзију или `Откажи` да откажете надоградњу."
|
||||
LangString wrongArch ${LANG_SERBIAN} "Ова дистрибуција је намењена само за 64-битна рачунала."
|
||||
LangString Elements ${LANG_SERBIAN} "Елементи"
|
||||
LangString Electric ${LANG_SERBIAN} "Електрика"
|
||||
LangString Logic ${LANG_SERBIAN} "Логика"
|
||||
LangString Hydraulic ${LANG_SERBIAN} "Хидраулика"
|
||||
LangString Pneumatic ${LANG_SERBIAN} "Пнеуматика"
|
||||
LangString Energy ${LANG_SERBIAN} "Енергија"
|
||||
LangString water ${LANG_SERBIAN} "Вода"
|
||||
LangString Refrigeration ${LANG_SERBIAN} "Хлађење"
|
||||
LangString Solar_thermal ${LANG_SERBIAN} "Соларно_топлотно"
|
||||
LangString Lang ${LANG_SERBIAN} "Језик"
|
||||
LangString Fonts ${LANG_SERBIAN} "Фонтови"
|
||||
LangString Titleblocks ${LANG_SERBIAN} "Заглавља"
|
||||
LangString Examples ${LANG_SERBIAN} "Примери"
|
||||
LangString Check ${LANG_SERBIAN} "Означите за покретање ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_SERBIAN} "Елементи службене збирке"
|
||||
LangString var2 ${LANG_SERBIAN} "Језичке датотеке"
|
||||
LangString var3 ${LANG_SERBIAN} "Примери заглавља"
|
||||
LangString var4 ${LANG_SERBIAN} "Примери шема"
|
||||
LangString var5 ${LANG_SERBIAN} "Фонтови"
|
||||
LangString uninstFailed ${LANG_SERBIAN} "Деинсталација претходне верзије није успела.$\nМолимо деинсталирајте ${SOFT_NAME} ручно пре наставка."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Slovak (LANG_SLOVAK)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_SLOVAK} "${SOFT_NAME} je už nainštalovaný. $\n$\nKliknutím na `OK` odstráňte predchádzajúcu verziu alebo kliknite na `Zrušiť` pre zrušenie tohto upgradu."
|
||||
LangString wrongArch ${LANG_SLOVAK} "Táto distribúcia je určená len pre 64-bitové počítače."
|
||||
LangString Elements ${LANG_SLOVAK} "Prvky"
|
||||
LangString Electric ${LANG_SLOVAK} "Elektrika"
|
||||
LangString Logic ${LANG_SLOVAK} "Logika"
|
||||
LangString Hydraulic ${LANG_SLOVAK} "Hydraulika"
|
||||
LangString Pneumatic ${LANG_SLOVAK} "Pneumatika"
|
||||
LangString Energy ${LANG_SLOVAK} "Energia"
|
||||
LangString water ${LANG_SLOVAK} "Voda"
|
||||
LangString Refrigeration ${LANG_SLOVAK} "Chladenie"
|
||||
LangString Solar_thermal ${LANG_SLOVAK} "Solarne_teplo"
|
||||
LangString Lang ${LANG_SLOVAK} "Jazyk"
|
||||
LangString Fonts ${LANG_SLOVAK} "Písma"
|
||||
LangString Titleblocks ${LANG_SLOVAK} "Popisové polia"
|
||||
LangString Examples ${LANG_SLOVAK} "Príklady"
|
||||
LangString Check ${LANG_SLOVAK} "Začiarknite pre spustenie ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_SLOVAK} "Prvky oficiálnej zbierky"
|
||||
LangString var2 ${LANG_SLOVAK} "Jazykové súbory"
|
||||
LangString var3 ${LANG_SLOVAK} "Príklady popisových polí"
|
||||
LangString var4 ${LANG_SLOVAK} "Príklady schém"
|
||||
LangString var5 ${LANG_SLOVAK} "Písma"
|
||||
LangString uninstFailed ${LANG_SLOVAK} "Odinštalovanie predchádzajúcej verzie zlyhalo.$\nPred pokračovaním odinštalujte ${SOFT_NAME} ručne."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Slovenian (LANG_SLOVENIAN)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_SLOVENIAN} "${SOFT_NAME} je že nameščen. $\n$\nKliknite `OK` za odstranitev prejšnje različice ali `Prekliči` za preklic te nadgradnje."
|
||||
LangString wrongArch ${LANG_SLOVENIAN} "Ta distribucija je namenjena samo za 64-bitne računalnike."
|
||||
LangString Elements ${LANG_SLOVENIAN} "Elementi"
|
||||
LangString Electric ${LANG_SLOVENIAN} "Elektrika"
|
||||
LangString Logic ${LANG_SLOVENIAN} "Logika"
|
||||
LangString Hydraulic ${LANG_SLOVENIAN} "Hidravlika"
|
||||
LangString Pneumatic ${LANG_SLOVENIAN} "Pnevmatika"
|
||||
LangString Energy ${LANG_SLOVENIAN} "Energija"
|
||||
LangString water ${LANG_SLOVENIAN} "Voda"
|
||||
LangString Refrigeration ${LANG_SLOVENIAN} "Hlajenje"
|
||||
LangString Solar_thermal ${LANG_SLOVENIAN} "Solarno_toplotno"
|
||||
LangString Lang ${LANG_SLOVENIAN} "Jezik"
|
||||
LangString Fonts ${LANG_SLOVENIAN} "Pisave"
|
||||
LangString Titleblocks ${LANG_SLOVENIAN} "Glave risb"
|
||||
LangString Examples ${LANG_SLOVENIAN} "Primeri"
|
||||
LangString Check ${LANG_SLOVENIAN} "Označite za zagon ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_SLOVENIAN} "Elementi uradne zbirke"
|
||||
LangString var2 ${LANG_SLOVENIAN} "Jezikovne datoteke"
|
||||
LangString var3 ${LANG_SLOVENIAN} "Primeri glav risb"
|
||||
LangString var4 ${LANG_SLOVENIAN} "Primeri shem"
|
||||
LangString var5 ${LANG_SLOVENIAN} "Pisave"
|
||||
LangString uninstFailed ${LANG_SLOVENIAN} "Odstranitev prejšnje različice ni uspela.$\nPred nadaljevanjem ročno odstranite ${SOFT_NAME}."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Swedish (LANG_SWEDISH)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_SWEDISH} "${SOFT_NAME} är redan installerat. $\n$\nKlicka på `OK` för att ta bort den tidigare versionen eller `Avbryt` för att avbryta uppgraderingen."
|
||||
LangString wrongArch ${LANG_SWEDISH} "Den här distributionen är endast för 64-bitars datorer."
|
||||
LangString Elements ${LANG_SWEDISH} "Element"
|
||||
LangString Electric ${LANG_SWEDISH} "Elektrisk"
|
||||
LangString Logic ${LANG_SWEDISH} "Logik"
|
||||
LangString Hydraulic ${LANG_SWEDISH} "Hydraulik"
|
||||
LangString Pneumatic ${LANG_SWEDISH} "Pneumatik"
|
||||
LangString Energy ${LANG_SWEDISH} "Energi"
|
||||
LangString water ${LANG_SWEDISH} "Vatten"
|
||||
LangString Refrigeration ${LANG_SWEDISH} "Kylning"
|
||||
LangString Solar_thermal ${LANG_SWEDISH} "Solvarme"
|
||||
LangString Lang ${LANG_SWEDISH} "Språk"
|
||||
LangString Fonts ${LANG_SWEDISH} "Teckensnitt"
|
||||
LangString Titleblocks ${LANG_SWEDISH} "Ritningshuvuden"
|
||||
LangString Examples ${LANG_SWEDISH} "Exempel"
|
||||
LangString Check ${LANG_SWEDISH} "Markera för att starta ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_SWEDISH} "Element från den officiella samlingen"
|
||||
LangString var2 ${LANG_SWEDISH} "Språkfiler"
|
||||
LangString var3 ${LANG_SWEDISH} "Exempel på ritningshuvuden"
|
||||
LangString var4 ${LANG_SWEDISH} "Exempel på scheman"
|
||||
LangString var5 ${LANG_SWEDISH} "Teckensnitt"
|
||||
LangString uninstFailed ${LANG_SWEDISH} "Avinstallationen av den föregående versionen misslyckades.$\nAvinstallera ${SOFT_NAME} manuellt innan du fortsätter."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Turkish (LANG_TURKISH)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_TURKISH} "${SOFT_NAME} zaten yüklü. $\n$\nÖnceki sürümü kaldırmak için `Tamam`'a, bu yükseltmeyi iptal etmek için `İptal`'e tıklayın."
|
||||
LangString wrongArch ${LANG_TURKISH} "Bu dağıtım yalnızca 64 bit bilgisayarlar içindir."
|
||||
LangString Elements ${LANG_TURKISH} "Elemanlar"
|
||||
LangString Electric ${LANG_TURKISH} "Elektrik"
|
||||
LangString Logic ${LANG_TURKISH} "Mantık"
|
||||
LangString Hydraulic ${LANG_TURKISH} "Hidrolik"
|
||||
LangString Pneumatic ${LANG_TURKISH} "Pnömatik"
|
||||
LangString Energy ${LANG_TURKISH} "Enerji"
|
||||
LangString water ${LANG_TURKISH} "Su"
|
||||
LangString Refrigeration ${LANG_TURKISH} "Soğutma"
|
||||
LangString Solar_thermal ${LANG_TURKISH} "Gunes_Is"
|
||||
LangString Lang ${LANG_TURKISH} "Dil"
|
||||
LangString Fonts ${LANG_TURKISH} "Yazı Tipleri"
|
||||
LangString Titleblocks ${LANG_TURKISH} "Başlık Bloğu"
|
||||
LangString Examples ${LANG_TURKISH} "Örnekler"
|
||||
LangString Check ${LANG_TURKISH} "${SOFT_NAME}'i başlatmak için işaretleyin"
|
||||
LangString var1 ${LANG_TURKISH} "Resmi koleksiyonun elemanları"
|
||||
LangString var2 ${LANG_TURKISH} "Dil dosyaları"
|
||||
LangString var3 ${LANG_TURKISH} "Başlık bloğu örnekleri"
|
||||
LangString var4 ${LANG_TURKISH} "Şema örnekleri"
|
||||
LangString var5 ${LANG_TURKISH} "Yazı Tipleri"
|
||||
LangString uninstFailed ${LANG_TURKISH} "Önceki sürümün kaldırılması başarısız oldu.$\nDevam etmeden önce lütfen ${SOFT_NAME}'i manuel olarak kaldırın."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Ukrainian (LANG_UKRAINIAN)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_UKRAINIAN} "${SOFT_NAME} вже встановлено. $\n$\nНатисніть `OK` для видалення попередньої версії або `Скасувати` для скасування оновлення."
|
||||
LangString wrongArch ${LANG_UKRAINIAN} "Цей дистрибутив призначений лише для 64-розрядних комп'ютерів."
|
||||
LangString Elements ${LANG_UKRAINIAN} "Елементи"
|
||||
LangString Electric ${LANG_UKRAINIAN} "Електрика"
|
||||
LangString Logic ${LANG_UKRAINIAN} "Логіка"
|
||||
LangString Hydraulic ${LANG_UKRAINIAN} "Гідравліка"
|
||||
LangString Pneumatic ${LANG_UKRAINIAN} "Пневматика"
|
||||
LangString Energy ${LANG_UKRAINIAN} "Енергетика"
|
||||
LangString water ${LANG_UKRAINIAN} "Водопостачання"
|
||||
LangString Refrigeration ${LANG_UKRAINIAN} "Холодильна техніка"
|
||||
LangString Solar_thermal ${LANG_UKRAINIAN} "Сонячно-теплова"
|
||||
LangString Lang ${LANG_UKRAINIAN} "Мова"
|
||||
LangString Fonts ${LANG_UKRAINIAN} "Шрифти"
|
||||
LangString Titleblocks ${LANG_UKRAINIAN} "Штампи"
|
||||
LangString Examples ${LANG_UKRAINIAN} "Приклади"
|
||||
LangString Check ${LANG_UKRAINIAN} "Позначте для запуску ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_UKRAINIAN} "Елементи офіційної колекції"
|
||||
LangString var2 ${LANG_UKRAINIAN} "Мовні файли"
|
||||
LangString var3 ${LANG_UKRAINIAN} "Приклади штампів"
|
||||
LangString var4 ${LANG_UKRAINIAN} "Приклади схем"
|
||||
LangString var5 ${LANG_UKRAINIAN} "Шрифти"
|
||||
LangString uninstFailed ${LANG_UKRAINIAN} "Видалення попередньої версії завершилося помилкою.$\nБудь ласка, видаліть ${SOFT_NAME} вручну перед продовженням."
|
||||
|
||||
|
||||
; ----------------------------------------------------------------
|
||||
; Chinese Simplified (LANG_SIMPCHINESE)
|
||||
; ----------------------------------------------------------------
|
||||
LangString installed ${LANG_SIMPCHINESE} "${SOFT_NAME} 已经安装。$\n$\n单击 $\"确定$\" 删除旧版本,或单击 $\"取消$\" 取消本次升级。"
|
||||
LangString wrongArch ${LANG_SIMPCHINESE} "本安装包仅适用于 64 位计算机。"
|
||||
LangString Elements ${LANG_SIMPCHINESE} "元件"
|
||||
LangString Electric ${LANG_SIMPCHINESE} "电气"
|
||||
LangString Logic ${LANG_SIMPCHINESE} "逻辑"
|
||||
LangString Hydraulic ${LANG_SIMPCHINESE} "液压"
|
||||
LangString Pneumatic ${LANG_SIMPCHINESE} "气动"
|
||||
LangString Energy ${LANG_SIMPCHINESE} "能源"
|
||||
LangString water ${LANG_SIMPCHINESE} "水"
|
||||
LangString Refrigeration ${LANG_SIMPCHINESE} "制冷"
|
||||
LangString Solar_thermal ${LANG_SIMPCHINESE} "太阳能热"
|
||||
LangString Lang ${LANG_SIMPCHINESE} "语言"
|
||||
LangString Fonts ${LANG_SIMPCHINESE} "字体"
|
||||
LangString Titleblocks ${LANG_SIMPCHINESE} "标题栏"
|
||||
LangString Examples ${LANG_SIMPCHINESE} "示例"
|
||||
LangString Check ${LANG_SIMPCHINESE} "勾选以启动 ${SOFT_NAME}"
|
||||
LangString var1 ${LANG_SIMPCHINESE} "官方库元件"
|
||||
LangString var2 ${LANG_SIMPCHINESE} "语言文件"
|
||||
LangString var3 ${LANG_SIMPCHINESE} "标题栏示例"
|
||||
LangString var4 ${LANG_SIMPCHINESE} "图纸示例"
|
||||
LangString var5 ${LANG_SIMPCHINESE} "字体"
|
||||
LangString uninstFailed ${LANG_SIMPCHINESE} "卸载旧版本失败。$\n请在继续之前手动卸载 ${SOFT_NAME}。"
|
||||
11
build-aux/windows/nsis_base/Lancer QET.bat
Normal file
@@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
rem Se rend dans le dossier qui convient
|
||||
set current_dir=%~dp0
|
||||
cd /d %current_dir%
|
||||
|
||||
rem lance QElectroTech
|
||||
rem Sans option --config-dir, la configuration de QElectroTech ainsi que la
|
||||
rem collection d'elements perso seront dans "%APPDATA%\qet"
|
||||
set command=bin\qelectrotech.exe -platform windows:fontengine=freetype --common-elements-dir=elements/ --common-tbt-dir=titleblocks/ --lang-dir=lang/ %*
|
||||
@start %command%
|
||||
4
build-aux/windows/nsis_base/README.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
Place all files of "*win32-readytouse.zip" in the "files/" directory
|
||||
and run "QET.nsi"
|
||||
|
||||
enjoy
|
||||
300
build-aux/windows/nsis_base/files/CREDIT
Normal file
@@ -0,0 +1,300 @@
|
||||
[ca]
|
||||
Gràcies a Qt Software per la biblioteca Qt ( http://www.qtsoftware.com/ ), amb llicència GNU/GPL.
|
||||
Gràcies al projecte KDE ( http://www.kde.org/ ).
|
||||
Gràcies a Loic per les seves explicacions d'ordre matemàtic.
|
||||
Gràcies a Remi Collet pels paquets Fedora.
|
||||
Gràcies a Laurent Trinques pels paquets Debian.
|
||||
Gràcies a `trem' pels paquets Mandriva.
|
||||
Gràcies a TuxFamily ( http://tuxfamily.org/ ) per a l'allotjament del projecte.
|
||||
Gràcies a `Nishiki' pels seus elements i el seu suport suport.
|
||||
Gràcies a qtcentre.org per la seva classe SingleApplication.
|
||||
Gràcies a Alfredo Carreto per les seves traduccions i correccions al castellà ( http://electronicosmx.net )
|
||||
Gràcies a 'Dr.Slump' et Sivio pour leurs traductions a l'italià
|
||||
Gràcies a Jose Carlos Martins per les seves traduccions al portuguès
|
||||
Gràcies a Pavel Fric per les seves traduccions al txec
|
||||
Gràcies a Pawel Smiech per les seves traduccions al polonès
|
||||
Gràcies a Yuriy Litkevich per les seves traduccions al rus
|
||||
Gràcies a Youssef Ouamalkran i Antoni Mirabete per les seves traduccions al català
|
||||
Gràcies a Gabi Mandoc per les seves traduccions al romanès
|
||||
Gràcies a Markus Budde i Jonas Stein et Noah Braden per les seves traduccions a l'alemany
|
||||
Gràcies a Mohamed Souabni per les seves traduccions a l'àrab
|
||||
Gràcies a Uroš Platiše per les seves traduccions a l'eslovè
|
||||
Gràcies a Antun Marakovic per les seves traduccions al croat
|
||||
Gràcies a Nikos Papadopoylos && Yannis Gyftomitros per les seves traduccions al grec
|
||||
Gràcies a Markos Chandras pels paquets Gentoo
|
||||
Gràcies a David pels paquets Slackware
|
||||
Gràcies a Chipsterjulien pels paquets Archlinux AUR
|
||||
Gràcies a Elbert de NL pels paquets OS/2
|
||||
Gràcies a Zloidemon pels paquets (port GCC)
|
||||
Gràcies a Mrbit per ebuild els paquets Gentoo
|
||||
|
||||
[en]
|
||||
Thanks to Qt Software for their Qt library ( http://www.qtsoftware.com/ ), licensed under GNU/GPL.
|
||||
Thanks to the KDE project ( http://www.kde.org/ ).
|
||||
Thanks to Loic for his mathematics-related explanations.
|
||||
Thanks to Remi Collet for the Fedora packaging.
|
||||
Thanks to Laurent Trinques for the Debian packaging.
|
||||
Thanks to `trem' for the Mandriva packaging.
|
||||
Thanks to TuxFamily ( http://tuxfamily.org/ ) for hosting the project.
|
||||
Thanks to `Nishiki' for his elements and his support.
|
||||
Thanks to qtcentre.org for their SingleApplication class.
|
||||
Thanks to Alfredo Carreto for his Spanish translations and fixing Spanish translations ( http://electronicosmx.net )
|
||||
Thanks to 'Dr.Slump' and Sivio for their translations in Italian
|
||||
Thanks to Jose Carlos Martins for his translations in Portuguese
|
||||
Thanks to Pavel Fric for his translations in Czech
|
||||
Thanks to Pawel Smiech for His Polish translations
|
||||
Thanks to Yuriy Litkevich for his translations into Russian
|
||||
Thanks to Youssef Ouamalkran for his translations Catatan
|
||||
Thanks to Gabi Mandoc for his translations in Romanian
|
||||
Thanks to Markus Budde and Jonas Stein and Noah Braden for his translations into German
|
||||
Thanks to Mohamed Souabni for his translations into Arabic
|
||||
Thanks to Uroš Platiše for his translations into Slovenian
|
||||
Thanks to Antun Marakovic for his translations Croatian
|
||||
Thanks to Nikos Papadopoylos && Yannis Gyftomitros their Greek translations
|
||||
Thanks to Markos Chandras for Gentoo packaging
|
||||
Thanks to David for packaging Slackware
|
||||
Thanks to Chipsterjulien for packaging Archlinux AUR packages
|
||||
Thanks to Elbert from the NL for packaging OS/2
|
||||
Thanks to zloidemon from for packaging FreeBsd (port GCC)
|
||||
Thanks to Mrbit for ebuild Gentoo packaging.
|
||||
|
||||
[fr]
|
||||
Merci à Qt Software pour la bibliothèque Qt ( http://www.qtsoftware.com/ ), sous licence GNU/GPL.
|
||||
Merci au projet KDE ( http://www.kde.org/ ).
|
||||
Merci à Loic pour ses explications d'ordre mathématique.
|
||||
Merci à Remi Collet pour les paquets Fedora.
|
||||
Merci à Laurent Trinques pour les paquets Debian.
|
||||
Merci à `trem' pour les paquets Mandriva.
|
||||
Merci à TuxFamily ( http://tuxfamily.org/ ) pour l'hébergement du projet.
|
||||
Merci à `Nishiki' pour ses éléments et son soutien.
|
||||
Merci à qtcentre.org pour leur classe SingleApplication.
|
||||
Merci à Alfredo Carreto pour ses traductions et corrections en espagnol ( http://electronicosmx.net )
|
||||
Merci à 'Dr.Slump' et Sivio pour leurs traductions en italien
|
||||
Merci à Jose Carlos Martins pour ses traductions en portugais
|
||||
Merci à Pavel Fric pour ses traductions en Tchèque
|
||||
Merci à Pawel Smiech pour ses traductions en polonais
|
||||
Merci à Yuriy Litkevich pour ses traductions en russe
|
||||
Merci à Youssef Ouamalkran pour ses traductions en catatan
|
||||
Merci à Gabi Mandoc pour ses traductions en Roumain
|
||||
Merci à Markus Budde et Jonas Stein et Noah Braden pour ses traductions en allemand
|
||||
Merci à Mohamed Souabni pour ses traductions en arabe
|
||||
Merci à Uroš Platiše pour ses traductions en Slovene
|
||||
Merci à Antun Marakovic pour ses traductions Croate
|
||||
Merci à Nikos Papadopoylos && Yannis Gyftomitros pour leurs traductions en grec
|
||||
Merci à Markos Chandras pour les paquets Gentoo
|
||||
Merci à David les paquets Slackware
|
||||
Merci à Chipsterjulien les paquets Archlinux AUR packages
|
||||
Merci à Elbert from the NL les paquets OS/2
|
||||
Merci à Zloidemon from for les paquets (port GCC)
|
||||
Merci à Mrbit for ebuild les paquets Gentoo
|
||||
|
||||
[ru]
|
||||
Спасибо Qt Software за их библиотеку Qt ( http://www.qtsoftware.com/ ), лицензированную на условиях GNU/GPL.
|
||||
Спасибо проекту KDE ( http://www.kde.org/ ).
|
||||
Спасибо Loic за объяснения связанные с математикой.
|
||||
Спасибо Remi Collet за пакет для Fedora.
|
||||
Спасибо Laurent Trinques за пакет для Debian.
|
||||
Спасибо `trem' за пакет для Mandriva.
|
||||
Спасибо TuxFamily ( http://tuxfamily.org/ ) за хостинг для проекта.
|
||||
Спасибо `Nishiki' за элементы и поддержку.
|
||||
Спасибо qtcentre.org за их класс SingleApplication.
|
||||
Спасибо Alfredo Carreto за исправления и перевод на испанский ( http://electronicosmx.net )
|
||||
Спасибо 'Dr.Slump' за исправления и перевод
|
||||
|
||||
[pt]
|
||||
Agradecimentos a Qt Software pela sua biblioteca Qt ( http://www.qtsoftware.com/ ), licenciada de acordo com a GNU/GPL.
|
||||
Agradecimentos ao projecto KDE ( http://www.kde.org/ ).
|
||||
Agradecimentos a Loic pelas suas explicações relacionadas com problemas matemáticos.
|
||||
Agradecimentos a Remi Collet pela criação dos pacotes para Fedora.
|
||||
Agradecimentos a Laurent Trinques pela criação dos pacotes para Debian.
|
||||
Agradecimentos a "trem" pela criação dos pacotes para Mandriva.
|
||||
Agradecimentos a TuxFamily ( http://tuxfamily.org/ ) por albergarem este projecto.
|
||||
Agradecimentos a "Nishiki" pela criação de elementos e o seu suporte.
|
||||
Agradecimentos a qtcentre.org pela classe SingleApplication.
|
||||
Agradecimentos a Alfredo Carreto pela tradução para Espanhol e pela correcção de traduções em Espanhol ( http://electronicosmx.net ).
|
||||
Agradecimentos a 'Dr.Slump'pela tradução para italiano
|
||||
|
||||
[es]
|
||||
Agradecimientos a Qt Software por su biblioteca Qt ( http://www.qtsoftware.com/ ), licenciada bajo GNU/GPL.
|
||||
Agradecimientos al proyecto KDE ( http://www.kde.org/ ).
|
||||
Agradecimientos a Loic por sus explicaciones relacionadas con problemas matemáticos.
|
||||
Agradecimientos a Remi Collet por criación de paquetes para Fedora.
|
||||
Agradecimientos a Laurent Trinques por la creación de paquetes para Debian.
|
||||
Agradecimientos a "trem" por creación de paquetes para Mandriva.
|
||||
Agradecimientos a TuxFamily ( http://tuxfamily.org/ ) por el alojamiento de este proyecto.
|
||||
Agradecimientos a "Nishiki" por creación de elementos e de su suporte.
|
||||
Agradecimientos a qtcentre.org por classe SingleApplication.
|
||||
Agradecimientos a Alfredo Carreto por sus traducciones en español y correcciones de traducción en español ( http://electronicosmx.net)
|
||||
Agradecimientos a 'Dr.Slump' por sus traducciones en italiano
|
||||
|
||||
[cs]
|
||||
Díky Qt Software za jejich knihovnu Qt ( http://www.qtsoftware.com/ ), pod licencí GNU/GPL.
|
||||
Díky projektu KDE ( http://www.kde.org/ ).
|
||||
Díky Loicovi za jeho vysvětlení vztahující se k matematice.
|
||||
Díky Remi Colletovi za balíček pro Fedoru.
|
||||
Díky Laurentu Trinquesovi za balíček pro Debian.
|
||||
Díky `trem' za balíček pro Mandrivu.
|
||||
Díky TuxFamily ( http://tuxfamily.org/ ) za poskytování hostingu pro projekt.
|
||||
Díky `Nishiki' za jeho prvky a jeho podporu.
|
||||
Díky qtcentre.org za jejich třídu SingleApplication.
|
||||
Poděkování Alfredovi Carretovi za jeho španělský překlad a opravy španělského překladu ( http://electronicosmx.net )
|
||||
Dìky 'Dr.Slump' za jeho italianský překlad
|
||||
|
||||
[pl]
|
||||
Podziękowania dla Qt Software, za biblioteki Qt (http://www.qtsoftware.com/) na licencji GNU / GPL.
|
||||
Podziękowania dla projektu KDE (http://www.kde.org/).
|
||||
Podziękowania dla Loic, za pomoc w rozwiązaniu problemów matematycznych.
|
||||
Podziękowania dla Remi Collet, za pakiety dla Fedory.
|
||||
Podziękowania dla Laurent Trinquesovi, za pakiety dla Debiana.
|
||||
Podziękowania dla "trem", za pakiety dla Mandrivy.
|
||||
Podziękowania dla TuxFamily (http://tuxfamily.org/), za organizację projektu.
|
||||
Podziękowanie dla "Nishiki", zajego elementy i poparcie.
|
||||
Podziękowania dla qtcentre.org, za klasę SingleApplication.
|
||||
Podziękowania dla Alfredo Carreto, za jego tłumaczenie na język hiszpański i korektę ( http://electronicosmx.net)
|
||||
|
||||
[it]
|
||||
Grazie a Qt Software per le loro librerie Qt (http://www.qtsoftware.com/), licenzate sotto GNU/GPL.
|
||||
Grazie al progetto KDE (http://www.kde.org/).
|
||||
Grazie a Loic per le sue spiegazioni matematiche.
|
||||
Grazie a Remi Collet per i pacchetti per Fedora.
|
||||
Grazie a Laurent Trinques per i pacchetti per Debian.
|
||||
Grazie a `trem' per i pacchetti per Mandriva.
|
||||
Grazie a TuxFamily (http://tuxfamily.org/) per l'ospitalità al progetto.
|
||||
Grazie a `Nishiki' per i suoi elementi ed il supporto.
|
||||
Grazie a qtcentre.org per la loro classe SingleApplication.
|
||||
Grazie a Alfredo Carreto per le traduzioni e le correzioni in spagnolo (http://electronicosmx.net).
|
||||
Grazie a 'Dr.Slump' e 'Silvio' per la traduzione in italiano.
|
||||
Grazie a Jose Carlos Martins per la traduzione in portoghese.
|
||||
Grazie a Pavel Fric per la traduzione in ceco.
|
||||
Grazie a Pawel Smiech per la traduzione in polacco.
|
||||
Grazie a Yuriy Litkevich per la traduzione in russo .
|
||||
Grazie a Youssef Ouamalkran per la traduzione in catalano.
|
||||
Grazie a Gabi Mandoc per la traduzione in rumeno.
|
||||
Grazie a Markus Budde e Jonas Stein per la traduzione in tedesco.
|
||||
Grazie a Mohammed Souabni per la traduzione in arabo.
|
||||
Grazie a Uroš Platiše per la traduzione in sloveno.
|
||||
Grazie a Antun Marakovic per la traduzione in croato.
|
||||
Grazie a Nikos Papadopoylos e Yannis Gyftomitros per la traduzione in greco.
|
||||
Grazie a Markos Chandras per i pacchetti per Gentoo.
|
||||
|
||||
[el]
|
||||
Ευχαριστίες στην Qt Software για την βιβλιοθήκη Qt ( http://www.qtsoftware.com/ ), αδειοδοτημένο ως GNU/GPL.
|
||||
Ευχαριστίες στο έργο KDE ( http://www.kde.org/ ).
|
||||
Ευχαριστίες στον Loic για τις εξηγήσεις σχετικές με μαθηματικά.
|
||||
Ευχαριστίες στον Remi Collet για τα πακέτα Fedora.
|
||||
Ευχαριστίες στον Laurent Trinques για τα πακέτα Debian.
|
||||
Ευχαριστίες στον `trem' για τα πακέτα Mandriva.
|
||||
Ευχαριστίες στο TuxFamily ( http://tuxfamily.org/ ) για τη φιλοξενία του έργου.
|
||||
Ευχαριστίες στον `Nishiki' για τα στοιχεία και την υποστήριξη του.
|
||||
Ευχαριστίες στο qtcentre.org για την κλάση SingleApplication.
|
||||
Ευχαριστίες στον Alfredo Carreto για τις μεταφράσεις του και για την επισκευή της Ισπανικής μετάφρασης ( http://electronicosmx.net )
|
||||
Ευχαριστίες στον 'Dr.Slump' και τον Sivio για τις μεταφράσεις τους στα Ιταλικά
|
||||
Ευχαριστίες στον Jose Carlos Martins για την μετάφραση στα Πορτογαλικά
|
||||
Ευχαριστίες στον Pavel Fric Για την μετάφραση στα Τσέχικα
|
||||
Ευχαριστίες στον Pawel Smiech για την Πολωνική μετάφραση
|
||||
Ευχαριστίες στον Yuriy Litkevich για τις μεταφράσεις του στα Ρώσικα
|
||||
Ευχαριστίες στον Youssef Ouamalkran για τις μεταφράσεις του στα Καταλανικά
|
||||
Ευχαριστίες στον Gabi Mandoc για τις μεταφράσεις του στα Ρουμανικά
|
||||
Ευχαριστίες στους Markus Budde και Jonas Stein για τις μεταφράσεις τους στα Γερμανικά
|
||||
Ευχαριστίες στον Mohamed Souabni για τις μεταφράσεις του στα Αραβικά
|
||||
Ευχαριστίες στον Uroš Platiše για τις μεταφράσεις του στα Σλοβένικα
|
||||
Ευχαριστίες στον Antun Marakovic για τις μεταφράσεις του στα Κροατικά
|
||||
Ευχαριστίες στους Νίκο Παπαδόπουλο και Γιάννη Γυφτομήτρο για τις μεταφράσεις τους στα Ελληνικά
|
||||
Ευχαριστίες στον Markos Chandras για τα πακέτα Gentoo
|
||||
Ευχαριστίες στον David για τα πακέτα Slackware
|
||||
Ευχαριστίες στον Chipsterjulien για τα πακέτα Archlinux AUR
|
||||
Ευχαριστίες στον Elbert για τα πακέτα OS/2
|
||||
Ευχαριστίες στον zloidemon για τα πακέτα FreeBsd (port GCC)
|
||||
Ευχαριστίες στον Mrbit για τα πακέτα ebuild για Gentoo.
|
||||
|
||||
[nl]
|
||||
Dank aan Qt Software voor hun Qt library ( http://www.qtsoftware.com/ ) , onder de GNU / GPL licentie .
|
||||
Dank aan het KDE-project ( http://www.kde.org/ ) .
|
||||
Dank aan Loic voor zijn wiskunde - gerelateerde verklaringen .
|
||||
Met dank aan Remi Collet voor de Fedora pakket.
|
||||
Met dank aan Laurent Trinques voor de Debian pakket.
|
||||
Dank aan ` tremolo ' voor de Mandriva pakket.
|
||||
Dank aan TuxFamily ( http://tuxfamily.org/ ) voor het hosten van het project .
|
||||
Dank aan ` Nishiki ' voor zijn elementen en zijn steun .
|
||||
Dank aan qtcentre.org voor hun SingleApplication klasse .
|
||||
Dank aan Alfredo Carreto voor zijn Spaanse vertalingen en tot vaststelling Spaanse vertalingen ( http://electronicosmx.net )
|
||||
Dank aan ' Dr.Slump ' en Sivio voor hun vertalingen in het Italiaans
|
||||
Met dank aan Jose Carlos Martins voor zijn vertalingen in het Portugees
|
||||
Met dank aan Pavel Fric voor zijn vertalingen in het Tsjechisch
|
||||
Dank aan Pawel miech voor zijn Poolse vertalingen
|
||||
Dank aan Yuriy Litkevich voor zijn vertalingen in het Russisch
|
||||
Dank aan Youssef Ouamalkran voor zijn vertalingen Catatan
|
||||
Met dank aan Gabi Mandoc voor zijn vertalingen in het Roemeens
|
||||
Dank aan Markus Budde en Jonas Stein en Noah Braden voor zijn vertalingen in het Duits
|
||||
Met dank aan Mohamed Souabni voor zijn vertalingen in het Arabisch
|
||||
Dank aan Uro ? Plati ? E voor zijn vertalingen in het Sloveens
|
||||
Dank aan Antun Marakovic voor zijn vertalingen Kroatisch
|
||||
Dank aan Nikos Papadopoylos && Yannis Gyftomitros hun Griekse vertalingen
|
||||
Dank aan Markos Chandras voor Gentoo pakket
|
||||
Met dank aan David voor het verpakken van Slackware
|
||||
Dank aan Chipsterjulien voor het verpakken van Archlinux AUR pakketten
|
||||
Dank aan Elbert uit de NL voor het pakket van OS/2
|
||||
Dank aan zloidemon voor het verpakken van FreeBSD ( poort GCC )
|
||||
Dank aan Mrbit voor ebuild Gentoo pakket.
|
||||
|
||||
[be]
|
||||
Dank aan Qt Software bibliotheek voor Qt ( http://www.qtsoftware.com/ ), onder licentie van GNU/GPL.
|
||||
Dank aan project KDE ( http://www.kde.org/ ).
|
||||
Dank aan Loic voor zijn uitleg van de mathematische orde.
|
||||
Dank aan Remi Collet voor de pakketten Fedora.
|
||||
Dank aan Laurent Trinques voor de pakkette Debian.
|
||||
Dank aan `trem' voor de pakketten Mandriva.
|
||||
Dank aan TuxFamily ( http://tuxfamily.org/ ) voor het hosten van het project.
|
||||
Dank aan `Nishiki' voor zijn elementen en ondersteuning.
|
||||
Dank aan qtcentre.org voor hun SingleApplication klasse.
|
||||
Dank aan Alfredo Carreto voor zijn vertalingen en correcties in het Spaans ( http://electronicosmx.net )
|
||||
Dank aan 'Dr.Slump' en Sivio hun vertaling in het Italiaans
|
||||
Dank aan Jose Carlos Martins voor zijn vertalingen in het Portugees
|
||||
Dank aan Pavel Fric voor zijn vertalingen in het Tsjechisch
|
||||
Dank aan Pawel Smiech voor zijn vertaling in het Pools
|
||||
Dank aan Yuriy Litkevich voor zijn vertalingen in het Russisch
|
||||
Dank aan Youssef Ouamalkran voor zijn vertalingen Catatan
|
||||
Dank aan Gabi Mandoc voor zijn vertalingen in het Roemeens
|
||||
Dank aan Markus Budde en Jonas Stein et Noah Braden voor hun vertaling in het Duitse
|
||||
Dank aan Mohamed Souabni voor zijn vertalingen in het Arabisch
|
||||
Dank aan Uroš Platiše zijn onze vertalingen Sloveense
|
||||
Dank aan Antun Marakovic voor zijn vertalingen Kroatisch
|
||||
Dank aan Nikos Papadopoylos en Yannis Gyftomitros hun vertalingen in het Grieks
|
||||
Dank aan Markos Chandras voor de pakkette Gentoo
|
||||
Dank aan David voor de pakkette Slackware
|
||||
Dank aan Chipsterjulien voor de pakkette Archlinux AUR
|
||||
Dank aan Elbert voor de pakkette OS/2
|
||||
Dank aan Zloidemon fvoor de pakkette (port GCC)
|
||||
Dank aan Mrbit van ebuild voor de pakkette Gentoo
|
||||
|
||||
[ko]
|
||||
Qt 라이브러리(Qt Software, http://www.qtsoftware.com/)를 제공해 주신 Qt Software에 감사드립니다. (GNU/GPL 라이선스)
|
||||
KDE 프로젝트 ( http://www.kde.org/ )에 감사드립니다.
|
||||
수학적인 설명을 제공해 주신 Loic에게 감사드립니다.
|
||||
Fedora 패키지를 제공해 주신 Remi Collet에게 감사드립니다.
|
||||
Debian 패키지를 제공해 주신 Laurent Trinques에게 감사드립니다.
|
||||
Mandriva 패키지를 제공해 주신 `trem`에게 감사드립니다.
|
||||
프로젝트 호스팅을 지원해 주신 TuxFamily ( http://tuxfamily.org/ )에 감사드립니다.
|
||||
요소 제공 및 지원을 해주신 `Nishiki`에게 감사드립니다.
|
||||
SingleApplication 클래스를 제공해 준 qtcentre.org에 감사드립니다.
|
||||
스페인어 번역 및 번역 수정에 기여해 주신 Alfredo Carreto ( http://electronicosmx.net )에게 감사드립니다.
|
||||
이탈리아어 번역에 기여해 주신 'Dr.Slump'와 Silvio에게 감사드립니다.
|
||||
포르투갈어 번역에 기여해 주신 Jose Carlos Martins에게 감사드립니다.
|
||||
체코어 번역에 기여해 주신 Pavel Fric에게 감사드립니다.
|
||||
폴란드어 번역에 기여해 주신 Pawel Smiech에게 감사드립니다.
|
||||
러시아어 번역에 기여해 주신 Yuriy Litkevich에게 감사드립니다.
|
||||
카탈로니아어 번역에 기여해 주신 Youssef Ouamalkran에게 감사드립니다.
|
||||
루마니아어 번역에 기여해 주신 Gabi Mandoc에게 감사드립니다.
|
||||
독일어 번역에 기여해 주신 Markus Budde, Jonas Stein, Noah Braden에게 감사드립니다.
|
||||
아랍어 번역에 기여해 주신 Mohamed Souabni에게 감사드립니다.
|
||||
슬로베니아어 번역에 기여해 주신 Uroš Platiše에게 감사드립니다.
|
||||
크로아티아어 번역에 기여해 주신 Antun Marakovic에게 감사드립니다.
|
||||
그리스어 번역에 기여해 주신 Nikos Papadopoylos와 Yannis Gyftomitros에게 감사드립니다.
|
||||
한국어 번역에 기여해 주신 정광호 님께 감사드립니다.
|
||||
Gentoo 패키지를 제공해 주신 Markos Chandras에게 감사드립니다.
|
||||
Slackware 패키지를 제공해 주신 David에게 감사드립니다.
|
||||
Arch Linux AUR 패키지를 제공해 주신 Chipsterjulien에게 감사드립니다.
|
||||
OS/2 패키지를 제공해 주신 Elbert에게 감사드립니다.
|
||||
FreeBSD(GCC 포트) 패키지를 제공해 주신 zloidemon에게 감사드립니다.
|
||||
Gentoo ebuild 패키지를 제공해 주신 Mrbit에게 감사드립니다.
|
||||
|
||||
249
build-aux/windows/nsis_base/files/ChangeLog
Normal file
@@ -0,0 +1,249 @@
|
||||
====== ChangeLog from 0.4 to 0.5 ======
|
||||
In the official collection, there are now 2625 elements, and 418 catégoris for a total of 3043 files.
|
||||
|
||||
* Port to Qt 5 framework
|
||||
* New QSettings native format for config files.
|
||||
* In the diagram editor, the grid is not displayed by default outside the diagram, the minimum zoom is blocked. A button allows you to un-validate this operation.
|
||||
* It is now possible to put the tittle block on the right vertical mode.
|
||||
* The default tittle block can be defined for the next folios of the project.
|
||||
* The summary now takes the font set in the QElectroTech.conf
|
||||
* The floating dock is now operational, variables, actions are taken into account on the fly.
|
||||
* A transformation tool transforms quickly and finely each primitive by handles.
|
||||
* Add UUID tag for element XML.
|
||||
* The database enables faster loading a large number of managing symbols in tables changes pixmaps collections, it no longer compares the modification date of the files but their use UUID attributes to update the cache .
|
||||
* In terms of basic shapes, the transform tool works directly on vectors, it replaces the reduction tool / enlargement that has just been deleted as unnecessary.
|
||||
* Improve Undo command by QPropertyUndoCommand class.
|
||||
|
||||
|
||||
|
||||
====== ChangeLog from 0.3 to 0.4 ======
|
||||
In the official collection, there are now 2298 elements, and 376 catégoris for a total of 2674 files.
|
||||
|
||||
* We have removed the flag '-fno-ipa-sra "This settled the compilation problems on Mac OS X and FreeBSD clang.
|
||||
* The official collection has been redesigned, through the work of Nuri a new structure is in place.
|
||||
* A menu has been added, allowing you to change the application language.
|
||||
* we added a summary creation tool.
|
||||
* Added button "export the nomenclature" transforms data from diagrams to CSV file for spreadsheet.
|
||||
Arun wrote a detailed manual in English.
|
||||
* New tools have been added, they can create mechanical connections and draw cabinets, desks, junction boxes, or areas on the schematic (line tool, rectangle, ellipse, polygon type: respect for style dashes).
|
||||
* An aid in positioning cross, drawing, was added.
|
||||
* The locked state images and basic forms (basic shapes) is now stored in the project.
|
||||
* The "control" during the movement of an element, text field disables snapping to the grid, for free positioning.
|
||||
It is now possible to choose the background folios in white or gray.
|
||||
* Add supports trackpad gestures (multitouch).
|
||||
The dates of the cartridges are now using the short system date and date format according to the language detected setting in the OS.
|
||||
We take advantage of the transition to standard C ++ 11, and a big cleanup in the code was done.
|
||||
* The undo action or redo the undo stack are now animated graphically.
|
||||
When the action save, save as, the status bar displays the name and path of the backup job.
|
||||
Qet is now able to come to load a style sheet (stylesheet) directly from the conf directory.
|
||||
* A DXF export has been added, the entire project folios can be exported in this format.
|
||||
* Added reports folio, Cross references.
|
||||
* Added a variable font size for text of conductors.
|
||||
* Added new properties to all conductors at the same potential, even through referrals.
|
||||
* When several conductors have the same value potential equalization, it is not useful to display on all conductors.
|
||||
* Added button to activates the automatic connection of the conductors of the element when moving it.
|
||||
* Numbering rules are now available for the entire project.
|
||||
Qet detects the Windows version and applies the appropriate graphic style, depending on the version of Windows.
|
||||
|
||||
|
||||
====== ChangeLog from 0.3 rc to 0.3 ======
|
||||
First, the collection of symbols has made a big step forward, with about 1560 new elements.
|
||||
There are now symbols for pneumatics, hydraulics, process, solar, cold, etc. Considerable effort has been done to organize the collection in a better way.
|
||||
We hope that the new organisation is clearer for all. We would like to thank all the contributors who send us symbols.
|
||||
|
||||
=====-Element Editor: =====
|
||||
Considerable work has be done to replace the manual defining zone of the symbol, aka hotspot.And fix bugs, It is now automatic. You do not have to care about it anymore.
|
||||
Primary colors have been added for the drawing shapes.
|
||||
A contextual menu (right click) has been added. So, you can now work more quickly with symbols. It is also more user-friendly.
|
||||
|
||||
====== ChangeLog from v0.3 rc ======
|
||||
|
||||
=====-Element Editor: =====
|
||||
* Replacing checkboxes with lists of colors.
|
||||
* Removed the manual hotspot, it is now automatic and you do not have to worry.
|
||||
Officially Collection: a large classification work on the structure was realized. It should be clear to everyone.
|
||||
The collection is enriched with 1711 items in 286 categories (ie 1997 files)
|
||||
|
||||
=====-Schema Editor:=====
|
||||
* Added import image, image rotation, image resizing and saving the file in the project.
|
||||
(Double click on the image called a widget and cursor that reduce or enlarge the selected image.)
|
||||
NB: Following the "edit image" entry will also be added in the right click menu.
|
||||
* F5 keyboard shortcut can recharge symbol collections.
|
||||
Some bugs have been resolved, and the translation status continues to grow.
|
||||
|
||||
|
||||
======ChangeLog from v0.3 beta ======
|
||||
Two more items for the changelog:
|
||||
* In the official collection, there are now 1672 elements and 256 categoris for a total of 1928 files. In version 0.3 alpha, there were 1465 elements and 233 categories, while version 0.22 had153 elements and 51 categories.
|
||||
|
||||
*Progress in the translation (see http://qelectrotech.org/wiki/doc/translation/stats for current state)
|
||||
* Functions (edit element and find in panel) have been moved to the context
|
||||
Here is the changelog, for version 0.3 beta:
|
||||
* Functions (edit element and find in panel) have been moved to the context menu, that can be accessed with right click. This is more user friendly.
|
||||
* Refresh of categories when an element is moved.
|
||||
* DateNow button added in the "Diagram property" dialog.
|
||||
* Dotted lines can now been added between conductors.
|
||||
* Rich text can be added to the diagram text fields.
|
||||
[screenshot]
|
||||
* HTML WYSIWYG editor for rich text: bold, italic, underlined, font size from 6 to 72 pixels, font colour, etc.
|
||||
* You can change between the two modes(Selection mode <-> View mode) with the scroll button.
|
||||
* Symbol editor: focus on the new value for language, languages sorted in alphabetical order.
|
||||
* Added a widget that reflects the loading of a big project.
|
||||
* Automated numbering of conductors according to your rules. See note from Joshua http://qelectrotech.org/wiki/doc/autonum
|
||||
* Added a dialog to automatically rotate the text if the associated conductor is vertical or horizontal. Parameters are saved in qelectrotech.conf
|
||||
* Added basic colours on the tools for lines and for the filling of the primitives, and also for the style line and point in the element editor.
|
||||
* Added several protection to prevent from saving an element if one of its primitive is beyond the hotspot.
|
||||
|
||||
|
||||
====== ChangeLog from 0.22 to 0.3a ======
|
||||
|
||||
===== Application =====
|
||||
|
||||
Elements collection: QElectroTech now provides 1465 elements within 233 categories (0.22 provided 153 elements within 51 categories). Most elements are related to electricity though some relate to chillers, solar, hydraulic and pneumatic engineering.
|
||||
A new kind of collections appeared to store title block templates; as for elements, there is a distinction between common (system-wide) templates and custom (user-wide) templates.
|
||||
Translations:
|
||||
English, Spanish, French, Portuguese and Czech translations have been maintained.
|
||||
Russian translations have been removed because they are not maintained anymore.
|
||||
Polish, German, Italian, Arabic and Croatian translations have been added.
|
||||
Following translation to Arabic, some work was done to improve Right-To-Left languages support.
|
||||
Elements names are fully translated to English, French, Czech and Polish.
|
||||
Main windows: added a “What's this?” action.
|
||||
QElectroTech now handles *.titleblock files.
|
||||
|
||||
===== Diagram editor =====
|
||||
|
||||
It is now possible to move and rotate all texts on a diagram : element texts, conductor texts and independent texts.
|
||||
When moving a text related to an electrical element, this element is highlighted.
|
||||
Texts related to a conductor cannot be moved too far away from it.
|
||||
It is now possible to create diagrams with more than 100 rows/columns.
|
||||
Elements panel:
|
||||
During a drag and drop operation, the hovered item is now expanded after a short time not moving the mouse.
|
||||
Items are now expanded/collapsed by a double click.
|
||||
Common, custom and embedded collections of title block templates are displayed within the elements panel.
|
||||
Elements previews and names are now cached into a SQLite database stored in the user configuration directory, thus speeding up the elements panel (re)loading
|
||||
The elements panel now displays the folio index before each diagram title.
|
||||
UI consistency: renamed “Import element” to “Open an element file”, separated this action from those related to the current selection, and ensured elements-related actions are disabled when selecting a project/diagram/title block template.
|
||||
Freshly integrated elements are now highlighted in the elements panel – this behaviour can be disabled though.
|
||||
When clearing the search field, the panel state is restored to its previous state.
|
||||
Title blocks are now rendered using templates:
|
||||
For each diagram, users can choose the template to be used in the diagram properties.
|
||||
They may also drag and drop it from the elements panel to the diagram.
|
||||
Title block templates are always integrated within the parent project.
|
||||
Fixed a bug in the print preview dialog.
|
||||
Added a F2 shortcut for the widget “Edit the color of the given conductor”.
|
||||
As elements, diagrams now have a “version” attribute for compatibility purposes.
|
||||
Better handling of file opening for documents saved with newer versions of QElectroTech.
|
||||
Diagram loading: removed an optimization that could lead to conductors not being loaded when several terminals share the same coordinates.
|
||||
Users may now enter visualisation mode by pressing Ctrl and Shift.
|
||||
Printing: when printing diagrams with no title block, use the space left by the title block.
|
||||
Added a few status and “What's this?” tips.
|
||||
Got rid of the green icon used for projects, changed a few other icons.
|
||||
|
||||
===== Element editor =====
|
||||
|
||||
Both static and dynamic texts can now be rotated
|
||||
Added “dotted” line style
|
||||
Added white color for texts
|
||||
Newly added parts are placed above existing ones.
|
||||
|
||||
===== Title block template editor =====
|
||||
|
||||
A third kind of editor was implemented so users can create their own title block templates:
|
||||
|
||||
It allows users to customize the layout and content of cells that constitute the title block.
|
||||
Cells can be merged and splitted.
|
||||
Their width can be fixed, relative to the total width or relative to the remaining widths.
|
||||
Their height is a simple fixed length.
|
||||
They contain either a logo (be it in SVG or a usual bitmap format) or some text.
|
||||
The text value is optionally preceded by a label.
|
||||
As other texts within QElectroTech, labels and texts can be translated to other languages.
|
||||
Texts and labels may contain variables (e.g. %company-name); these variables are replaced by real world values once the template is applied to a diagram.
|
||||
Those real-world values can be set among the diagram properties.
|
||||
|
||||
|
||||
====== Changelog 0.11 -> 0.2 ======
|
||||
À partir de la version 0.2, QElectroTech est disponible en français, anglais, mais aussi :
|
||||
* en espagnol, grâce aux traductions de Youssef ;
|
||||
* en russe, grâce aux traductions de Yuriy ;
|
||||
* en portugais, grâce aux traductions de José.
|
||||
L'application utilise désormais le thème d'icônes Oxygen, réalisé par Nuno Pinheiro pour le projet KDE.
|
||||
|
||||
===== Notion de fichier projet =====
|
||||
Un fichier .qet peut désormais contenir zéro, un ou plusieurs schémas électriques. Les éléments composant ces schémas sont embarqués dans le fichier projet au moment où ils sont posés sur un schéma. Le panel d'éléments affiche donc désormais :
|
||||
* les projets ouverts, avec, sous chaque projet :
|
||||
* les schémas de ce projet,
|
||||
* la collection embarquée du projet (catégories et éléments utilisés dans les schémas)
|
||||
* la collection commune fournie par QET,
|
||||
* et la collection personnelle de l'utilisateur.
|
||||
|
||||
===== Éditeur de schémas =====
|
||||
* Il est désormais possible de déplacer et copier les catégories et éléments par simple glisser-déposer (drag'n drop) dans le panel d'éléments.
|
||||
* La collection embarquée est manipulable au même titre que la collection utilisateur. Les éléments inutilisés dans le projet apparaissent sur fond rouge et un dialogue permet de les purger rapidement.
|
||||
* Chaque projet embarque également (au niveau de ses propriétés) les paramétrages par défaut pour les nouveaux schémas, cartouches et conducteurs.
|
||||
* Il est possible de changer l'ordre des schémas dans le projet en déplaçant les onglets qui les représente. Dans le champ "Folio" des cartouches, on peut se référer à la position du schéma courant ou au nombre total de schémas dans le projet en écrivant respectivement %id et %total.
|
||||
* Lors du chargement d'un fichier .qet, si des éléments ne sont pas trouvés, ils sont remplacés par un élément "fantôme", ce qui évite de perdre certaines informations lors de l'enregistrement du fichier.
|
||||
* Le rendu avec un zoom réduit a été amélioré.
|
||||
* Enfin, le logiciel gère l'ouverture en lecture seule d'un fichier projet.
|
||||
|
||||
==== Impression et export ====
|
||||
|
||||
À partir de la version 0.2, QElectroTech :
|
||||
* propose d'utiliser une imprimante réelle ou bien de générer un document PDF ou PostScript, et ce sous Windows comme sous X11.
|
||||
* génère un aperçu avant l'impression d'un projet. Cet aperçu permet de choisir les options d'impression mais également les schémas à imprimer ou non.
|
||||
|
||||
À noter toutefois une limitation pour les impressions PDF/PS sous Windows : le dialogue de mise en page, permettant de spécifier le format du papier ainsi que ses marges, n'est pas disponible.
|
||||
|
||||
Le dialogue "Exporter" (pour générer un fichier image d'un schéma) a également été refait dans l'optique d'un export simultané de tous les schémas du projet.
|
||||
|
||||
===== Éditeur d'éléments =====
|
||||
|
||||
* Lorsque l'on dessine une ligne dans l'éditeur d'éléments, il est possible de choisir un embout différent pour chaque extrémité, comme par exemple une flèche, un cercle, un carré ou, tout simplement, un bout de ligne normal.
|
||||
* La forme "Rectangle" a été ajoutée.
|
||||
* On peut enregistrer un élément en désignant un fichier (= comportement en 0.11) ou bien en choisissant un élément cible dans une liste reprenant l'arborescence du panel d'éléments.
|
||||
* Si l'on maintient la touche Shift lorsque l'on ajoute une partie (droite, cercle, texte, ...), l'outil en cours est conservé après le dessin. Sinon l'éditeur repasse sur l'outil de sélection.
|
||||
* La grille a été améliorée : sa densité varie en fonction du zoom ; les points correspondant à ceux de la grille de l'éditeur de schémas sont mis en valeur.
|
||||
* L'accrochage à la grille (aka "snap to grid", également connu sous le nom de grille magnétique ou encore grille aimantée) a été ajouté. Le dessin s'y accroche désormais avec une précision de 1px. On peut travailler en coordonnées libres en maintenant la touche Ctrl enfoncée durant le dessin.
|
||||
* Le copier-coller a été implémenté : il est possible de coller :
|
||||
* avec le bouton du milieu de la souris
|
||||
* en choisissant une "zone de collage" sur l'élément (Ctrl+Shift+V)
|
||||
* directement (Ctrl+V) : les parties collées sont placées à côté des parties copiées ; si on recolle les parties, elles sont collées encore un cran à côté, et ce de manière incrémentale.
|
||||
* Des contrôles sont désormais effectués à l'enregistrement : présence de bornes, respect du cadre, etc.
|
||||
* Uniformisation des menus par rapport à l'éditeur de schémas
|
||||
|
||||
====== Changelog 0.1 -> 0.11 ======
|
||||
|
||||
===== Fonctionnalités et interface =====
|
||||
|
||||
* L'application est désormais capable d'ouvrir un fichier élément passe en paramètre
|
||||
* L'application se lance désormais une seule fois par utilisateur
|
||||
* Lors de l'ouverture d'un fichier en dehors de l'application alors que QET est déjà démarré celui-ci essaye de s'afficher ou d'attirer l'attention de l'utilisateur.
|
||||
* L'application vérifie que ce fichier n'est pas déjà ouvert dans tous les éditeurs de schémas / éléments.
|
||||
* Ajout de fichiers permettant d'automatiser les associations de fichiers sous Windows (.bat et .reg) et X11 (.desktop et .xml)
|
||||
* Ajout de menus "Récemment ouverts" pour accéder aux fichiers récents dans les éditeurs de schémas et éléments.
|
||||
* Ajout d'un splash screen
|
||||
* La hauteur du schéma est désormais gérée via un système de lignes, dont le nombre et la hauteur sont ajustables.
|
||||
* Il est également possible d'afficher ou non les en-têtes des lignes et/ou des colonnes.
|
||||
* Ajout d'une option --lang-dir
|
||||
* Ajout d'une description dans le dialogue des options d'impression
|
||||
* Ajout de pages de manuel Unix (`man') en anglais et en français
|
||||
|
||||
===== Corrections de bugs =====
|
||||
|
||||
* Bug #12 : QET provoquait une erreur de segmentation dès son démarrage dans un environnement sans systray
|
||||
* Bug #14 : il manquait un / dans le chemin proposé lors de l'impression vers un PDF
|
||||
* Bug #15 : Mauvais positionnement des champs de texte sur le schéma
|
||||
* Bug #16 : Mauvaise gestion des modifications du texte d'un conducteur
|
||||
* La classe DiagramView écrivait sur la sortie d'erreur sans fin de ligne
|
||||
* L'option --config-dir était mal prise en compte
|
||||
* Après fermeture d'un schema, le menu Fenêtres n'était pas correctement mis à jour
|
||||
* Les textes des éléments, des conducteurs, du cartouche ainsi que les textes indépendants utilisent désormais tous la même police.
|
||||
* Remise à niveau de l'impression suite au passage à Qt 4.4
|
||||
|
||||
===== Code et détails techniques =====
|
||||
|
||||
* Corrections pour que QET compile avec gcc-4.3
|
||||
* Les classes Conductor et Element héritent désormais de QObject (dépendance sur Qt 4.4)
|
||||
* Affinage du constructeur de la classe QETApp
|
||||
* Moins d'avertissements à la compilation (testé avec gcc 4.3)
|
||||
* Moins d'inclusions non pertinentes
|
||||
* Nettoyage du trunk : déplacement des sources dans un sous-répertoire
|
||||
344
build-aux/windows/nsis_base/files/ChangeLog.MD
Normal file
@@ -0,0 +1,344 @@
|
||||
# Changelog
|
||||
|
||||
## [Unreleased](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/HEAD)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9...HEAD)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- error in doxygen action code [\#414](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/414)
|
||||
- "NoName" is automatically inserted into empty text cells in title block [\#407](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/407)
|
||||
- Apple silicon download is not working [\#400](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/400)
|
||||
- Apple silicon download is not working [\#394](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/394)
|
||||
- Differenciating connector for proper labeling [\#390](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/390)
|
||||
- Non-perpendicular connections [\#368](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/368)
|
||||
- using the wrong Application Data folder on Windows [\#325](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/325)
|
||||
- Unclear which PPA to use [\#321](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/321)
|
||||
- missing group functionality [\#318](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/318)
|
||||
- segfault due to calling method of uninitialized object [\#311](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/311)
|
||||
- Cannot open qelectrotech.app on macOS Sequoia 15.0 [\#307](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/307)
|
||||
- Dark Mode [\#301](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/301)
|
||||
- README 404 Not Found URL: qelectrotech.org/download.html needs to be qelectrotech.org/download.php [\#298](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/298)
|
||||
- Malware warning when trying to install dev version 0.100 [\#290](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/290)
|
||||
- The page sorting of folio [\#279](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/279)
|
||||
- Bad file name for translations [\#278](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/278)
|
||||
- Error using Portuguese Language [\#274](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/274)
|
||||
- Uninstaller [\#265](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/265)
|
||||
- New Maintainer [\#263](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/263)
|
||||
- crash on export project db \(sqlite\) [\#262](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/262)
|
||||
- https://qelectrotech.org/ is down for several days now ! [\#261](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/261)
|
||||
- right click on text crashes app [\#260](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/260)
|
||||
- broken link on github [\#259](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/259)
|
||||
- Build on Bullseye 11.5 fails [\#254](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/254)
|
||||
- Question about ARM target in future release [\#238](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/238)
|
||||
- Component library disappears completely after reset of program [\#87](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/87)
|
||||
- Can't change language in portable version [\#75](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/75)
|
||||
- Transformation Matrix for Element Editor [\#56](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/56)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Update QCH Help file [\#416](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/416) ([Int-Circuit](https://github.com/Int-Circuit))
|
||||
- no random hashes to have more constant order of XML-tags [\#415](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/415) ([plc-user](https://github.com/plc-user))
|
||||
- Delete outdated QET docs [\#412](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/412) ([Int-Circuit](https://github.com/Int-Circuit))
|
||||
- Fixing translation file list in CMake [\#404](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/404) ([arummler](https://github.com/arummler))
|
||||
- Update dependencies to fix compilation errors [\#403](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/403) ([arummler](https://github.com/arummler))
|
||||
- Minor corrections to prevent crashes [\#401](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/401) ([Evilscrack](https://github.com/Evilscrack))
|
||||
- Correct compositeText alignment on copying [\#399](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/399) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- Better handling of conductors when moving [\#398](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/398) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- A few small improvements [\#395](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/395) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- Added updated automatic doxygen build on push + theme to make it fit with docs page [\#389](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/389) ([Int-Circuit](https://github.com/Int-Circuit))
|
||||
- qet\_de updated [\#388](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/388) ([Bisku](https://github.com/Bisku))
|
||||
- only calculate grid-point-size, when min != max [\#387](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/387) ([plc-user](https://github.com/plc-user))
|
||||
- Mouse hover text for dynamic text items [\#386](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/386) ([elevatormind](https://github.com/elevatormind))
|
||||
- improvement: adjust size of grid-dots with zoom-factor [\#384](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/384) ([plc-user](https://github.com/plc-user))
|
||||
- adjust zoom-factor to use cosmetic-line and fixed comments [\#383](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/383) ([plc-user](https://github.com/plc-user))
|
||||
- element-editor: fix jumping positions when rotate, mirror or flip [\#382](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/382) ([plc-user](https://github.com/plc-user))
|
||||
- unify some more code for Qt5 & Qt6 \(and more\) [\#379](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/379) ([plc-user](https://github.com/plc-user))
|
||||
- same simplifications as in \#376 "use the same code for Qt5 & Qt6" [\#377](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/377) ([plc-user](https://github.com/plc-user))
|
||||
- simplify and use the same code for Qt5 & Qt6 [\#376](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/376) ([plc-user](https://github.com/plc-user))
|
||||
- bordertitleblock: use same code for Qt5 & Qt6 for "numbering" rows [\#375](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/375) ([plc-user](https://github.com/plc-user))
|
||||
- some minor changes [\#374](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/374) ([plc-user](https://github.com/plc-user))
|
||||
- implement setting of point-size of grids [\#372](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/372) ([plc-user](https://github.com/plc-user))
|
||||
- some small changes for selective move [\#370](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/370) ([plc-user](https://github.com/plc-user))
|
||||
- Added slovak translation to org.qelectrotech.qelectrotech.desktop [\#369](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/369) ([prescott66](https://github.com/prescott66))
|
||||
- unify calls to "setRotation" for element-primitives again [\#367](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/367) ([plc-user](https://github.com/plc-user))
|
||||
- Added option to only move dynamic texts [\#365](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/365) ([scorpio810](https://github.com/scorpio810))
|
||||
- New variables for conductor text formulas [\#364](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/364) ([scorpio810](https://github.com/scorpio810))
|
||||
- Fix typo widht to width [\#362](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/362) ([pkess](https://github.com/pkess))
|
||||
- element-editor: add mirror and flip for "text" [\#361](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/361) ([plc-user](https://github.com/plc-user))
|
||||
- Add Swedish translation [\#360](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/360) ([scorpio810](https://github.com/scorpio810))
|
||||
- German text for launcher and debian package code style [\#359](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/359) ([pkess](https://github.com/pkess))
|
||||
- some more rotation, mirror and flip [\#358](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/358) ([plc-user](https://github.com/plc-user))
|
||||
- BugFix: Flip and Mirror of terminals [\#357](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/357) ([plc-user](https://github.com/plc-user))
|
||||
- element-editor: fix rotation and more [\#356](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/356) ([plc-user](https://github.com/plc-user))
|
||||
- minor: mostly typos [\#355](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/355) ([plc-user](https://github.com/plc-user))
|
||||
- a few translated shortcuts were still there ... fixed! [\#354](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/354) ([plc-user](https://github.com/plc-user))
|
||||
- FIX: some shortcuts do not work with language set to local [\#353](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/353) ([plc-user](https://github.com/plc-user))
|
||||
- fix movement of element, when origin is outside of graphics [\#352](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/352) ([plc-user](https://github.com/plc-user))
|
||||
- FIX copy-and-paste in element-editor: set paste-position to meaningful values [\#351](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/351) ([plc-user](https://github.com/plc-user))
|
||||
- some cleaning for element-file [\#350](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/350) ([plc-user](https://github.com/plc-user))
|
||||
- fix: properties in project-file [\#348](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/348) ([plc-user](https://github.com/plc-user))
|
||||
- translation: update German and English [\#347](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/347) ([plc-user](https://github.com/plc-user))
|
||||
- export: set maximum width / height according limitations in QPainter [\#346](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/346) ([plc-user](https://github.com/plc-user))
|
||||
- export: set maximum width / height according specifications of export-type [\#345](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/345) ([plc-user](https://github.com/plc-user))
|
||||
- some clean-up for element-file and in code [\#344](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/344) ([plc-user](https://github.com/plc-user))
|
||||
- minor: typos, comments, whitespace, translation [\#343](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/343) ([plc-user](https://github.com/plc-user))
|
||||
- Sort names in element-file by language-code [\#342](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/342) ([plc-user](https://github.com/plc-user))
|
||||
- more precise Log-Text for search of "qet\_tb\_generator" [\#341](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/341) ([plc-user](https://github.com/plc-user))
|
||||
- machine\_info: add entry for QETApp::configDir\(\) also for win [\#340](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/340) ([plc-user](https://github.com/plc-user))
|
||||
- remove dead code \(local variables that were never used\) [\#339](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/339) ([plc-user](https://github.com/plc-user))
|
||||
- minor changes [\#338](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/338) ([plc-user](https://github.com/plc-user))
|
||||
- Update of qet\_de [\#337](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/337) ([Bisku](https://github.com/Bisku))
|
||||
- rewrite code for executing “qet\_tb\_generator” plugin [\#335](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/335) ([plc-user](https://github.com/plc-user))
|
||||
- build-aux/snap/snapcraft.yaml: python3.8 -\> 3.10 [\#334](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/334) ([zultron](https://github.com/zultron))
|
||||
- corrected a few places where QETApp::documentDir\(\) should also be used [\#333](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/333) ([plc-user](https://github.com/plc-user))
|
||||
- add commandline-parameter "--data-dir" [\#332](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/332) ([plc-user](https://github.com/plc-user))
|
||||
- machine\_info: fix element-count and make static text a bit shorter [\#331](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/331) ([plc-user](https://github.com/plc-user))
|
||||
- formatting / whitespace - unify declarations [\#330](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/330) ([plc-user](https://github.com/plc-user))
|
||||
- Set default-location for projects to documents-dir. [\#329](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/329) ([plc-user](https://github.com/plc-user))
|
||||
- machine\_info.cpp: add explaining text for directory-list [\#328](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/328) ([plc-user](https://github.com/plc-user))
|
||||
- set config- and data-dir to system-specific paths [\#327](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/327) ([plc-user](https://github.com/plc-user))
|
||||
- Update qet\_cs.ts [\#326](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/326) ([pafri](https://github.com/pafri))
|
||||
- update German translation [\#324](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/324) ([plc-user](https://github.com/plc-user))
|
||||
- fix copyright-year [\#323](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/323) ([plc-user](https://github.com/plc-user))
|
||||
- PT-BR language update [\#322](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/322) ([gleissonjoaquim3](https://github.com/gleissonjoaquim3))
|
||||
- Fix: Only scroll diagram-view, when moved text leaves visible area [\#320](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/320) ([plc-user](https://github.com/plc-user))
|
||||
- Change Sorting of ElementInfo ComboBox [\#319](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/319) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- Revert "ElementEditor elmt\_info\_cb sorting changed" [\#317](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/317) ([scorpio810](https://github.com/scorpio810))
|
||||
- Fix typo and some whitespace [\#316](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/316) ([plc-user](https://github.com/plc-user))
|
||||
- Fix missing company-titleblocks in properties-dialog [\#315](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/315) ([plc-user](https://github.com/plc-user))
|
||||
- ElementEditor elmt\_info\_cb sorting changed [\#314](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/314) ([ChuckNr11](https://github.com/ChuckNr11))
|
||||
- fix typos and whitespace [\#313](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/313) ([plc-user](https://github.com/plc-user))
|
||||
- Force light mode in collections like projects [\#312](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/312) ([Arusekk](https://github.com/Arusekk))
|
||||
- About QET: improvements in usability [\#310](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/310) ([plc-user](https://github.com/plc-user))
|
||||
- use MessageBox to inform user about additional info when importing scaled element [\#308](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/308) ([plc-user](https://github.com/plc-user))
|
||||
- make text for missing software "dxf2elmt" translatable [\#304](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/304) ([plc-user](https://github.com/plc-user))
|
||||
- QET\_ElementScaler: fix error for Qt 5.9 and added mirroring [\#303](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/303) ([plc-user](https://github.com/plc-user))
|
||||
- integrate "QET\_ElementScaler" as external software [\#302](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/302) ([plc-user](https://github.com/plc-user))
|
||||
- move code into else-clause to avoid possible crashes [\#300](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/300) ([plc-user](https://github.com/plc-user))
|
||||
- add terminal-names to connection in qet-file [\#297](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/297) ([plc-user](https://github.com/plc-user))
|
||||
- fix: editing SpinBoxes with keyboard lose focus [\#296](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/296) ([plc-user](https://github.com/plc-user))
|
||||
- Spanish lang update [\#295](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/295) ([joseyspain](https://github.com/joseyspain))
|
||||
- More spanish translations.Josey [\#294](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/294) ([joseyspain](https://github.com/joseyspain))
|
||||
- update German and English translations [\#293](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/293) ([plc-user](https://github.com/plc-user))
|
||||
- hide SVG background checkbox in print preferences [\#292](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/292) ([plc-user](https://github.com/plc-user))
|
||||
- fixed indentations of the remaining \*.cpp/\*.h files [\#291](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/291) ([plc-user](https://github.com/plc-user))
|
||||
- correct more indentations / whitespace [\#289](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/289) ([plc-user](https://github.com/plc-user))
|
||||
- update German and English translations [\#288](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/288) ([plc-user](https://github.com/plc-user))
|
||||
- some minor changes [\#286](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/286) ([plc-user](https://github.com/plc-user))
|
||||
- correct comments [\#285](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/285) ([plc-user](https://github.com/plc-user))
|
||||
- FIX SegFault: Disable menu-entry for DB-export when no project loaded [\#284](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/284) ([plc-user](https://github.com/plc-user))
|
||||
- changed some remaining "pt\_br" to "pt\_BR" [\#282](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/282) ([plc-user](https://github.com/plc-user))
|
||||
- add option "transparent background" in SVG-export [\#281](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/281) ([plc-user](https://github.com/plc-user))
|
||||
- Fix sizes [\#280](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/280) ([plc-user](https://github.com/plc-user))
|
||||
- added folder "company-titleblocks" \(incl. language-files\) [\#277](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/277) ([plc-user](https://github.com/plc-user))
|
||||
- update translations: de, en, nl [\#276](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/276) ([plc-user](https://github.com/plc-user))
|
||||
- fix: set default "company-element-dir" [\#275](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/275) ([plc-user](https://github.com/plc-user))
|
||||
- Fix Cmake build [\#273](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/273) ([De-Backer](https://github.com/De-Backer))
|
||||
- added "company-collection" as second user-collection [\#272](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/272) ([plc-user](https://github.com/plc-user))
|
||||
- corrected german texts for "line-style" [\#269](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/269) ([plc-user](https://github.com/plc-user))
|
||||
- Too many parts [\#268](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/268) ([scorpio810](https://github.com/scorpio810))
|
||||
- Merge Terminal strip to master [\#267](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/267) ([scorpio810](https://github.com/scorpio810))
|
||||
- Terminal strip [\#266](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/266) ([scorpio810](https://github.com/scorpio810))
|
||||
- Added new symbols [\#264](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/264) ([kamikazzyyyy](https://github.com/kamikazzyyyy))
|
||||
|
||||
## [0.9](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9) (2023-01-03)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2022/12/30...0.9)
|
||||
|
||||
## [0.9-dev-2022/12/30](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2022/12/30) (2022-12-30)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2022/08/15...0.9-dev-2022/12/30)
|
||||
|
||||
## [0.9-dev-2022/08/15](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2022/08/15) (2022-08-13)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2022/04/22...0.9-dev-2022/08/15)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Polylines always closed on dxf export [\#228](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/228)
|
||||
- Refreshing after making changes to elements [\#168](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/168)
|
||||
|
||||
## [9-dev-2022/04/22](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2022/04/22) (2022-04-09)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/09/09...9-dev-2022/04/22)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- File dialog should enforce suffix [\#206](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/206)
|
||||
- snap: Update stable release to core20 & introduce branch for stable releases [\#201](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/201)
|
||||
- Can we submit Flatpak to Flathub? [\#143](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/143)
|
||||
|
||||
## [9-dev-2021/09/09](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/09/09) (2021-09-08)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/06/28...9-dev-2021/09/09)
|
||||
|
||||
## [9-dev-2021/06/28](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/06/28) (2021-07-06)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/9-dev-2021/05/09...9-dev-2021/06/28)
|
||||
|
||||
## [9-dev-2021/05/09](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/9-dev-2021/05/09) (2021-05-09)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev-2021/05...9-dev-2021/05/09)
|
||||
|
||||
## [0.9-dev-2021/05](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev-2021/05) (2021-04-30)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8.0...0.9-dev-2021/05)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Rewrite how Properties are stored in the Project file [\#144](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/144) ([Murmele](https://github.com/Murmele))
|
||||
- Xml properties rebase2 [\#80](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/80) ([Murmele](https://github.com/Murmele))
|
||||
|
||||
## [0.8.0](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8.0) (2021-02-21)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.9-dev...0.8.0)
|
||||
|
||||
## [0.9-dev](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.9-dev) (2021-02-21)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8.rc...0.9-dev)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- QET font [\#110](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/110)
|
||||
|
||||
## [0.8.rc](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8.rc) (2020-12-01)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.8-dev...0.8.rc)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- overlapping comparisons always evaluate to true [\#78](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/78)
|
||||
- New snap break HiDPI [\#41](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/41)
|
||||
|
||||
## [0.8-dev](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.8-dev) (2019-08-06)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.7.0...0.8-dev)
|
||||
|
||||
## [0.7.0](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.7.0) (2019-07-17)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2a...0.7.0)
|
||||
|
||||
## [0.2a](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2a) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2b...0.2a)
|
||||
|
||||
## [0.2b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2b) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2rc1...0.2b)
|
||||
|
||||
## [0.2rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2rc1) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2rc2...0.2rc1)
|
||||
|
||||
## [0.2rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2rc2) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.2...0.2rc2)
|
||||
|
||||
## [0.2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.2) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3a...0.2)
|
||||
|
||||
## [0.3a](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3a) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.11...0.3a)
|
||||
|
||||
## [0.11](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.11) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.21...0.11)
|
||||
|
||||
## [0.21](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.21) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.22...0.21)
|
||||
|
||||
## [0.22](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.22) (2019-06-26)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.70rc2...0.22)
|
||||
|
||||
## [0.70rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.70rc2) (2019-06-25)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.70rc1...0.70rc2)
|
||||
|
||||
## [0.70rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.70rc1) (2019-04-12)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.61...0.70rc1)
|
||||
|
||||
## [0.61](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.61) (2018-08-23)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6...0.61)
|
||||
|
||||
## [0.6](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6) (2018-03-06)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc4...0.6)
|
||||
|
||||
## [0.6rc4](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc4) (2018-01-12)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc3...0.6rc4)
|
||||
|
||||
## [0.6rc3](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc3) (2017-09-20)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc2...0.6rc3)
|
||||
|
||||
## [0.6rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc2) (2017-06-13)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.6rc1...0.6rc2)
|
||||
|
||||
## [0.6rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.6rc1) (2017-04-23)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5...0.6rc1)
|
||||
|
||||
## [0.5](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5) (2015-11-27)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5rc1...0.5)
|
||||
|
||||
## [0.5rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5rc1) (2015-10-30)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.5b...0.5rc1)
|
||||
|
||||
## [0.5b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.5b) (2015-10-04)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4...0.5b)
|
||||
|
||||
## [0.4](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4) (2015-02-20)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4rc2...0.4)
|
||||
|
||||
## [0.4rc2](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4rc2) (2014-12-27)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4rc1...0.4rc2)
|
||||
|
||||
## [0.4rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4rc1) (2014-11-10)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.4b...0.4rc1)
|
||||
|
||||
## [0.4b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.4b) (2014-11-02)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3...0.4b)
|
||||
|
||||
## [0.3](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3) (2013-09-28)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3rc...0.3)
|
||||
|
||||
## [0.3rc](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3rc) (2013-09-10)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.3b...0.3rc)
|
||||
|
||||
## [0.3b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.3b) (2013-06-18)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1...0.3b)
|
||||
|
||||
## [0.1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1) (2008-03-08)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1rc1...0.1)
|
||||
|
||||
## [0.1rc1](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1rc1) (2008-03-02)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/0.1b...0.1rc1)
|
||||
|
||||
## [0.1b](https://github.com/qelectrotech/qelectrotech-source-mirror/tree/0.1b) (2007-12-23)
|
||||
|
||||
[Full Changelog](https://github.com/qelectrotech/qelectrotech-source-mirror/compare/5cadf173c7b73460b62409c81568fc8999177d52...0.1b)
|
||||
|
||||
|
||||
|
||||
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
||||
233
build-aux/windows/nsis_base/files/ELEMENTS.LICENSE
Normal file
@@ -0,0 +1,233 @@
|
||||
[en]
|
||||
The elements collection provided along with QElectroTech is provided as is and
|
||||
without any warranty of fitness for your purpose or working.
|
||||
The usage, the modification and the integration of the elements into electric
|
||||
diagrams is allowed without any condition, whatever the final license of the
|
||||
diagrams is.
|
||||
|
||||
Permission is not granted to use this software or any of the associated files
|
||||
as sample data for the purposes of building machine learning models.
|
||||
|
||||
If you redistribute all or a part of the QElectroTech collection, with or
|
||||
without any modification, out of an electric diagram, you must respect the
|
||||
conditions of the CC-BY license:
|
||||
This work is licensed under the Creative Commons Attribution 3.0 License.
|
||||
To view a copy of this license, visit
|
||||
http://creativecommons.org/licenses/by/3.0/ or send a letter to Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
|
||||
[fr]
|
||||
La collection d'éléments fournie avec QElectroTech est fournie telle quelle et
|
||||
sans la moindre garantie qu'elle convienne à votre utilisation ou qu'elle
|
||||
fonctionne.
|
||||
L'utilisation, la modification et l'intégration des éléments dans des schémas
|
||||
électriques est autorisée sans condition, quelle que soit la licence finale des
|
||||
schémas.
|
||||
L'autorisation n'est pas accordée pour utiliser ce logiciel ou l'un des fichiers associés
|
||||
comme exemples de données aux fins de création de modèles d’apprentissage automatique.
|
||||
|
||||
Si vous redistribuez tout ou partie de la collection QElectroTech, avec ou sans
|
||||
modification, en dehors d'un schéma électrique, vous devrez respecter les
|
||||
conditions de la licence CC-BY :
|
||||
Cette création est mise à disposition selon le Contrat Paternité 3.0
|
||||
disponible en ligne http://creativecommons.org/licenses/by/3.0/ ou par
|
||||
courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco,
|
||||
California 94105, USA.
|
||||
|
||||
[de]
|
||||
Die mit QElectroTech zur Verfügung gestellte Sammlung von Elementen wird ohne
|
||||
Gewährleistung der Eignung für einen bestimmten Zweck oder der Funktions-
|
||||
fähigkeit zur Verfügung gestellt.
|
||||
Die Verwendung, Modifikation und Integration der Elemente in elektrische
|
||||
Schaltpläne ist uneingeschränkt erlaubt, unabhängig von der endgültigen Lizenz
|
||||
der Schaltpläne.
|
||||
Es ist nicht gestattet, diese Software oder eine der zugehörigen Dateien
|
||||
als Beispieldaten für die Erstellung von Modellen für maschinelles Lernen
|
||||
zu verwenden.
|
||||
Wenn Sie die gesamte QElectroTech-Sammlung oder Teile davon, mit oder ohne
|
||||
Modifikationen, aus einem Schaltplan weitergeben, müssen Sie die Bedingungen
|
||||
der CC-BY-Lizenz einhalten.
|
||||
Dieses Werk steht unter einer Creative Commons Attribution 3.0 Lizenz.
|
||||
Eine Kopie dieser Lizenz finden Sie unter:
|
||||
http://creativecommons.org/licenses/by/3.0/
|
||||
oder senden Sie einen Brief an:
|
||||
Creative Commons, 171 Second Street, Suite 300,
|
||||
San Francisco, Kalifornien, 94105, USA.
|
||||
|
||||
[ru]
|
||||
Коллекция элементов, поставляемая вместе с QElectroTech, поставляется "как есть"
|
||||
и без каких-либо гарантий пригодности для той или иной цели или работы.
|
||||
Использование, изменение и интеграция элементов в электрическую
|
||||
схему разрешается без каких-либо условий, безотносительно конечной лицензии на
|
||||
схему.
|
||||
Если Вы распространяете всю или часть коллекции QElectroTech, с или без
|
||||
изменений, отдельно от электрической схемы, Вы должны соблюдать условия лицензии
|
||||
CC-BY:
|
||||
Эта работа лицензирована на условиях Creative Commons Attribution 3.0 License.
|
||||
Чтобы увидеть копию этой лицензии, посетите
|
||||
http://creativecommons.org/licenses/by/3.0/ или отправте письмо в Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
(данный перевод, на русский язык, является вольным и выполнен не юристом!)
|
||||
|
||||
[pt]
|
||||
A colecção de elementos fornecida com o programa QElectroTech é fornecida como é
|
||||
e sem nenhuma garantia da aptidão para o seu uso e sem garantia de que funciona.
|
||||
É permitido, sem condição alguma, qualquer que seja a licença final, usar,
|
||||
editar e incluir estes elementos em esquemas eléctricos.
|
||||
Se você redistribuir uma parte ou toda a colecção de elementos do programa
|
||||
QElectroTech, tendo editado ou não os elementos, sem ser num esquema eléctrico,
|
||||
tem de respeitar as condições da licença CC-BY:
|
||||
Este trabalho está licenciado de acordo com os termos da licença Creative
|
||||
Commons Attribution 3.0 License.
|
||||
Para ver uma cópia da licença visite http://creativecommons.org/licenses/by/3.0/
|
||||
ou envie uma carta para o endereço Creative Commons, 171 Second Street, Suite
|
||||
300, San Francisco, California, 94105, USA.
|
||||
|
||||
[es]
|
||||
La colección de elementos QElectrotech es distruibida tal cual y sin ninguna
|
||||
garantía a la conveniencia de su uso y sin garantía de que funciona.
|
||||
Se permite sin condicion alguna, cualquiera que sea la licencia final, usar,
|
||||
editar, e incluir estos elementos en esquemas eléctricos.
|
||||
Si usted redistribuye una parte de la colección o toda la collección de
|
||||
QElectrotech, con o sin ediciones, fuera de un esquema eléctrico, tiene que
|
||||
respetar las condiciones de la licencia CC-BY:
|
||||
Esta obra está bajo una licencia Reconocimiento 3.0 de Creative Commons.
|
||||
Para ver una copia de esta licencia, visite
|
||||
http://creativecommons.org/licenses/by/3.0/ o envie una carta a Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.
|
||||
|
||||
[ca]
|
||||
La col·lecció de símbols QElectrotech és distribuïda tal qual i sense cap
|
||||
garantia d'idoneïtat d'ús ni de funcionament.
|
||||
Es permet incondicionalment, amb independència de la llicència final, emprar,
|
||||
editar, i incloure aquests símbols en esquemes elèctrics.
|
||||
Si vostè redistribueix una part de la col·lecció de QElectrotech o tota ella,
|
||||
amb condicions o sense, separadament d'un esquema elèctric, haurà de respectar
|
||||
les condicions de la llicència CC-BY:
|
||||
Aquesta obra es troba sota una llicència Reconeixement 3.0 de Creative Commons.
|
||||
Per veure una còpia d'aquesta llicència visiti
|
||||
http://creativecommons.org/licenses/by/3.0/ o enviï una carta a Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California 94105,
|
||||
|
||||
[cs]
|
||||
Sbírka prvků poskytovaná společně s QElectroTechem je poskytována tak, jak je,
|
||||
bez záruky nebo vhodnosti pro váš účal nebo práci.
|
||||
Používání, úpravy a začlenění prvků do nákresů elektrických
|
||||
obvodů se povoluje bez jakýchkoli podmínek, cokoli je konečná licence nákresu.
|
||||
Pokud rozdáte celou nebo část ze sbírky QElectroTechu, s nebo bez
|
||||
jakýchkoli úprav, mimo elektrický nákres, musíte brát ohledy na podmínky
|
||||
licence CC-BY:
|
||||
tato práce je licencována pod licencí Creative Commons Attribution 3.0 License.
|
||||
Kopii této licence si můžete prohlédnout, navštivte
|
||||
http://creativecommons.org/licenses/by/3.0/ nebo pošlete dopis Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
|
||||
[pl]
|
||||
Biblioteka elementów dostarczana wraz z QElectroTech jest w formie "taka jaka jest",
|
||||
bez żadnych gwarancji przydatności.
|
||||
Dozwolona jest edycja, modyfikacja i użytkowanie elementów bez żadnych warunków
|
||||
i bez względu na końcową licencję tworzonych schematów.
|
||||
W przypadku wykorzystywania całości lub części biblioteki elementów QElectroTech
|
||||
do innych celów niż tworzenie schematów elektrycznych, należy przestrzegać
|
||||
warunków licencji CC-BY:
|
||||
Niniejsza praca jest licencjonowana na zasadach Creative Commons Attribution 3.0 License.
|
||||
Aby zobaczyć kopię licencji, należy odwiedzić stronę internetową:
|
||||
http://creativecommons.org/licenses/by/3.0/ lub wysłać list do Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, Kalifornia 94105, USA.
|
||||
|
||||
[it]
|
||||
La collezione di elementi che si trova in QElectroTech è fornita così com'è
|
||||
senza alcuna garanzia di usabilità o funzionamento.
|
||||
L'uso, la modifica e l'integrazione degli elementi negli schemi elettrici
|
||||
è permessa senza condizioni, qualunque si ala licenza dello schema finale.
|
||||
Distribuendo tutto o parte della collezione di QElettroTech, con o senza
|
||||
modifiche, fuori da uno schema elettrico, bisogna rispettare le condizioni
|
||||
della licenza CC-BY:
|
||||
Questo lavoro è licenziato sotto la Licenza Creative Commons 3.0.
|
||||
Per vedere una copia di questa licenza, visitate il sito
|
||||
http://creativecommons.org/licenses/by/3.0/ o inviate una lettera a Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
|
||||
[el]
|
||||
Η συλλογή στοιχείων που παρέχεται μαζί με το QElectroTech παρέχεται ως έχει και
|
||||
χωρίς καμία εγγύηση καταλληλότητας για συγκεκριμένο σκοπό ή την εργασία σας.
|
||||
Η χρήση, η τροποποίηση και η ενσωμάτωση των στοιχείων στα ηλεκτρικά
|
||||
διαγράμματα επιτρέπεται χωρίς καμία προϋπόθεση, όποια και αν είναι η τελική άδεια
|
||||
των διαγραμμάτων.
|
||||
Εάν αναδιανείμετε το σύνολο ή ένα μέρος της συλλογής του QElectroTech, με ή
|
||||
χωρίς καμία τροποποίηση, έξω από ένα ηλεκτρικό διάγραμμα, θα πρέπει να σεβαστείτε
|
||||
τους όρους της άδειας CC-BY:
|
||||
Το έργο αυτό είναι υπό την άδεια Creative Commons Attribution 3.0 License.
|
||||
Για να δείτε ένα αντίγραφο της άδειας αυτής, επισκεφτείτε το
|
||||
http://creativecommons.org/licenses/by/3.0/ ή στείλτε μια επιστολή στο Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
|
||||
[nl]
|
||||
|
||||
De elementen collectie voorzien, samen met QElectroTech wordt geleverd als en
|
||||
zonder enige garantie van geschiktheid voor uw doel of werk.
|
||||
Het gebruik, de wijziging en de integratie van de elementen in elektrische
|
||||
diagrammen wordt toegestaan zonder enige voorwaarden, ongeacht wat de uiteindelijke
|
||||
vergunning van het diagram is.
|
||||
Als u alle of een deel van de QElectroTech collectie, met of herdistribueren
|
||||
zonder enige wijziging, van een elektrisch schema, moet u voldoen aan de
|
||||
voorwaarden van de CC-BY-licentie:
|
||||
Dit werk is gelicenseerd onder de Creative Commons Attribution 3.0-licentie.
|
||||
Om een kopie van deze licentie te bekijken, bezoek
|
||||
http://creativecommons.org/licenses/by/3.0/ of stuur een brief naar Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
|
||||
[be]
|
||||
|
||||
De elementen collectie welke samen met QElectroTech wordt geleverd zonder enige garantie
|
||||
of deze geschikt zijn voor uw doel of de werking.
|
||||
Het gebruik, wijzigen en integratie van de elementen in uw elektrische
|
||||
schema's wordt toegestaan zonder enige voorwaarden, ongeacht wat de uiteindelijke
|
||||
liventie van het schema is.
|
||||
Als u één of meerdere elementen van de QElectroTech collectie, met of zonder wijzigingen, herdistribuer in een elektrisch schema of zonder schzma , moet u de voorwaarden van de
|
||||
CC-BY-licentie volgen:
|
||||
Dit werk is gelicenseerd onder de Creative Commons Attribution 3.0-licentie.
|
||||
Om een kopie van deze licentie te bekijken, bezoek
|
||||
http://creativecommons.org/licenses/by/3.0/ of stuur een brief naar Creative
|
||||
Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
|
||||
|
||||
[da]
|
||||
Element samlinger leveret sammen med QElectroTech er tilvejebragt som er og
|
||||
uden nogen garanti for egnethed til dit formål eller arbejde.
|
||||
Brug, modifikation og integration af elementer til elektrisk diagrammer er
|
||||
tilladt uden nogen betingelse uanset den endelige diagram licens.
|
||||
Omfordeling af hele eller dele af QElectroTech samlingen, med eller
|
||||
uden ændring af et elektrisk diagram, skal du respektere betingelser for CC-BY-licens:
|
||||
Dette værk er licenseret under Creative Commons Attribution 3.0 License.
|
||||
For at se en kopi af denne licens, besøg
|
||||
http://creativecommons.org/licenses/by/3.0/ or send a letter to Creative
|
||||
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.」に
|
||||
手紙を送ってください。
|
||||
|
||||
[ko]
|
||||
QElectroTech와 함께 제공되는 요소 컬렉션은 “있는 그대로(as is)” 제공되며,
|
||||
특정 목적에 대한 적합성이나 정상 동작에 대한 어떠한 보증도 제공되지 않습니다.
|
||||
요소의 사용, 수정 및 전기 도면에의 통합은 도면의 최종 라이선스와 관계없이
|
||||
아무런 조건 없이 허용됩니다.
|
||||
|
||||
본 소프트웨어 또는 관련 파일을 기계 학습(machine learning) 모델을 구축하기 위한
|
||||
샘플 데이터로 사용하는 것은 허용되지 않습니다.
|
||||
|
||||
전기 도면과 분리된 형태로 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.
|
||||
342
build-aux/windows/nsis_base/files/LICENSE
Normal file
@@ -0,0 +1,342 @@
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
60
build-aux/windows/nsis_base/files/README
Normal file
@@ -0,0 +1,60 @@
|
||||
[ca]
|
||||
QElectroTech és una aplicació Qt5 per crear esquemes elèctrics.
|
||||
QET utilitza el format XML per als seus elements i esquemes i inclou un editor d'esquemes, un editor d'elements i un editor de caixetins.
|
||||
|
||||
[en]
|
||||
QElectroTech is a Qt5 application to design electric diagrams.
|
||||
It uses XML files for elements and diagrams, and includes both a diagram editor, a element editor, and an titleblock editor.
|
||||
|
||||
[fr]
|
||||
QElectroTech est une application Qt5 pour réaliser des schémas électriques.
|
||||
QET utilise le format XML pour ses éléments et ses schémas et inclut un éditeur de schémas, un éditeur d'élément, ainsi qu'un editeur de cartouche.
|
||||
|
||||
[de]
|
||||
QElectroTech ist eine Qt5 Software, um Schaltpläne zu erstellen.
|
||||
QET benutzt das XML Format für seine Bauteile und seine Projekte, und beinhaltet einen Schaltplaneditor, einen Bauteileditor sowie einen Schriftfeldeditor.
|
||||
|
||||
|
||||
[ru]
|
||||
QElectroTech - приложение написанное на Qt5 и предназначенное для разработки электрических схем.
|
||||
Оно использует XML-файлы для элементов и схем, и включает, как редактор схем, так и редактор элементов.
|
||||
|
||||
[pt]
|
||||
QElectroTech é uma aplicação baseada em Qt5 para desenhar esquemas eléctricos.
|
||||
QET utiliza ficheiros XML para os elementos e para os esquemas e inclui um editor de esquemas e um editor de elementos.
|
||||
|
||||
[es]
|
||||
QElectroTech es una aplicación Qt5 para diseñar esquemas eléctricos.
|
||||
Utiliza archivos XML para los elementos y esquemas, e incluye un editor de esquemas y un editor de elementos.
|
||||
|
||||
[cs]
|
||||
QElectroTech je aplikací Qt5 určenou pro návrh nákresů elektrických obvodů.
|
||||
Pro prvky a nákresy používá soubory XML, a zahrnuje v sobě jak editor nákresů, tak editor prvků.
|
||||
|
||||
[pl]
|
||||
QElectroTech to aplikacja napisana w Qt5, przeznaczona do tworzenia schematów elektrycznych.
|
||||
Wykorzystuje XML do zapisywania plików elementów i projektów. Posiada edytor schematów i elementów.
|
||||
|
||||
[it]
|
||||
QElectroTech è una applicazione fatta in Qt5 per disegnare schemi elettrici.
|
||||
QET usa il formato XML per i suoi elementi e schemi, includendo anche un editor per gli stessi.
|
||||
|
||||
[el]
|
||||
Το QElectroTech είναι μια εφαρμογή Qt5 για σχεδίαση ηλεκτρικών διαγραμμάτων.
|
||||
Χρησιμοποιεί αρχεία XML για στοιχεία και διαγράμματα, και περιλαμβάνει επεξεργαστή διαγραμμάτων καθώς και επεξεργαστή στοιχείων.
|
||||
|
||||
[nl]
|
||||
QElectroTech is een Qt5 applicatie om elektrische schema's te ontwerpen.
|
||||
Het maakt gebruik van XML-bestanden voor elementen en diagrammen, en omvat zowel een diagram bewerker, een element bewerker, en een bloksjabloon bewerker.
|
||||
|
||||
[be]
|
||||
QElectroTech is een Qt5 toepassing voor het maken en beheren van elektrische schema's.
|
||||
QET gebruikt XML voor de elementen en schema's en omvat een schematische editor, itemeditor, en een titel sjabloon editor.
|
||||
|
||||
[da]
|
||||
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.
|
||||
|
||||
[ja]
|
||||
QElectroTech は電気回路図を作成する Qt5 アプリケーションです。
|
||||
QET は要素と回路図に XML 形式を利用し、回路図エディタ、要素エディタ、表題欄エディタを含みます。
|
||||
229
build-aux/windows/nsis_base/files/README.md
Normal file
@@ -0,0 +1,229 @@
|
||||

|
||||
|
||||
|
||||
# QElectroTech
|
||||
|
||||
### What it is
|
||||
|
||||
QElectroTech, or QET in short, is a libre and open source desktop application to create diagrams and schematics.
|
||||
The software is primarily intended to create electrical documentation but it can also be used to draw any kinds of diagrams, such as those made in pneumatics, hydraulics, process industries, electronics...
|
||||
Generally speaking, QET is a **CAD/CAE editor focusing on schematics drawing features**.
|
||||
|
||||
This means that there are no embedded simulating or calculating functionalities and it is not planned to implement them.
|
||||
|
||||
The main goal of the developers is to provide a libre, easy to use and effective software for **schematics drawing purposes**.
|
||||
|
||||
### Version
|
||||
|
||||
The current stable version is 0.100 and was released on 2026.01.25.
|
||||
Once it has been officially released, the stable version is always frozen and is no longer developed.
|
||||
|
||||
New functionalities, bug and issue fixings are further made in the development version (currently 0.100.1 or 0.200.0 if based on new Qt6 port), which can also be [downloaded](https://qelectrotech.org/download.php).
|
||||
|
||||
Users who want to test and take benefits from the last software implementations should use the development version. But... use it at your own risk, since things are sometimes broken or only partially implemented until they are done!
|
||||
|
||||
### License
|
||||
|
||||
The software is licensed under [GNU/GPL](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html).
|
||||
You are free to use, copy, modify and redistribute it under the terms of the license.
|
||||
|
||||
Like many other open source software, QElectroTech is provided as is, without any warranty.
|
||||
|
||||
### Development / technical choices
|
||||
|
||||
The development follows the classical way of free and open source software: the source code, written by a community of users, is freely accessible.
|
||||
* Get sources and sub-modules
|
||||
```txt
|
||||
git clone --recursive https://github.com/qelectrotech/qelectrotech-source-mirror.git
|
||||
```
|
||||
|
||||
Here are the technical choices made for the software development:
|
||||
|
||||
* Integrated development environment: [Qt Framework](https://www.qt.io/ide/)
|
||||
* Libraries: Qt 5.x
|
||||
* [KF5 Framework](https://github.com/KDE)
|
||||
[Cmake](https://cmake.org/install/)
|
||||
[kcoreaddons](https://github.com/KDE/kcoreaddons/tree/kf5)
|
||||
[kwidgetsaddons](https://github.com/KDE/kwidgetsaddons/tree/kf5).
|
||||
* Coding language: [C++](https://en.wikipedia.org/wiki/C%2B%2B)
|
||||
* GUI translations: [Qt Linguist](http://doc.qt.io/qt-5/qtlinguist-index.html)
|
||||
* Version control: [GIT](https://github.com/qelectrotech/qelectrotech-source-mirror.git)
|
||||
* Doxygen documentation :[Doxygen](https://qelectrotech.github.io/qelectrotech-source-mirror/)
|
||||
* QtCreator qch doxygen :[QElectroTech.qch](https://github.com/qelectrotech/qelectrotech-source-mirror/blob/master/doc/QElectroTech.qch)
|
||||
* File format for projects, elements and titleblocks: [XML](http://www.w3schools.com/xml/xml_whatis.asp)
|
||||
* Main development platform: [GNU/Linux](http://getgnulinux.org/en/linux/)
|
||||
* Targeted platforms: Windows, GNU/Linux, Mac OS X, BSDs
|
||||
* [Forum](https://qelectrotech.org/forum/index.php)
|
||||
* [Wiki](https://qelectrotech.org/wiki_new/)
|
||||
* [Mantis_bugtracker](https://qelectrotech.org/bugtracker/my_view_page.php)
|
||||
|
||||
If you wish to be informed of the latest developments, browse the [archive](https://listengine.tuxfamily.org/lists.tuxfamily.org/qet/) of the project mailing list where all commits (changes) are registered. This archive is publicly available, you don't need any account to access it.
|
||||
|
||||
|
||||
# Features
|
||||
|
||||
QElectroTech is a free and open source software.
|
||||
No need to worry about restrictive licensing, privacy violation or dependency on a company.
|
||||
Zero cost and no licensing fees!
|
||||
But you are welcome to make a donation to support the development
|
||||
|
||||
QElectroTech runs on the 3 most widespread operating systems for desktop computers in the world.
|
||||
Files that were created on an OS can be edited on another OS without any conversion or restriction.
|
||||
MS Windows users can even run the "ready-to-use" version of QElectroTech from an external medium with no need to install it on an access restricted computer.
|
||||
|
||||
|
||||
Take advantage of the modern GUI
|
||||
|
||||
Toolbars and panels can be enabled/disabled, moved and displayed the way you want to work.
|
||||
Panels can be stacked on each other (as tabs) or docked on the sides (as docks) or completely separated from the main window (as windows).
|
||||
The GUI can fit to small or big screens, and even to multi-display configurations.
|
||||

|
||||
|
||||
|
||||
The GUI of QElectroTech is translated in 25 languages.
|
||||
You only need to restart the application for the new selected language to take effect.
|
||||

|
||||
|
||||
Create technical documentation in professional quality
|
||||
|
||||
Size, look and informations of the folios (sheets) are fully configurable.
|
||||
You can set vertical and horizontal headers (printed rulers) individually on and off, set number of columns and rows, and set width/height of each column/row.
|
||||
|
||||
Titlebocks can be created and edited with the embedded titleblock editor to perfectly suit your needs.
|
||||
Custom variables can be defined to display the informations you wish in the titleblock.
|
||||

|
||||
|
||||
With only 2 mouse clicks you can add a full automatic generated table of content.
|
||||
Changes in the documentation are updated on the fly.
|
||||

|
||||
|
||||
Choose from more than 8.200 symbols...
|
||||
The embedded QET collection contains a rich library of electric, logic, pneumatic, hydraulic and fluid symbols.
|
||||
The library grows at every new release thanks to an active user community.
|
||||

|
||||
|
||||
...or create your own collection
|
||||
|
||||
The embedded element editor is a nice tool to create your own elements (symbols or anything else).
|
||||
Your own elements are stored in the user collection.
|
||||

|
||||
|
||||
Quickly find what you need
|
||||
|
||||
All collections can quickly be searched with the integrated search engine.
|
||||
Furthermore, the search request can be restricted to the folder of your choice.
|
||||

|
||||
|
||||
Easily draw complex schematics
|
||||
|
||||
To add an element on the drawing area, it only needs a drag & drop from the collection panel.
|
||||

|
||||
|
||||
Elements are automatically connected if they are aligned, or connected from point to point by pulling a conductor with the mouse.
|
||||

|
||||
|
||||
The path of every conductor can be modified by moving its handles with the mouse.
|
||||

|
||||
And of course, you can accurately zoom with the mouse wheel over the drawing area to catch the smallest details.
|
||||
|
||||
Link elements together to create cross references
|
||||
|
||||
Several types of element can be linked together to display a cross reference text.
|
||||
All types of cross references are automatically updated on the fly, you don't need to think about them if you make changes.
|
||||

|
||||
To speed up your work, linkable elements are easily searched and shown.
|
||||

|
||||
|
||||
|
||||
Export informations to a parts list
|
||||
Informations of all elements in the project can be exported to a .csv file that can be read and edited by any spreadsheet application.
|
||||

|
||||
|
||||
This way, you can make your own parts list or bill of material using the full power of a spreadsheet program.
|
||||

|
||||
Print to pdf and/or export your work to images
|
||||
|
||||
Your whole documentation or only selected parts of it can be printed to a real printer or to a pdf file.
|
||||
Alternatively, you can export to vector (svg) or pixel (png, jpg, bmp) format images.
|
||||
|
||||
### And much more:
|
||||
|
||||
* open and edit several projects at the same time
|
||||
* import images (.bmp, .jpg, .png, .svg) in your diagrams
|
||||
* add basic shapes (lines, rectangles, ellipses, polygons) to your drawings
|
||||
* edit the thickness, the line style and the color of conductors
|
||||
* define some autonum patterns for conductors, symbols and folios
|
||||
* take advantage of the open xml standard of elements and projects to create custom tools
|
||||
* search and replace Widget (Ctrl + F) in entire project
|
||||
* conductors num can be exported to csv file.
|
||||
* ***
|
||||
|
||||
Nomenclature
|
||||
|
||||
A new nomenclature tool appears in the menu: project -> Add a nomenclature.
|
||||
The nomenclature is presented in the form of a configurable table separated into two parts: the display (the form) and the content (the background).
|
||||
- Display: the size and position of the table, the margins between text and the table cell, the alignment of the text in the cells and the font. The configuration of the table headers and the table itself are separate.
|
||||
- Content: the information to display in the table and the order in which it should be displayed.
|
||||
|
||||

|
||||
|
||||
In order to speed up the establishment of a nomenclature, it is possible to export / import the display and content configurations separately. This is the "Configuration" part that can be seen in the photos above.
|
||||
|
||||
Behind the scenes, an SQLite database does the work, so setting up the content is nothing more or less than an SQL query created using a dialog (screenshot by right).
|
||||
The SQL query is configured as follows (from top to bottom in the screenshot):
|
||||
- “Available information”: the information to display;
|
||||
- "Filter": filter the information (is not empty, is empty, contains, does not contain, is equal to, is not equal to) only one filter can be applied per information, it is not possible combine several;
|
||||
- "Type of elements": allows you to filter on what type of element you want to obtain information.
|
||||
|
||||
At the bottom, a checkmark "SQL query" allows you to edit a personalized query, if the basic options are not sufficient.
|
||||
|
||||
When a nomenclature is too large to be contained in a single folio, it is possible to separate it on several folios, the tables of each folio are then linked together. When creating a nomenclature, this option is activated by default, which has the effect of adding the necessary number of folios, adding a table in each of them and linking them together.
|
||||
|
||||
Finally two buttons are available in the property panel:
|
||||
- "Fit the table to the folio": positions and adjusts the size and determines the number of rows in the table in relation to the folio;
|
||||
- "Apply geometry to all tables linked to this one": applies the three properties mentioned above to all linked tables in order to save time and maintain aesthetic consistency.
|
||||
|
||||
And to finish a table
|
||||

|
||||
|
||||
|
||||
Summary
|
||||
|
||||
The old summary has been completely removed from the code in order to make room for the new one which is exactly the same as the nomenclature (a large amount of the code is common), with the exception of the SQL query (and its dialog to configure it) which offers specific information for editing a summary.
|
||||
|
||||
Export of the internal database
|
||||
|
||||
The database used by the nomenclature and the summary can be exported in a “.sqlite” file.
|
||||
Currently this is irrelevant, as the function was created during development for debugging purposes, we left it.
|
||||
Note that the database will become increasingly important in the future of Qet.
|
||||
|
||||
|
||||
Export of the wiring list
|
||||
|
||||
In order to be able to use the wiring number printers more easily, the names of conductors can be exported in CSV format, the export respects the quantity of conductors in order to print the right quantity of numbers, for example a potential numbered 240 composed of 3 wires will give 6 × 240 (2 numbers per wire × 3 wires) in the CSV.
|
||||
|
||||
|
||||
|
||||
### Story
|
||||
|
||||
The QElectroTech project was founded in 2007 by two french students, Xavier and Benoit.
|
||||
Xavier developed the base application itself and made all technical choices about the development.
|
||||
The first version of QET (0.1) was released on 09.03.2008.
|
||||
However, both Xavier and Benoit do not participate anymore in the project since 2013.
|
||||
|
||||
Following this period, new developers and contributors took over the project and kept it alive.
|
||||
The development and the many translations are actively maintained.
|
||||
New functionalities and evolutions are planned to make QET ever better.
|
||||
|
||||
Nowadays, QET is not only used by many individuals, teachers and students but also by professional electricians and companies all over the world.
|
||||
|
||||
|
||||
### Donate Money
|
||||
|
||||
If you love QElectroTech, you can help developers to buy new hardware to test
|
||||
and implement new features. Thanks in advance for your generous donations.
|
||||
|
||||
For more information, look at [Paypal](https://www.paypal.com/donate/?cmd=_s-xclick&hosted_button_id=ZZHC9D7C3MDPC&ssrt=1694606609672)
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 97 KiB |
BIN
build-aux/windows/nsis_base/files/ico/qelectrotech.ico
Normal file
|
After Width: | Height: | Size: 32 KiB |
@@ -0,0 +1,9 @@
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
[-HKEY_CLASSES_ROOT\Applications\qelectrotech.exe\shell\open\command]
|
||||
[-HKEY_CLASSES_ROOT\.qet]
|
||||
[-HKEY_CLASSES_ROOT\qet_diagram_file]
|
||||
[-HKEY_CLASSES_ROOT\.elmt]
|
||||
[-HKEY_CLASSES_ROOT\qet_element_file]
|
||||
[-HKEY_CLASSES_ROOT\.titleblock]
|
||||
[-HKEY_CLASSES_ROOT\qet_titleblock_file]
|
||||
111
build-aux/windows/nsis_base/files/register_filetypes.bat
Normal file
@@ -0,0 +1,111 @@
|
||||
@echo off
|
||||
rem Enregistre les associations de fichiers de QElectroTech, a savoir les fichiers .qet
|
||||
|
||||
rem detecte le dossier courant et suppose que celui-ci contient bin\qelectrotech.exe ainsi que windows_icon\diagram_icon\qet-diagram.ico
|
||||
set current_dir=%~dp0
|
||||
cd /d %current_dir%
|
||||
|
||||
set expected_qet_exe=%current_dir%Lancer QET.bat
|
||||
set expected_project_ico=%current_dir%ico\application-x-qet-project.ico
|
||||
set expected_element_ico=%current_dir%ico\application-x-qet-element.ico
|
||||
set expected_titleblock_ico=%current_dir%ico\application-x-qet-titleblock.ico
|
||||
|
||||
rem verifie la presence du fichier qelectrotech.exe
|
||||
if not exist "%expected_qet_exe%" (
|
||||
echo Le fichier %expected_qet_exe% n'a pas ete trouve. Abandon.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
rem verifie la presence du fichier qet-diagram.ico
|
||||
if not exist "%expected_project_ico%" (
|
||||
echo Le fichier %expected_project_ico% n'a pas ete trouve. Abandon.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
rem verifie la presence du fichier qet-element.ico
|
||||
if not exist "%expected_element_ico%" (
|
||||
echo Le fichier %expected_element_ico% n'a pas ete trouve. Abandon.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
rem verifie la presence du fichier qet-titleblock.ico
|
||||
if not exist "%expected_titleblock_ico%" (
|
||||
echo Le fichier %expected_titleblock_ico% n'a pas ete trouve. Abandon.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
rem echappe les backslashs dans les chemins absolus
|
||||
set final_qet_exe=%expected_qet_exe:\=\\%
|
||||
set final_project_ico=%expected_project_ico:\=\\%
|
||||
set final_element_ico=%expected_element_ico:\=\\%
|
||||
set final_titleblock_ico=%expected_titleblock_ico:\=\\%
|
||||
|
||||
rem genere le fichier .reg pour enregistrer les associations de fichiers
|
||||
set reg_file=qet_install_file_associations.reg
|
||||
(
|
||||
echo Windows Registry Editor Version 5.00
|
||||
echo.
|
||||
|
||||
rem Declaration de l'application
|
||||
echo [HKEY_CLASSES_ROOT\Applications\qelectrotech.exe\shell\open\command]
|
||||
echo @="\"%final_qet_exe%\" \"%%1\""
|
||||
|
||||
rem association de fichier *.qet
|
||||
echo [HKEY_CLASSES_ROOT\.qet]
|
||||
echo @="qet_diagram_file"
|
||||
echo [HKEY_CLASSES_ROOT\qet_diagram_file]
|
||||
echo @="QET diagram"
|
||||
echo "EditFlags"=dword:00000000
|
||||
echo "BrowserFlags"=dword:00000008
|
||||
echo [HKEY_CLASSES_ROOT\qet_diagram_file\DefaultIcon]
|
||||
echo @="%final_project_ico%,0"
|
||||
echo [HKEY_CLASSES_ROOT\qet_diagram_file\shell\open\command]
|
||||
echo @="\"%final_qet_exe%\" \"%%1\""
|
||||
|
||||
rem association de fichier *.elmt
|
||||
echo [HKEY_CLASSES_ROOT\.elmt]
|
||||
echo @="qet_element_file"
|
||||
echo [HKEY_CLASSES_ROOT\qet_element_file]
|
||||
echo @="QET element"
|
||||
echo "EditFlags"=dword:00000000
|
||||
echo "BrowserFlags"=dword:00000008
|
||||
echo [HKEY_CLASSES_ROOT\qet_element_file\DefaultIcon]
|
||||
echo @="%final_element_ico%,0"
|
||||
echo [HKEY_CLASSES_ROOT\qet_element_file\shell\open\command]
|
||||
echo @="\"%final_qet_exe%\" \"%%1\""
|
||||
|
||||
rem association de fichier *.titleblock
|
||||
echo [HKEY_CLASSES_ROOT\.titleblock]
|
||||
echo @="qet_titleblock_file"
|
||||
echo [HKEY_CLASSES_ROOT\qet_titleblock_file]
|
||||
echo @="QET title block template"
|
||||
echo "EditFlags"=dword:00000000
|
||||
echo "BrowserFlags"=dword:00000008
|
||||
echo [HKEY_CLASSES_ROOT\qet_titleblock_file\DefaultIcon]
|
||||
echo @="%final_titleblock_ico%,0"
|
||||
echo [HKEY_CLASSES_ROOT\qet_titleblock_file\shell\open\command]
|
||||
echo @="\"%final_qet_exe%\" \"%%1\""
|
||||
) > %reg_file%
|
||||
|
||||
rem verifie que le fichier a bien ete ecrit
|
||||
if not exist %reg_file% (
|
||||
echo Impossible de creer le fichier %reg_file%. Abandon.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
rem Applique le .reg genere
|
||||
regedit.exe /s %reg_file%
|
||||
if errorlevel 1 (
|
||||
echo La prise en compte du fichier %reg_file% a echoue.
|
||||
pause
|
||||
exit /b 1
|
||||
) else (
|
||||
echo Les associations de fichier ont bien ete crees.
|
||||
pause
|
||||
exit /b 0
|
||||
)
|
||||
BIN
build-aux/windows/nsis_base/images/header.bmp
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
build-aux/windows/nsis_base/images/wizard.bmp
Normal file
|
After Width: | Height: | Size: 151 KiB |
BIN
build-aux/windows/nsis_base/images/wizard2.bmp
Normal file
|
After Width: | Height: | Size: 151 KiB |
101
build-aux/windows/patch_nsi.py
Normal file
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Patch QET64.nsi for GitHub Actions Windows build.
|
||||
|
||||
Usage:
|
||||
python3 patch_nsi.py <nsi_path> <version> <files_win_path>
|
||||
|
||||
Arguments:
|
||||
nsi_path : path to QET64.nsi (modified in place)
|
||||
version : full version string e.g. 0.100.1-r8819-abc1234_x86_64-win64
|
||||
files_win_path: absolute Windows path to nsis_root/files/
|
||||
e.g. D:\\a\\repo\\nsis_root\\files
|
||||
"""
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
||||
|
||||
def fix_mixed_paths(nsi, files_win):
|
||||
"""
|
||||
After injecting the absolute path, some sub-paths may still contain
|
||||
forward slashes (e.g. files\\elements/10_electric).
|
||||
Normalize all slashes inside quoted strings that contain our absolute path.
|
||||
"""
|
||||
marker = files_win.lower()
|
||||
|
||||
def fix_quoted(m):
|
||||
content = m.group(1)
|
||||
if marker in content.lower():
|
||||
content = content.replace('/', '\\')
|
||||
return '"' + content + '"'
|
||||
|
||||
return re.sub(r'"([^"\r\n]*)"', fix_quoted, nsi)
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 4:
|
||||
print(f"Usage: {sys.argv[0]} <nsi_path> <version> <files_win_path>")
|
||||
sys.exit(1)
|
||||
|
||||
nsi_path = sys.argv[1]
|
||||
version = sys.argv[2]
|
||||
files_win = sys.argv[3].rstrip('\\/')
|
||||
|
||||
print(f"Patching : {nsi_path}")
|
||||
print(f"Version : {version}")
|
||||
print(f"Files dir: {files_win}")
|
||||
|
||||
with open(nsi_path, encoding='utf-8', errors='replace') as f:
|
||||
nsi = f.read()
|
||||
|
||||
# 1. Patch SOFT_VERSION
|
||||
nsi = re.sub(
|
||||
r'!define SOFT_VERSION\s+.*',
|
||||
f'!define SOFT_VERSION "{version}"',
|
||||
nsi
|
||||
)
|
||||
print(" [1] SOFT_VERSION patched")
|
||||
|
||||
# 2. Rename QElectroTech.exe -> qelectrotech.exe (literal value, not NSIS var)
|
||||
nsi = nsi.replace('/bin/QElectroTech.exe', '/bin/qelectrotech.exe')
|
||||
print(" [2] Exe name patched")
|
||||
|
||||
# 3. Replace relative ./files/ paths with absolute Windows path + backslash
|
||||
sep = '\\'
|
||||
abs_files = files_win + sep
|
||||
nsi = nsi.replace('./files/', abs_files)
|
||||
nsi = nsi.replace('.\\files\\', abs_files)
|
||||
nsi = nsi.replace('.\\\\files\\\\', abs_files)
|
||||
print(f" [3] Paths ./files/ -> {abs_files}")
|
||||
|
||||
# 4. Normalize mixed slashes in injected absolute paths
|
||||
# e.g. D:\path\files\elements/10_electric -> D:\path\files\elements\10_electric
|
||||
nsi = fix_mixed_paths(nsi, files_win)
|
||||
print(" [4] Mixed slashes normalized in absolute paths")
|
||||
|
||||
with open(nsi_path, 'w', encoding='utf-8') as f:
|
||||
f.write(nsi)
|
||||
|
||||
# Verifications
|
||||
version_found = re.search(r'!define SOFT_VERSION\s+"([^"]+)"', nsi)
|
||||
if version_found:
|
||||
print(f" OK SOFT_VERSION = {version_found.group(1)}")
|
||||
else:
|
||||
print(" ERROR: SOFT_VERSION not found after patch")
|
||||
sys.exit(1)
|
||||
|
||||
count = nsi.count(abs_files)
|
||||
print(f" OK {count} occurrences of '{abs_files}'")
|
||||
|
||||
mixed = re.findall(r'[A-Z]:[^"\s\r\n]*files[^"\s\r\n]*/[^"\s\r\n]*', nsi)
|
||||
if mixed:
|
||||
print(f" WARNING: {len(mixed)} mixed paths remaining:")
|
||||
for m in mixed[:5]:
|
||||
print(f" {m}")
|
||||
else:
|
||||
print(" OK no mixed paths remaining")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
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"
|
||||
"_____________________________________________________________________")
|
||||
71
cmake/define_definitions.cmake
Normal file
@@ -0,0 +1,71 @@
|
||||
# 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_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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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()
|
||||
65
cmake/paths_compilation_installation.cmake
Normal file
@@ -0,0 +1,65 @@
|
||||
# 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_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_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()
|
||||
751
cmake/qet_compilation_vars.cmake
Normal file
@@ -0,0 +1,751 @@
|
||||
# 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/TerminalStrip/ui/addterminalstripitemdialog.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminaleditor.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripcreatordialog.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditor.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditorwindow.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriplayouteditor.ui
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriptreedockwidget.ui
|
||||
${QET_DIR}/sources/ui/aboutqetdialog.ui
|
||||
${QET_DIR}/sources/ui/alignmenttextdialog.ui
|
||||
${QET_DIR}/sources/ui/bomexportdialog.ui
|
||||
${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/diagrameditorhandlersizewidget.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/terminalnumberingdialog.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/thirdpartybinaryinstalldialog.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/wiringlistexport.h
|
||||
${QET_DIR}/sources/wiringlistexport.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/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/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/qetversion.cpp
|
||||
${QET_DIR}/sources/qetversion.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/diagramevent/diagrameventaddmacro.cpp
|
||||
${QET_DIR}/sources/diagramevent/diagrameventaddmacro.h
|
||||
|
||||
${QET_DIR}/sources/dvevent/dveventinterface.cpp
|
||||
${QET_DIR}/sources/dvevent/dveventinterface.h
|
||||
|
||||
${QET_DIR}/sources/dxf/dxftoelmt.cpp
|
||||
${QET_DIR}/sources/dxf/dxftoelmt.h
|
||||
|
||||
${QET_DIR}/sources/qet_elementscaler/qet_elementscaler.cpp
|
||||
${QET_DIR}/sources/qet_elementscaler/qet_elementscaler.h
|
||||
|
||||
${QET_DIR}/sources/editor/arceditor.cpp
|
||||
${QET_DIR}/sources/editor/arceditor.h
|
||||
${QET_DIR}/sources/editor/editorcommands.cpp
|
||||
${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/editor/UndoCommand/openelmtcommand.cpp
|
||||
${QET_DIR}/sources/editor/UndoCommand/openelmtcommand.h
|
||||
${QET_DIR}/sources/editor/UndoCommand/deletepartscommand.cpp
|
||||
${QET_DIR}/sources/editor/UndoCommand/deletepartscommand.h
|
||||
${QET_DIR}/sources/editor/UndoCommand/addpartcommand.cpp
|
||||
${QET_DIR}/sources/editor/UndoCommand/addpartcommand.h
|
||||
|
||||
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.cpp
|
||||
${QET_DIR}/sources/ElementsCollection/elementcollectionhandler.h
|
||||
${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/project/projectpropertieshandler.cpp
|
||||
${QET_DIR}/sources/project/projectpropertieshandler.h
|
||||
|
||||
${QET_DIR}/sources/properties/elementdata.cpp
|
||||
${QET_DIR}/sources/properties/elementdata.h
|
||||
${QET_DIR}/sources/properties/propertiesinterface.cpp
|
||||
${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}/pugixml/src/pugiconfig.hpp
|
||||
${QET_DIR}/pugixml/src/pugixml.cpp
|
||||
${QET_DIR}/pugixml/src/pugixml.hpp
|
||||
|
||||
${QET_DIR}/sources/qetgraphicsitem/conductor.cpp
|
||||
${QET_DIR}/sources/qetgraphicsitem/conductor.h
|
||||
${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/TerminalStrip/physicalterminal.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/physicalterminal.h
|
||||
${QET_DIR}/sources/TerminalStrip/realterminal.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/realterminal.h
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstripbridge.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstripbridge.h
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstrip.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstrip.h
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstripdata.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/terminalstripdata.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/addterminalstripitemdialog.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/addterminalstripitemdialog.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminaleditor.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminaleditor.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminalmodel.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/freeterminalmodel.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripcreatordialog.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripcreatordialog.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditor.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditor.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditorwindow.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripeditorwindow.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriplayouteditor.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriplayouteditor.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripmodel.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstripmodel.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/terminalstriptreedockwidget.h
|
||||
${QET_DIR}/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/ui/ConfigPage/terminalstripprojectconfigpage.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminalstripcommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminalstripcommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/addterminaltostripcommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/bridgeterminalscommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminallevel.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminallevel.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripcolor.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripcolor.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripdata.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/changeterminalstripdata.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/groupterminalscommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/groupterminalscommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/sortterminalstripcommand.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/UndoCommand/sortterminalstripcommand.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/demoterminalstrip.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/demoterminalstrip.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripitem.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripitem.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/trueterminalstrip.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/trueterminalstrip.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/terminalstripdrawer.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutpattern.h
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutshandler.cpp
|
||||
${QET_DIR}/sources/TerminalStrip/GraphicsItem/properties/terminalstriplayoutshandler.h
|
||||
|
||||
${QET_DIR}/sources/ui/aboutqetdialog.cpp
|
||||
${QET_DIR}/sources/ui/aboutqetdialog.h
|
||||
${QET_DIR}/sources/ui/abstractelementpropertieseditorwidget.cpp
|
||||
${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/diagrameditorhandlersizewidget.cpp
|
||||
${QET_DIR}/sources/ui/diagrameditorhandlersizewidget.h
|
||||
${QET_DIR}/sources/ui/diagrampropertiesdialog.cpp
|
||||
${QET_DIR}/sources/ui/diagrampropertiesdialog.h
|
||||
${QET_DIR}/sources/ui/diagrampropertieseditordockwidget.cpp
|
||||
${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/terminalnumberingdialog.cpp
|
||||
${QET_DIR}/sources/ui/terminalnumberingdialog.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/thirdpartybinaryinstalldialog.cpp
|
||||
${QET_DIR}/sources/ui/thirdpartybinaryinstalldialog.h
|
||||
${QET_DIR}/sources/ui/titleblockpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/titleblockpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/xrefpropertieswidget.cpp
|
||||
${QET_DIR}/sources/ui/xrefpropertieswidget.h
|
||||
${QET_DIR}/sources/ui/configpage/configpage.h
|
||||
${QET_DIR}/sources/ui/configpage/configpages.cpp
|
||||
${QET_DIR}/sources/ui/configpage/configpages.h
|
||||
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.cpp
|
||||
${QET_DIR}/sources/ui/configpage/generalconfigurationpage.h
|
||||
${QET_DIR}/sources/ui/configpage/projectconfigpages.cpp
|
||||
${QET_DIR}/sources/ui/configpage/projectconfigpages.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/changeelementdatacommand.cpp
|
||||
${QET_DIR}/sources/undocommand/changeelementdatacommand.h
|
||||
${QET_DIR}/sources/undocommand/changeelementinformationcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/changeelementinformationcommand.h
|
||||
${QET_DIR}/sources/undocommand/changetitleblockcommand.cpp
|
||||
${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/undocommand/movegraphicsitemcommand.cpp
|
||||
${QET_DIR}/sources/undocommand/movegraphicsitemcommand.h
|
||||
|
||||
${QET_DIR}/sources/utils/conductorcreator.cpp
|
||||
${QET_DIR}/sources/utils/conductorcreator.h
|
||||
${QET_DIR}/sources/utils/macosxopenevent.cpp
|
||||
${QET_DIR}/sources/utils/macosxopenevent.h
|
||||
${QET_DIR}/sources/utils/qetsettings.cpp
|
||||
${QET_DIR}/sources/utils/qetsettings.h
|
||||
${QET_DIR}/sources/utils/qetutils.cpp
|
||||
${QET_DIR}/sources/utils/qetutils.h
|
||||
|
||||
${QET_DIR}/sources/xml/terminalstripitemxml.cpp
|
||||
${QET_DIR}/sources/xml/terminalstripitemxml.h
|
||||
)
|
||||
|
||||
set(TS_FILES
|
||||
${QET_DIR}/lang/qet_ar.ts
|
||||
${QET_DIR}/lang/qet_ca.ts
|
||||
${QET_DIR}/lang/qet_cs.ts
|
||||
${QET_DIR}/lang/qet_da.ts
|
||||
${QET_DIR}/lang/qet_de.ts
|
||||
${QET_DIR}/lang/qet_el.ts
|
||||
${QET_DIR}/lang/qet_en.ts
|
||||
${QET_DIR}/lang/qet_es.ts
|
||||
${QET_DIR}/lang/qet_fi.ts
|
||||
${QET_DIR}/lang/qet_fr.ts
|
||||
${QET_DIR}/lang/qet_hr.ts
|
||||
${QET_DIR}/lang/qet_hu.ts
|
||||
${QET_DIR}/lang/qet_it.ts
|
||||
${QET_DIR}/lang/qet_ja.ts
|
||||
${QET_DIR}/lang/qet_mn.ts
|
||||
${QET_DIR}/lang/qet_nb.ts
|
||||
${QET_DIR}/lang/qet_nl.ts
|
||||
${QET_DIR}/lang/qet_nl_BE.ts
|
||||
${QET_DIR}/lang/qet_no.ts
|
||||
${QET_DIR}/lang/qet_pl.ts
|
||||
${QET_DIR}/lang/qet_pt.ts
|
||||
${QET_DIR}/lang/qet_pt_BR.ts
|
||||
${QET_DIR}/lang/qet_ro.ts
|
||||
${QET_DIR}/lang/qet_rs.ts
|
||||
${QET_DIR}/lang/qet_ru.ts
|
||||
${QET_DIR}/lang/qet_sk.ts
|
||||
${QET_DIR}/lang/qet_sl.ts
|
||||
${QET_DIR}/lang/qet_sr.ts
|
||||
${QET_DIR}/lang/qet_sv.ts
|
||||
${QET_DIR}/lang/qet_tr.ts
|
||||
${QET_DIR}/lang/qet_uk.ts
|
||||
${QET_DIR}/lang/qet_zh.ts
|
||||
)
|
||||
32
cmake/start_options.cmake
Normal file
@@ -0,0 +1,32 @@
|
||||
# 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 deactivate the --data-dir option
|
||||
add_definitions(-DQET_ALLOW_OVERRIDE_DD_OPTION)
|
||||
|
||||
#comment the line below to disable the project database export
|
||||
#add_definitions(-DQET_EXPORT_PROJECT_DB) #error Todo
|
||||
@@ -11,6 +11,7 @@ DiagramImageItem + 1007
|
||||
QetShapItem + 1008
|
||||
crossRefItem + 1009
|
||||
DynamiqueElementTextItem + 1010
|
||||
TerminalStripItem +1011
|
||||
ElementPrimitiveDecorator + 2200
|
||||
|
||||
###ELEMENT EDITOR###
|
||||
|
||||
3
doc/QElectroTech.qch
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7b7798233e8251baac7717d4b0f991ad5fdf23a76d9fbe864d363e3b93458560
|
||||
size 529821696
|
||||
1841
doc/doc-utils/delete_me.css
Normal file
18
doc/doc-utils/delete_me.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<!-- HTML footer for doxygen 1.12.0-->
|
||||
<!-- start footer part -->
|
||||
<!--BEGIN GENERATE_TREEVIEW-->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
$navpath
|
||||
<li class="footer">$generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion </li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--END GENERATE_TREEVIEW-->
|
||||
<!--BEGIN !GENERATE_TREEVIEW-->
|
||||
<hr class="footer"/><address class="footer"><small>
|
||||
$generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion
|
||||
</small></address>
|
||||
</div><!-- doc-content -->
|
||||
<!--END !GENERATE_TREEVIEW-->
|
||||
</body>
|
||||
</html>
|
||||
88
doc/doc-utils/header.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<!-- HTML header for doxygen 1.12.0-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="$langISO">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen $doxygenversion"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
|
||||
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
|
||||
<!--BEGIN PROJECT_ICON-->
|
||||
<link rel="icon" href="$relpath^$projecticon" type="image/x-icon" />
|
||||
<!--END PROJECT_ICON-->
|
||||
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<!--BEGIN DISABLE_INDEX-->
|
||||
<!--BEGIN FULL_SIDEBAR-->
|
||||
<script type="text/javascript">var page_layout=1;</script>
|
||||
<!--END FULL_SIDEBAR-->
|
||||
<!--END DISABLE_INDEX-->
|
||||
<script type="text/javascript" src="$relpath^jquery.js"></script>
|
||||
<script type="text/javascript" src="$relpath^dynsections.js"></script>
|
||||
<!--BEGIN COPY_CLIPBOARD-->
|
||||
<script type="text/javascript" src="$relpath^clipboard.js"></script>
|
||||
<!--END COPY_CLIPBOARD-->
|
||||
$treeview
|
||||
$search
|
||||
$mathjax
|
||||
$darkmode
|
||||
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
|
||||
$extrastylesheet
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>
|
||||
<script type="text/javascript">
|
||||
DoxygenAwesomeDarkModeToggle.init()
|
||||
</script>
|
||||
<script type="text/javascript" src="$relpath^doxygen-awesome-fragment-copy-button.js"></script>
|
||||
<script type="text/javascript">
|
||||
DoxygenAwesomeFragmentCopyButton.init()
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<!--BEGIN DISABLE_INDEX-->
|
||||
<!--BEGIN FULL_SIDEBAR-->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<!--END FULL_SIDEBAR-->
|
||||
<!--END DISABLE_INDEX-->
|
||||
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
|
||||
<!--BEGIN TITLEAREA-->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr id="projectrow">
|
||||
<!--BEGIN PROJECT_LOGO-->
|
||||
<td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"$logosize/></td>
|
||||
<!--END PROJECT_LOGO-->
|
||||
<!--BEGIN PROJECT_NAME-->
|
||||
<td id="projectalign">
|
||||
<div id="projectname">$projectname<!--BEGIN PROJECT_NUMBER--><span id="projectnumber"> $projectnumber</span><!--END PROJECT_NUMBER-->
|
||||
</div>
|
||||
<!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
|
||||
</td>
|
||||
<!--END PROJECT_NAME-->
|
||||
<!--BEGIN !PROJECT_NAME-->
|
||||
<!--BEGIN PROJECT_BRIEF-->
|
||||
<td>
|
||||
<div id="projectbrief">$projectbrief</div>
|
||||
</td>
|
||||
<!--END PROJECT_BRIEF-->
|
||||
<!--END !PROJECT_NAME-->
|
||||
<!--BEGIN DISABLE_INDEX-->
|
||||
<!--BEGIN SEARCHENGINE-->
|
||||
<!--BEGIN !FULL_SIDEBAR-->
|
||||
<td>$searchbox</td>
|
||||
<!--END !FULL_SIDEBAR-->
|
||||
<!--END SEARCHENGINE-->
|
||||
<!--END DISABLE_INDEX-->
|
||||
</tr>
|
||||
<!--BEGIN SEARCHENGINE-->
|
||||
<!--BEGIN FULL_SIDEBAR-->
|
||||
<tr><td colspan="2">$searchbox</td></tr>
|
||||
<!--END FULL_SIDEBAR-->
|
||||
<!--END SEARCHENGINE-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--END TITLEAREA-->
|
||||
<!-- end header part -->
|
||||
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |