Compare commits
772 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d95798f7e4 | ||
|
|
7cc3e3c196 | ||
|
|
89354dbf13 | ||
|
|
5206378a5e | ||
|
|
67cbf7b373 | ||
|
|
6e8faee328 | ||
|
|
c746f22188 | ||
|
|
23cd241aa4 | ||
|
|
e039683be7 | ||
|
|
16a8b739df | ||
|
|
f5243ff83f | ||
|
|
3ce8ef2aff | ||
|
|
6eaabc7dc0 | ||
|
|
229760c8ea | ||
|
|
da4b250024 | ||
|
|
91889729ad | ||
|
|
b709e5bccd | ||
|
|
1105ac4dd3 | ||
|
|
aa4e79b41c | ||
|
|
864ebcf66d | ||
|
|
152042cfa0 | ||
|
|
51477c6eb2 | ||
|
|
f904eeb28f | ||
|
|
acecc90776 | ||
|
|
d29e511743 | ||
|
|
01b3267072 | ||
|
|
5988d1d0ee | ||
|
|
12ec5fe3d5 | ||
|
|
d97cd43f9e | ||
|
|
f584da861d | ||
|
|
7163230255 | ||
|
|
4c79ec2c5f | ||
|
|
4e09a9a05b | ||
|
|
f8a8a5bb2d | ||
|
|
f1ac6bb634 | ||
|
|
571fae83cc | ||
|
|
1f732eb690 | ||
|
|
26627b4140 | ||
|
|
4dfe319be5 | ||
|
|
c9a3cd4f76 | ||
|
|
7e66bbf8d5 | ||
|
|
7e6b42c3c6 | ||
|
|
4699dee13f | ||
|
|
8f7f4c8c9f | ||
|
|
201dc114d1 | ||
|
|
bbfbac98de | ||
|
|
1570018ea9 | ||
|
|
069bc5eb6a | ||
|
|
edce462b9e | ||
|
|
108430deb5 | ||
|
|
6679cf5542 | ||
|
|
11ef9932a0 | ||
|
|
8d49459f4f | ||
|
|
e980cbcb61 | ||
|
|
161d8464ee | ||
|
|
d932126e1f | ||
|
|
b985fa9328 | ||
|
|
47dc61e9db | ||
|
|
bc41098483 | ||
|
|
4aaa94e2c9 | ||
|
|
8919693d10 | ||
|
|
2679e72517 | ||
|
|
5e98e54351 | ||
|
|
562fd3ff89 | ||
|
|
cdf4363df9 | ||
|
|
4184c18880 | ||
|
|
f0b0d722e2 | ||
|
|
b66d0f0959 | ||
|
|
f5cb0b4559 | ||
|
|
d74a5d8dc5 | ||
|
|
894d059466 | ||
|
|
fe158f41db | ||
|
|
21f7b43021 | ||
|
|
bb595cfbba | ||
|
|
75f7a5d447 | ||
|
|
10004277de | ||
|
|
6078090681 | ||
|
|
99af1e1f42 | ||
|
|
9ecbf856d6 | ||
|
|
95a3d9c037 | ||
|
|
c480caf7a9 | ||
|
|
64742047d1 | ||
|
|
8a3973cc97 | ||
|
|
f6669f6096 | ||
|
|
5814e66684 | ||
|
|
233bc19f73 | ||
|
|
650f05430a | ||
|
|
a2267503a2 | ||
|
|
9cbc9de146 | ||
|
|
c6cdd780a3 | ||
|
|
d97e5d28bc | ||
|
|
5eff774989 | ||
|
|
b66dd5655c | ||
|
|
afc4f8315d | ||
|
|
ce78cdbc81 | ||
|
|
a9c30af316 | ||
|
|
76818a543a | ||
|
|
72c41d8743 | ||
|
|
af7a346435 | ||
|
|
d75d903c64 | ||
|
|
b2204b599c | ||
|
|
04ede3658a | ||
|
|
ea76b58cd0 | ||
|
|
fca2efdd8c | ||
|
|
d193cfe336 | ||
|
|
deceb32fab | ||
|
|
795aa6c411 | ||
|
|
5ff9a440cf | ||
|
|
ec0e9ddab0 | ||
|
|
145ed761be | ||
|
|
c6aca97b0a | ||
|
|
bd3d238c9d | ||
|
|
3b3c750965 | ||
|
|
5924369539 | ||
|
|
b1b70e9d2f | ||
|
|
c613b2b940 | ||
|
|
303303733b | ||
|
|
1777078157 | ||
|
|
1dd7c1a7b8 | ||
|
|
20388a80c9 | ||
|
|
462416b708 | ||
|
|
fd27355a46 | ||
|
|
d3249bf5ea | ||
|
|
1e13266613 | ||
|
|
0d32865080 | ||
|
|
82ea7447a5 | ||
|
|
45aace9d48 | ||
|
|
8ec9a7f30b | ||
|
|
96df12148e | ||
|
|
f43eb70661 | ||
|
|
a9d0b3cc76 | ||
|
|
1f62bbd763 | ||
|
|
5004d6f1f0 | ||
|
|
3f1e0f54a8 | ||
|
|
2d8a94a7a7 | ||
|
|
afce3c1ce8 | ||
|
|
6de7ab2e0b | ||
|
|
83fab176b8 | ||
|
|
a82fba3e23 | ||
|
|
67f5fa513d | ||
|
|
79c08db6e5 | ||
|
|
a05cf3d466 | ||
|
|
3e09b8d506 | ||
|
|
5a42f13e1d | ||
|
|
3206196750 | ||
|
|
bbff59d793 | ||
|
|
74fb297167 | ||
|
|
a5bf12ebb9 | ||
|
|
b5dda707c4 | ||
|
|
ed3fc33f91 | ||
|
|
aed7f14705 | ||
|
|
535d17c5ba | ||
|
|
55a6da1487 | ||
|
|
b3d34210cb | ||
|
|
f0701eb48a | ||
|
|
2cc2465865 | ||
|
|
5d6dadd738 | ||
|
|
f2077882e4 | ||
|
|
153c68f0b1 | ||
|
|
0a29ae17e1 | ||
|
|
0a2eb20a59 | ||
|
|
79b3587808 | ||
|
|
570df1b679 | ||
|
|
6f106acbf8 | ||
|
|
36689620eb | ||
|
|
cab846014a | ||
|
|
ac96721ece | ||
|
|
fa63996716 | ||
|
|
6924bf1432 | ||
|
|
699e24b5ca | ||
|
|
0ff72932db | ||
|
|
51d6a2e88f | ||
|
|
69bc455ab4 | ||
|
|
c764d7c0d0 | ||
|
|
9c64abb6d1 | ||
|
|
f72947db47 | ||
|
|
60d14e2dc8 | ||
|
|
c40337ac08 | ||
|
|
9f612ec438 | ||
|
|
cbc6f14c87 | ||
|
|
48326a0064 | ||
|
|
0609f982b6 | ||
|
|
e86be2974a | ||
|
|
370832f302 | ||
|
|
534ddb9181 | ||
|
|
537388ad4c | ||
|
|
0e8b2a2ce1 | ||
|
|
01105da8fa | ||
|
|
12adde4adb | ||
|
|
427cdbecd3 | ||
|
|
2145a1f95d | ||
|
|
d2e65833d2 | ||
|
|
815fb98520 | ||
|
|
4e83db92e1 | ||
|
|
1cbf5a6e80 | ||
|
|
8ea06054e6 | ||
|
|
87bd672663 | ||
|
|
a5573a65bd | ||
|
|
25eb72397f | ||
|
|
48b91721a7 | ||
|
|
35b501f3da | ||
|
|
b4a4f5a6ab | ||
|
|
1978c743f4 | ||
|
|
2c7ef90ef2 | ||
|
|
636f645e50 | ||
|
|
a2d4593191 | ||
|
|
9dd63be262 | ||
|
|
8141ef0a46 | ||
|
|
a135fd0fac | ||
|
|
424b8d20a6 | ||
|
|
93314e841d | ||
|
|
b5a1a9b14e | ||
|
|
f7cbee4693 | ||
|
|
4909a7cf9c | ||
|
|
08dd7dccc2 | ||
|
|
f1828ea5f4 | ||
|
|
3b8f3360bd | ||
|
|
fb29cff135 | ||
|
|
b8ef7384f4 | ||
|
|
490683db1a | ||
|
|
67361af3ca | ||
|
|
5656244990 | ||
|
|
1fd195a834 | ||
|
|
a782b05db3 | ||
|
|
9dd79917ae | ||
|
|
4c4afe82d8 | ||
|
|
7e01ac00f5 | ||
|
|
a32a05efe5 | ||
|
|
eee094ff8e | ||
|
|
62537412bf | ||
|
|
2baf762ee3 | ||
|
|
2a4b14f42a | ||
|
|
f092974a01 | ||
|
|
84716e819b | ||
|
|
8dcf14f9ef | ||
|
|
08256ce3c1 | ||
|
|
eeb55435f3 | ||
|
|
03c28a32ba | ||
|
|
e729e785f1 | ||
|
|
ed9e60cfbf | ||
|
|
0fd146e7dd | ||
|
|
ff0f487265 | ||
|
|
e51229d1ed | ||
|
|
f4a3326761 | ||
|
|
bb42160260 | ||
|
|
b170aa31a3 | ||
|
|
ba9beea798 | ||
|
|
f58eb17b3a | ||
|
|
738c044337 | ||
|
|
2932240d0e | ||
|
|
4bc717477a | ||
|
|
1a47e0751a | ||
|
|
6d6b6c341a | ||
|
|
a197f5bf4e | ||
|
|
d215562a07 | ||
|
|
77822d870e | ||
|
|
8ff9019e0b | ||
|
|
fc076d334e | ||
|
|
f15cd7bedf | ||
|
|
037651ddbc | ||
|
|
94bb2b7ac6 | ||
|
|
740ef874c2 | ||
|
|
859e9049bf | ||
|
|
fb221163b9 | ||
|
|
0345196a66 | ||
|
|
32e3c6e2ed | ||
|
|
d7cd24ee61 | ||
|
|
386c8f596b | ||
|
|
87b9d568a4 | ||
|
|
371080015d | ||
|
|
d5cc850532 | ||
|
|
dd10b528db | ||
|
|
f747d19e47 | ||
|
|
5f843a0a37 | ||
|
|
92335d6a0d | ||
|
|
9aeb6c1e08 | ||
|
|
4e6d39fd2b | ||
|
|
8a3368cc3b | ||
|
|
4e1ba8e8e5 | ||
|
|
3621b5fe9a | ||
|
|
e724584288 | ||
|
|
740abaa235 | ||
|
|
3a507f5e9f | ||
|
|
767f40f0ee | ||
|
|
5b7cf0363c | ||
|
|
31b573cb65 | ||
|
|
ac3e31d77e | ||
|
|
60399c4562 | ||
|
|
53c74829ea | ||
|
|
2cf542f5cd | ||
|
|
2dc3de7879 | ||
|
|
169f434bc5 | ||
|
|
327f6d8603 | ||
|
|
7d63131af9 | ||
|
|
431013fd97 | ||
|
|
8eca32de18 | ||
|
|
abf2d3f5b6 | ||
|
|
89df16e6b3 | ||
|
|
0db982a082 | ||
|
|
2bf746665d | ||
|
|
f65e6075d7 | ||
|
|
5d89f1a9ca | ||
|
|
6d98ffaae2 | ||
|
|
0bde58a9ad | ||
|
|
3ee9aa2ca7 | ||
|
|
81dbb634f7 | ||
|
|
1418b25b16 | ||
|
|
060ba5bf63 | ||
|
|
2821232eee | ||
|
|
2bfb48460d | ||
|
|
a63e2c8ebb | ||
|
|
576db31924 | ||
|
|
816ad3ae2a | ||
|
|
4f92b3dd4c | ||
|
|
a7c5f1e6d1 | ||
|
|
62316d3f46 | ||
|
|
6ad428cf61 | ||
|
|
4e8b6d0f4b | ||
|
|
8abea637c1 | ||
|
|
fdcc28b4f8 | ||
|
|
f3e341534a | ||
|
|
46c3b2925b | ||
|
|
af02fd2f31 | ||
|
|
5df0a6223f | ||
|
|
f197259101 | ||
|
|
d9ccfe22df | ||
|
|
3bccb1eebc | ||
|
|
7a246e6406 | ||
|
|
4f2b005690 | ||
|
|
d97a923c30 | ||
|
|
cffb8d6c70 | ||
|
|
310a748769 | ||
|
|
93133e70b1 | ||
|
|
323fc620da | ||
|
|
cd5db97b57 | ||
|
|
2c1d32fe07 | ||
|
|
1f2e9ebefc | ||
|
|
1829119baa | ||
|
|
1b72aac873 | ||
|
|
a2148b2c00 | ||
|
|
616cdc00dd | ||
|
|
c5e7fa9c0d | ||
|
|
ec79a5de74 | ||
|
|
be3dbd973e | ||
|
|
5d373644e4 | ||
|
|
d6fd1b4d32 | ||
|
|
2ad371d6f9 | ||
|
|
98bf56b349 | ||
|
|
6e18028a71 | ||
|
|
bfc9f49374 | ||
|
|
a337d0a76e | ||
|
|
92502ea92e | ||
|
|
37ba533c43 | ||
|
|
59f92ec686 | ||
|
|
578e3624b8 | ||
|
|
0ecdee96b5 | ||
|
|
a982982f71 | ||
|
|
6f1f1c1339 | ||
|
|
ca4ec3e51c | ||
|
|
7995388194 | ||
|
|
7cb2063f34 | ||
|
|
1eb39795d7 | ||
|
|
52105320b4 | ||
|
|
ddd653d9e2 | ||
|
|
bff2d06fd5 | ||
|
|
e2e69363a2 | ||
|
|
e1be48438c | ||
|
|
f23b4a9422 | ||
|
|
00e8a3fbb5 | ||
|
|
5a0b34f372 | ||
|
|
71aaeb1736 | ||
|
|
10e6524dce | ||
|
|
9b5ca00680 | ||
|
|
7187103c13 | ||
|
|
51fd940033 | ||
|
|
63ab3d6df9 | ||
|
|
e496c99989 | ||
|
|
a559a9d88f | ||
|
|
c1d85c28d6 | ||
|
|
d0c1932850 | ||
|
|
0907644ebc | ||
|
|
f9da37f2e7 | ||
|
|
b23d3089b9 | ||
|
|
9ff156961f | ||
|
|
10e3578c8a | ||
|
|
cee889a12a | ||
|
|
73b48c3489 | ||
|
|
9557f55f45 | ||
|
|
76d9e339f0 | ||
|
|
6b8fe01800 | ||
|
|
c294c75185 | ||
|
|
466f3d68a9 | ||
|
|
a9ee6d3805 | ||
|
|
e60e5227f7 | ||
|
|
235f6a945e | ||
|
|
17697ad197 | ||
|
|
e0e07a2aec | ||
|
|
bee7f70014 | ||
|
|
7a7de7ff0a | ||
|
|
1ea4fcecac | ||
|
|
605cc22954 | ||
|
|
e1c0416f4d | ||
|
|
b9c15129ab | ||
|
|
ebf69ce18e | ||
|
|
8d5adbf8e7 | ||
|
|
6f40e36ec9 | ||
|
|
d26e9274fa | ||
|
|
a303313733 | ||
|
|
37b113bd93 | ||
|
|
ffe733bf8d | ||
|
|
6e16ac6f51 | ||
|
|
2f7c4eba34 | ||
|
|
045f086de5 | ||
|
|
2f25577699 | ||
|
|
e5c614e1cd | ||
|
|
0287b7be79 | ||
|
|
703dd4dfa2 | ||
|
|
ee56a7fc58 | ||
|
|
9017b5dbc7 | ||
|
|
6208e9ea43 | ||
|
|
6a21de75ba | ||
|
|
87de3efdc1 | ||
|
|
ce6b9005fe | ||
|
|
4512fb56a0 | ||
|
|
6356c8a1aa | ||
|
|
ece326a706 | ||
|
|
65c9dbeea4 | ||
|
|
ecca4e334d | ||
|
|
7ff09dfebb | ||
|
|
5c577db07a | ||
|
|
2e690fe083 | ||
|
|
a20d712aca | ||
|
|
d6c967f729 | ||
|
|
37fa0b540a | ||
|
|
f1d5e5f82d | ||
|
|
2f66dcf084 | ||
|
|
be209af3d3 | ||
|
|
64fa127746 | ||
|
|
d0254777a5 | ||
|
|
c5c19afb30 | ||
|
|
7470185d82 | ||
|
|
3161ce376b | ||
|
|
b423ff8396 | ||
|
|
49db290cf3 | ||
|
|
2eef756266 | ||
|
|
b527afd08e | ||
|
|
b38b25fa6f | ||
|
|
735f28a4a1 | ||
|
|
f21144ac79 | ||
|
|
4ecb3058a7 | ||
|
|
1a00205163 | ||
|
|
35624fe71d | ||
|
|
5cc447165b | ||
|
|
f5a887d717 | ||
|
|
e695d49b3a | ||
|
|
f87a1e535a | ||
|
|
b2440cdd29 | ||
|
|
26e9984c10 | ||
|
|
1abcfef0b0 | ||
|
|
872cdf8e0b | ||
|
|
3fe86da8b8 | ||
|
|
ffb39ad2c2 | ||
|
|
54458285c7 | ||
|
|
f7019ce8d2 | ||
|
|
8650da896c | ||
|
|
2513869762 | ||
|
|
cd84e69380 | ||
|
|
b0a0682c5e | ||
|
|
3684f3b26d | ||
|
|
1d7fe019c1 | ||
|
|
de2793c436 | ||
|
|
60270f5eef | ||
|
|
ecbdd741b1 | ||
|
|
a5f5538969 | ||
|
|
996a9626f3 | ||
|
|
c57f8cb7a2 | ||
|
|
833f271171 | ||
|
|
2f21a0bb04 | ||
|
|
e74a741677 | ||
|
|
e219544063 | ||
|
|
600a4197da | ||
|
|
de5ee0b9d9 | ||
|
|
ca10b5ff90 | ||
|
|
16414fa003 | ||
|
|
d3be383a24 | ||
|
|
fc322aed3a | ||
|
|
e65876a6da | ||
|
|
cd21f973f7 | ||
|
|
48cd5dd72d | ||
|
|
43e59bf01d | ||
|
|
81f64b86d8 | ||
|
|
7278b5e9c4 | ||
|
|
1c7ce20c60 | ||
|
|
3ea67e19a9 | ||
|
|
bd75fe23f7 | ||
|
|
aa8c554601 | ||
|
|
38ecccf975 | ||
|
|
a3be13e89c | ||
|
|
32a977a3ea | ||
|
|
9c9a109236 | ||
|
|
9eb5bbf8f6 | ||
|
|
6ec9e3da91 | ||
|
|
6c37eb45c2 | ||
|
|
c48f052711 | ||
|
|
a6098e8ea5 | ||
|
|
d01f915b4a | ||
|
|
c2ee7e5ad8 | ||
|
|
2d1a6e0261 | ||
|
|
9d7dea5bde | ||
|
|
fce42c4c47 | ||
|
|
5d0b7e7dce | ||
|
|
13cdbb9728 | ||
|
|
39e291b768 | ||
|
|
92da481ed0 | ||
|
|
c1cebdaf1b | ||
|
|
fb028380fd | ||
|
|
805c625fb1 | ||
|
|
3b86ca3153 | ||
|
|
e97fb3d5c0 | ||
|
|
1e7318ae0c | ||
|
|
502554110a | ||
|
|
a42ef608e5 | ||
|
|
d837f3734c | ||
|
|
72b744b67b | ||
|
|
5ff2238fb7 | ||
|
|
445d1497ac | ||
|
|
349d28aa0e | ||
|
|
0a3605a9d7 | ||
|
|
059c959eab | ||
|
|
7c1fda1605 | ||
|
|
cd76da1974 | ||
|
|
d619e14312 | ||
|
|
fa2c03912f | ||
|
|
acdfeaedc3 | ||
|
|
3a149e27aa | ||
|
|
bd81d317fe | ||
|
|
0d1e35e5a5 | ||
|
|
65ef00b966 | ||
|
|
26472b8428 | ||
|
|
c6ee5e12f8 | ||
|
|
df99826fdd | ||
|
|
e20b5c74c4 | ||
|
|
5cea460543 | ||
|
|
69a218ece9 | ||
|
|
1c20964aee | ||
|
|
d327a1767f | ||
|
|
f3ede2a42f | ||
|
|
62e34c0089 | ||
|
|
3779d897fa | ||
|
|
c9652998a8 | ||
|
|
72caa35ce6 | ||
|
|
b3f3506c0e | ||
|
|
450c2a8d9b | ||
|
|
8ab38995b4 | ||
|
|
d8d1080504 | ||
|
|
ff288b8209 | ||
|
|
f82b984a70 | ||
|
|
d1f6a9faec | ||
|
|
0bc2809073 | ||
|
|
5b88776a1c | ||
|
|
76c68a5887 | ||
|
|
2551ec631e | ||
|
|
6be52581e9 | ||
|
|
8a7d7ffd02 | ||
|
|
d2228c50be | ||
|
|
10d753edec | ||
|
|
09b47d7c10 | ||
|
|
661cb42fd6 | ||
|
|
3a78bb239f | ||
|
|
5d38162236 | ||
|
|
2a39bf2459 | ||
|
|
dc05fbee51 | ||
|
|
5c629d2ac0 | ||
|
|
94f2c7bec2 | ||
|
|
5f0a90998f | ||
|
|
77edbeca3b | ||
|
|
801f91d4e7 | ||
|
|
5f96139df2 | ||
|
|
0d934e4968 | ||
|
|
1200343a55 | ||
|
|
c8b051b4d2 | ||
|
|
eaf05fdfeb | ||
|
|
281b2636d7 | ||
|
|
1cbeee7ce7 | ||
|
|
4da7a9128f | ||
|
|
948026d73b | ||
|
|
a8e6b61951 | ||
|
|
612b4f3b4f | ||
|
|
024a7c418a | ||
|
|
5a402be825 | ||
|
|
a8a837b5fd | ||
|
|
6e0c3f14e1 | ||
|
|
7b0e517bef | ||
|
|
0e884e3ea0 | ||
|
|
2cce7c1c4a | ||
|
|
7ff98497c3 | ||
|
|
c15170c621 | ||
|
|
967efeedf5 | ||
|
|
7f6ab8ec3f | ||
|
|
3a631b5f09 | ||
|
|
076b9d502c | ||
|
|
a820ca500b | ||
|
|
2c29d3420a | ||
|
|
77d0b1cb78 | ||
|
|
9396ddce77 | ||
|
|
140909214a | ||
|
|
32b8c39359 | ||
|
|
3dc1235e1c | ||
|
|
442556980e | ||
|
|
78b36e32fe | ||
|
|
f0d1d7dbf3 | ||
|
|
c37695c087 | ||
|
|
c30650adc9 | ||
|
|
dacf12e62d | ||
|
|
01a4b95593 | ||
|
|
dcf3f0432b | ||
|
|
4ae30dc3e3 | ||
|
|
cd9c30791f | ||
|
|
426a47ec90 | ||
|
|
b432c25a51 | ||
|
|
478e5c9571 | ||
|
|
ccc4ae54ec | ||
|
|
8e86625679 | ||
|
|
f0e3302a21 | ||
|
|
81d5b5b080 | ||
|
|
e82f6cc980 | ||
|
|
7b3acd2fb9 | ||
|
|
cf00635632 | ||
|
|
25fd03e847 | ||
|
|
e7788a9c38 | ||
|
|
9bbd299bcd | ||
|
|
e2aa50632d | ||
|
|
de04a15cc1 | ||
|
|
eb122edffd | ||
|
|
bbe72b29ad | ||
|
|
fc11070aba | ||
|
|
2945e2da38 | ||
|
|
c14511412d | ||
|
|
5f4aeb43fb | ||
|
|
4fce79e37c | ||
|
|
d584ece32a | ||
|
|
4fb7878a43 | ||
|
|
cb37cdde72 | ||
|
|
31bb00be7d | ||
|
|
cbbd1194a3 | ||
|
|
f7b92232fd | ||
|
|
4da98f57bf | ||
|
|
45bb7b62a7 | ||
|
|
f10924eb45 | ||
|
|
7c903051eb | ||
|
|
77ac95dbe5 | ||
|
|
4c99f1d68c | ||
|
|
8b11d0d305 | ||
|
|
cca99b9c22 | ||
|
|
cf7939c771 | ||
|
|
59684c8b72 | ||
|
|
d23e55ce40 | ||
|
|
073087c5c2 | ||
|
|
a26562e52d | ||
|
|
92d8a6acfc | ||
|
|
00ad77bb49 | ||
|
|
96fc791f10 | ||
|
|
30447a4fd6 | ||
|
|
900b4b1523 | ||
|
|
294d173e7e | ||
|
|
e4a18332a0 | ||
|
|
dd97ebbbeb | ||
|
|
7a7e2b35db | ||
|
|
9b37c10f51 | ||
|
|
cec4990592 | ||
|
|
832d81dd10 | ||
|
|
08feb064db | ||
|
|
3dbac6feb9 | ||
|
|
8615282159 | ||
|
|
8a269e1a97 | ||
|
|
999c3c68e9 | ||
|
|
fdd12eaaec | ||
|
|
ecd323ef9f | ||
|
|
e556640584 | ||
|
|
304a34034b | ||
|
|
d0b004ffe7 | ||
|
|
96b2cdca20 | ||
|
|
dbed8a0c8a | ||
|
|
7538e998be | ||
|
|
5e3031743a | ||
|
|
526c662dff | ||
|
|
782a07de1f | ||
|
|
aae97159c1 | ||
|
|
cacd4a1540 | ||
|
|
0810ec9e5b | ||
|
|
9f747a4413 | ||
|
|
79afc222a0 | ||
|
|
216de41d6c | ||
|
|
96fb1dea50 | ||
|
|
6d5ee052d5 | ||
|
|
c7c2490c7f | ||
|
|
0d3dff133c | ||
|
|
36b87da83c | ||
|
|
c2c1bbcf09 | ||
|
|
4a7e3719e7 | ||
|
|
a0dbceeb3d | ||
|
|
baf6d4d0b5 | ||
|
|
1f163f9676 | ||
|
|
ed094da12b | ||
|
|
ee8c4be50f | ||
|
|
d34dfc8af2 | ||
|
|
016daa3f34 | ||
|
|
bea7c210cf | ||
|
|
d8ed3cbdba | ||
|
|
64770cdd1b | ||
|
|
dd83b15cba | ||
|
|
35a3ff520c | ||
|
|
0813792ab7 | ||
|
|
69b9dc59e8 | ||
|
|
c2ac801b3a | ||
|
|
9bd3c265a6 | ||
|
|
25dc32d5e8 | ||
|
|
fef21fb74e | ||
|
|
c3bb3a50fc | ||
|
|
5933000d46 | ||
|
|
f30cbff278 | ||
|
|
6f0047293c | ||
|
|
a9963ad2b6 | ||
|
|
8fd108c8a7 | ||
|
|
7c9bd034c3 | ||
|
|
99e3f13860 | ||
|
|
2903d7c43b | ||
|
|
399a5fce60 | ||
|
|
b67f681d66 | ||
|
|
7188dea49a | ||
|
|
9ffba0a564 | ||
|
|
d9dc0593b5 | ||
|
|
ab8c33bfeb | ||
|
|
dbb4325e40 | ||
|
|
cc9468c70d | ||
|
|
2906687c8d | ||
|
|
4f2e690a63 | ||
|
|
471c649daa | ||
|
|
3bdcbdd022 | ||
|
|
9cad4db39d | ||
|
|
b381f446aa | ||
|
|
cdf4e4386e | ||
|
|
1198d96360 | ||
|
|
7432a1d12b | ||
|
|
1ece00457a | ||
|
|
dc5b95ad85 | ||
|
|
00f0a92d40 | ||
|
|
42bbe81980 | ||
|
|
059b2b82d3 | ||
|
|
dbf7554e67 | ||
|
|
a778dad230 | ||
|
|
b43c4d689b | ||
|
|
28df204fc4 | ||
|
|
3ef49aa27d | ||
|
|
aa41876e0c | ||
|
|
293b824d86 | ||
|
|
93722d5cfd | ||
|
|
93f5e89dd5 | ||
|
|
54af882cb7 | ||
|
|
bb05708411 | ||
|
|
0b18f14089 | ||
|
|
3e5862c91e | ||
|
|
08e0a2821d | ||
|
|
23d3da001b | ||
|
|
cd48d3e979 | ||
|
|
a82b6d3366 | ||
|
|
acc4caecab | ||
|
|
c3fe888997 | ||
|
|
6376d0a1fb | ||
|
|
8b825f21c9 | ||
|
|
31d81357d4 | ||
|
|
a60e461c08 |
30
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
30
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Version Info**
|
||||
- OS: [e.g. Linux, macOS, Windows]
|
||||
- Cantata Version: [e.g. 2.3.2]
|
||||
- MPD Version: [e.g. 0.20.1]
|
||||
- CMake options (other than default):
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
860
3rdparty/ebur128/ebur128.c
vendored
860
3rdparty/ebur128/ebur128.c
vendored
File diff suppressed because it is too large
Load Diff
4
3rdparty/ebur128/ebur128.h
vendored
4
3rdparty/ebur128/ebur128.h
vendored
@@ -14,7 +14,7 @@ extern "C" {
|
||||
|
||||
#define EBUR128_VERSION_MAJOR 1
|
||||
#define EBUR128_VERSION_MINOR 2
|
||||
#define EBUR128_VERSION_PATCH 2
|
||||
#define EBUR128_VERSION_PATCH 4
|
||||
|
||||
#include <stddef.h> /* for size_t */
|
||||
|
||||
@@ -175,7 +175,7 @@ int ebur128_change_parameters(ebur128_state* st,
|
||||
|
||||
/** \brief Set the maximum window duration.
|
||||
*
|
||||
* Set the maximum duration that will be used for ebur128_window_loudness().
|
||||
* Set the maximum duration that will be used for ebur128_loudness_window().
|
||||
* Note that this destroys the current content of the audio buffer.
|
||||
*
|
||||
* @param st library state.
|
||||
|
||||
15
3rdparty/kcategorizedview/CMakeLists.txt
vendored
Normal file
15
3rdparty/kcategorizedview/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
|
||||
set(KCAT_SOURCES
|
||||
kcategorizedsortfilterproxymodel.cpp
|
||||
kcategorizedview.cpp
|
||||
kcategorydrawer.cpp
|
||||
)
|
||||
|
||||
include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${QTINCLUDES} )
|
||||
|
||||
add_definitions(-DKITEMVIEWS_NO_DEPRECATED)
|
||||
|
||||
ADD_LIBRARY(kcategorizedview STATIC
|
||||
${KCAT_SOURCES}
|
||||
)
|
||||
346
3rdparty/kcategorizedview/COPYING
vendored
Normal file
346
3rdparty/kcategorizedview/COPYING
vendored
Normal file
@@ -0,0 +1,346 @@
|
||||
NOTE! The GPL below is copyrighted by the Free Software Foundation, but
|
||||
the instance of code that it refers to (the kde programs) are copyrighted
|
||||
by the authors who actually wrote it.
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
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.
|
||||
@@ -1,482 +1,510 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 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.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, 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 library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, 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 companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, 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 library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete 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 distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
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 Library or any portion
|
||||
of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
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 Library, 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 Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you 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.
|
||||
|
||||
If distribution of 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 satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. 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.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library 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.
|
||||
|
||||
9. 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 Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
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.
|
||||
|
||||
11. 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 Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library 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 Library.
|
||||
|
||||
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.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library 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.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library 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 Library
|
||||
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 Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
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
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "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
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. 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 LIBRARY 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
|
||||
LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. 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 library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; 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.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin St, 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.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations
|
||||
below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
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 and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it
|
||||
becomes a de-facto standard. To achieve this, non-free programs must
|
||||
be allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, 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 library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete 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 distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
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 Library or any portion
|
||||
of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
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 Library, 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 Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you 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.
|
||||
|
||||
If distribution of 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 satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at least
|
||||
three years, to give the same user the materials specified in
|
||||
Subsection 6a, above, for a charge no more than the cost of
|
||||
performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be 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.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library 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.
|
||||
|
||||
9. 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 Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
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 with
|
||||
this License.
|
||||
|
||||
11. 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 Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library 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 Library.
|
||||
|
||||
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.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library 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.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser 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 Library
|
||||
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 Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
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
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "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
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. 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 LIBRARY 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
|
||||
LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms
|
||||
of the ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library.
|
||||
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 library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or
|
||||
your school, if any, to sign a "copyright disclaimer" for the library,
|
||||
if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James
|
||||
Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
||||
164
3rdparty/kcategorizedview/kcategorizedsortfilterproxymodel.cpp
vendored
Normal file
164
3rdparty/kcategorizedview/kcategorizedsortfilterproxymodel.cpp
vendored
Normal file
@@ -0,0 +1,164 @@
|
||||
/**
|
||||
* This file is part of the KDE project
|
||||
* Copyright (C) 2007 Rafael Fernández López <ereslibre@kde.org>
|
||||
* Copyright (C) 2007 John Tapsell <tapsell@kde.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "kcategorizedsortfilterproxymodel.h"
|
||||
#include "kcategorizedsortfilterproxymodel_p.h"
|
||||
|
||||
#include <QItemSelection>
|
||||
#include <QStringList>
|
||||
#include <QSize>
|
||||
#include <QCollator>
|
||||
|
||||
KCategorizedSortFilterProxyModel::KCategorizedSortFilterProxyModel(QObject *parent)
|
||||
: QSortFilterProxyModel(parent)
|
||||
, d(new KCategorizedSortFilterProxyModelPrivate())
|
||||
|
||||
{
|
||||
}
|
||||
|
||||
KCategorizedSortFilterProxyModel::~KCategorizedSortFilterProxyModel()
|
||||
{
|
||||
delete d;
|
||||
}
|
||||
|
||||
void KCategorizedSortFilterProxyModel::sort(int column, Qt::SortOrder order)
|
||||
{
|
||||
d->sortColumn = column;
|
||||
d->sortOrder = order;
|
||||
|
||||
QSortFilterProxyModel::sort(column, order);
|
||||
}
|
||||
|
||||
bool KCategorizedSortFilterProxyModel::isCategorizedModel() const
|
||||
{
|
||||
return d->categorizedModel;
|
||||
}
|
||||
|
||||
void KCategorizedSortFilterProxyModel::setCategorizedModel(bool categorizedModel)
|
||||
{
|
||||
if (categorizedModel == d->categorizedModel) {
|
||||
return;
|
||||
}
|
||||
|
||||
d->categorizedModel = categorizedModel;
|
||||
|
||||
invalidate();
|
||||
}
|
||||
|
||||
int KCategorizedSortFilterProxyModel::sortColumn() const
|
||||
{
|
||||
return d->sortColumn;
|
||||
}
|
||||
|
||||
Qt::SortOrder KCategorizedSortFilterProxyModel::sortOrder() const
|
||||
{
|
||||
return d->sortOrder;
|
||||
}
|
||||
|
||||
void KCategorizedSortFilterProxyModel::setSortCategoriesByNaturalComparison(bool sortCategoriesByNaturalComparison)
|
||||
{
|
||||
if (sortCategoriesByNaturalComparison == d->sortCategoriesByNaturalComparison) {
|
||||
return;
|
||||
}
|
||||
|
||||
d->sortCategoriesByNaturalComparison = sortCategoriesByNaturalComparison;
|
||||
|
||||
invalidate();
|
||||
}
|
||||
|
||||
bool KCategorizedSortFilterProxyModel::sortCategoriesByNaturalComparison() const
|
||||
{
|
||||
return d->sortCategoriesByNaturalComparison;
|
||||
}
|
||||
|
||||
/*
|
||||
#ifndef KITEMVIEWS_NO_DEPRECATED
|
||||
int KCategorizedSortFilterProxyModel::naturalCompare(const QString &a, const QString &b)
|
||||
{
|
||||
QCollator c;
|
||||
c.setNumericMode(true);
|
||||
c.setCaseSensitivity(Qt::CaseSensitive);
|
||||
return c.compare(a, b);
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
|
||||
bool KCategorizedSortFilterProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
|
||||
{
|
||||
if (d->categorizedModel) {
|
||||
int compare = compareCategories(left, right);
|
||||
|
||||
if (compare > 0) { // left is greater than right
|
||||
return false;
|
||||
} else if (compare < 0) { // left is less than right
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return subSortLessThan(left, right);
|
||||
}
|
||||
|
||||
bool KCategorizedSortFilterProxyModel::subSortLessThan(const QModelIndex &left, const QModelIndex &right) const
|
||||
{
|
||||
return QSortFilterProxyModel::lessThan(left, right);
|
||||
}
|
||||
|
||||
int KCategorizedSortFilterProxyModel::compareCategories(const QModelIndex &left, const QModelIndex &right) const
|
||||
{
|
||||
QVariant l = (left.model() ? left.model()->data(left, CategorySortRole) : QVariant());
|
||||
QVariant r = (right.model() ? right.model()->data(right, CategorySortRole) : QVariant());
|
||||
|
||||
Q_ASSERT(l.isValid());
|
||||
Q_ASSERT(r.isValid());
|
||||
Q_ASSERT(l.type() == r.type());
|
||||
|
||||
if (l.type() == QVariant::String) {
|
||||
QString lstr = l.toString();
|
||||
QString rstr = r.toString();
|
||||
|
||||
if (d->sortCategoriesByNaturalComparison) {
|
||||
return d->m_collator.compare(lstr, rstr);
|
||||
} else {
|
||||
if (lstr < rstr) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (lstr > rstr) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
qlonglong lint = l.toLongLong();
|
||||
qlonglong rint = r.toLongLong();
|
||||
|
||||
if (lint < rint) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (lint > rint) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
186
3rdparty/kcategorizedview/kcategorizedsortfilterproxymodel.h
vendored
Normal file
186
3rdparty/kcategorizedview/kcategorizedsortfilterproxymodel.h
vendored
Normal file
@@ -0,0 +1,186 @@
|
||||
/*
|
||||
* This file is part of the KDE project
|
||||
* Copyright (C) 2007 Rafael Fernández López <ereslibre@kde.org>
|
||||
* Copyright (C) 2007 John Tapsell <tapsell@kde.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef KCATEGORIZEDSORTFILTERPROXYMODEL_H
|
||||
#define KCATEGORIZEDSORTFILTERPROXYMODEL_H
|
||||
|
||||
#include <QSortFilterProxyModel>
|
||||
|
||||
//#include <kitemviews_export.h>
|
||||
class KCategorizedSortFilterProxyModelPrivate;
|
||||
|
||||
class QItemSelection;
|
||||
|
||||
/**
|
||||
* @class KCategorizedSortFilterProxyModel kcategorizedsortfilterproxymodel.h KCategorizedSortFilterProxyModel
|
||||
*
|
||||
* This class lets you categorize a view. It is meant to be used along with
|
||||
* KCategorizedView class.
|
||||
*
|
||||
* In general terms all you need to do is to reimplement subSortLessThan() and
|
||||
* compareCategories() methods. In order to make categorization work, you need
|
||||
* to also call setCategorizedModel() class to enable it, since the categorization
|
||||
* is disabled by default.
|
||||
*
|
||||
* @see KCategorizedView
|
||||
*
|
||||
* @author Rafael Fernández López <ereslibre@kde.org>
|
||||
*/
|
||||
class /*KITEMVIEWS_EXPORT*/ KCategorizedSortFilterProxyModel
|
||||
: public QSortFilterProxyModel
|
||||
{
|
||||
public:
|
||||
enum AdditionalRoles {
|
||||
// Note: use printf "0x%08X\n" $(($RANDOM*$RANDOM))
|
||||
// to define additional roles.
|
||||
CategoryDisplayRole = 0x17CE990A, ///< This role is used for asking the category to a given index
|
||||
|
||||
CategorySortRole = 0x27857E60 ///< This role is used for sorting categories. You can return a
|
||||
///< string or a long long value. Strings will be sorted alphabetically
|
||||
///< while long long will be sorted by their value. Please note that this
|
||||
///< value won't be shown on the view, is only for sorting purposes. What will
|
||||
///< be shown as "Category" on the view will be asked with the role
|
||||
///< CategoryDisplayRole.
|
||||
};
|
||||
|
||||
KCategorizedSortFilterProxyModel(QObject *parent = nullptr);
|
||||
virtual ~KCategorizedSortFilterProxyModel();
|
||||
|
||||
/**
|
||||
* Overridden from QSortFilterProxyModel. Sorts the source model using
|
||||
* @p column for the given @p order.
|
||||
*/
|
||||
void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* @return whether the model is categorized or not. Disabled by default.
|
||||
*/
|
||||
bool isCategorizedModel() const;
|
||||
|
||||
/**
|
||||
* Enables or disables the categorization feature.
|
||||
*
|
||||
* @param categorizedModel whether to enable or disable the categorization feature.
|
||||
*/
|
||||
void setCategorizedModel(bool categorizedModel);
|
||||
|
||||
/**
|
||||
* @return the column being used for sorting.
|
||||
*/
|
||||
int sortColumn() const;
|
||||
|
||||
/**
|
||||
* @return the sort order being used for sorting.
|
||||
*/
|
||||
Qt::SortOrder sortOrder() const;
|
||||
|
||||
/**
|
||||
* Set if the sorting using CategorySortRole will use a natural comparison
|
||||
* in the case that strings were returned. If enabled, QCollator
|
||||
* will be used for sorting.
|
||||
*
|
||||
* @param sortCategoriesByNaturalComparison whether to sort using a natural comparison or not.
|
||||
*/
|
||||
void setSortCategoriesByNaturalComparison(bool sortCategoriesByNaturalComparison);
|
||||
|
||||
/**
|
||||
* @return whether it is being used a natural comparison for sorting. Enabled by default.
|
||||
*/
|
||||
bool sortCategoriesByNaturalComparison() const;
|
||||
|
||||
/**
|
||||
* Does a natural comparing of the strings. A negative value is returned if \a a
|
||||
* is smaller than \a b. A positive value is returned if \a a is greater than \a b. 0
|
||||
* is returned if both values are equal.
|
||||
* @deprecated
|
||||
* Use QCollator instead.
|
||||
*/
|
||||
/*
|
||||
#ifndef KITEMVIEWS_NO_DEPRECATED
|
||||
KITEMVIEWS_DEPRECATED static int naturalCompare(const QString &a, const QString &b);
|
||||
#endif
|
||||
*/
|
||||
protected:
|
||||
/**
|
||||
* Overridden from QSortFilterProxyModel. If you are subclassing
|
||||
* KCategorizedSortFilterProxyModel, you will probably not need to reimplement this
|
||||
* method.
|
||||
*
|
||||
* It calls compareCategories() to sort by category. If the both items are in the
|
||||
* same category (i.e. compareCategories returns 0), then subSortLessThan is called.
|
||||
*
|
||||
* @return Returns true if the item @p left is less than the item @p right when sorting.
|
||||
*
|
||||
* @warning You usually won't need to reimplement this method when subclassing
|
||||
* from KCategorizedSortFilterProxyModel.
|
||||
*/
|
||||
bool lessThan(const QModelIndex &left, const QModelIndex &right) const Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* This method has a similar purpose as lessThan() has on QSortFilterProxyModel.
|
||||
* It is used for sorting items that are in the same category.
|
||||
*
|
||||
* @return Returns true if the item @p left is less than the item @p right when sorting.
|
||||
*/
|
||||
virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const;
|
||||
|
||||
/**
|
||||
* This method compares the category of the @p left index with the category
|
||||
* of the @p right index.
|
||||
*
|
||||
* Internally and if not reimplemented, this method will ask for @p left and
|
||||
* @p right models for role CategorySortRole. In order to correctly sort
|
||||
* categories, the data() metod of the model should return a qlonglong (or numeric) value, or
|
||||
* a QString object. QString objects will be sorted with QString::localeAwareCompare if
|
||||
* sortCategoriesByNaturalComparison() is true.
|
||||
*
|
||||
* @note Please have present that:
|
||||
* QString(QChar(QChar::ObjectReplacementCharacter)) >
|
||||
* QString(QChar(QChar::ReplacementCharacter)) >
|
||||
* [ all possible strings ] >
|
||||
* QString();
|
||||
*
|
||||
* This means that QString() will be sorted the first one, while
|
||||
* QString(QChar(QChar::ObjectReplacementCharacter)) and
|
||||
* QString(QChar(QChar::ReplacementCharacter)) will be sorted in last
|
||||
* position.
|
||||
*
|
||||
* @warning Please note that data() method of the model should return always
|
||||
* information of the same type. If you return a QString for an index,
|
||||
* you should return always QStrings for all indexes for role CategorySortRole
|
||||
* in order to correctly sort categories. You can't mix by returning
|
||||
* a QString for one index, and a qlonglong for other.
|
||||
*
|
||||
* @note If you need a more complex layout, you will have to reimplement this
|
||||
* method.
|
||||
*
|
||||
* @return A negative value if the category of @p left should be placed before the
|
||||
* category of @p right. 0 if @p left and @p right are on the same category, and
|
||||
* a positive value if the category of @p left should be placed after the
|
||||
* category of @p right.
|
||||
*/
|
||||
virtual int compareCategories(const QModelIndex &left, const QModelIndex &right) const;
|
||||
|
||||
private:
|
||||
KCategorizedSortFilterProxyModelPrivate *const d;
|
||||
};
|
||||
|
||||
#endif // KCATEGORIZEDSORTFILTERPROXYMODEL_H
|
||||
53
3rdparty/kcategorizedview/kcategorizedsortfilterproxymodel_p.h
vendored
Normal file
53
3rdparty/kcategorizedview/kcategorizedsortfilterproxymodel_p.h
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* This file is part of the KDE project
|
||||
* Copyright (C) 2007 Rafael Fernández López <ereslibre@kde.org>
|
||||
* Copyright (C) 2007 John Tapsell <tapsell@kde.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef KCATEGORIZEDSORTFILTERPROXYMODEL_P_H
|
||||
#define KCATEGORIZEDSORTFILTERPROXYMODEL_P_H
|
||||
|
||||
#include <QtCore/QCollator>
|
||||
|
||||
#include "kcategorizedsortfilterproxymodel.h"
|
||||
|
||||
class KCategorizedSortFilterProxyModelPrivate
|
||||
{
|
||||
public:
|
||||
KCategorizedSortFilterProxyModelPrivate()
|
||||
: sortColumn(0)
|
||||
, sortOrder(Qt::AscendingOrder)
|
||||
, categorizedModel(false)
|
||||
, sortCategoriesByNaturalComparison(true)
|
||||
{
|
||||
m_collator.setNumericMode(true);
|
||||
m_collator.setCaseSensitivity(Qt::CaseSensitive);
|
||||
}
|
||||
|
||||
~KCategorizedSortFilterProxyModelPrivate()
|
||||
{
|
||||
}
|
||||
|
||||
int sortColumn;
|
||||
Qt::SortOrder sortOrder;
|
||||
bool categorizedModel;
|
||||
bool sortCategoriesByNaturalComparison;
|
||||
QCollator m_collator;
|
||||
};
|
||||
|
||||
#endif
|
||||
1532
3rdparty/kcategorizedview/kcategorizedview.cpp
vendored
Normal file
1532
3rdparty/kcategorizedview/kcategorizedview.cpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
349
3rdparty/kcategorizedview/kcategorizedview.h
vendored
Normal file
349
3rdparty/kcategorizedview/kcategorizedview.h
vendored
Normal file
@@ -0,0 +1,349 @@
|
||||
/**
|
||||
* This file is part of the KDE project
|
||||
* Copyright (C) 2007, 2009 Rafael Fernández López <ereslibre@kde.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef KCATEGORIZEDVIEW_H
|
||||
#define KCATEGORIZEDVIEW_H
|
||||
|
||||
#include <QListView>
|
||||
|
||||
//#include <kitemviews_export.h>
|
||||
|
||||
class KCategoryDrawer;
|
||||
|
||||
/**
|
||||
* @class KCategorizedView kcategorizedview.h KCategorizedView
|
||||
*
|
||||
* @short Item view for listing items in a categorized fashion optionally
|
||||
*
|
||||
* KCategorizedView basically has the same functionality as QListView, only that it also lets you
|
||||
* layout items in a way that they are categorized visually.
|
||||
*
|
||||
* For it to work you will need to set a KCategorizedSortFilterProxyModel and a KCategoryDrawer
|
||||
* with methods setModel() and setCategoryDrawer() respectively. Also, the model will need to be
|
||||
* flagged as categorized with KCategorizedSortFilterProxyModel::setCategorizedModel(true).
|
||||
*
|
||||
* The way it works (if categorization enabled):
|
||||
*
|
||||
* - When sorting, it does more things than QListView does. It will ask the model for the
|
||||
* special role CategorySortRole (@see KCategorizedSortFilterProxyModel). This can return
|
||||
* a QString or an int in order to tell the view the order of categories. In this sense, for
|
||||
* instance, if we are sorting by name ascending, "A" would be before than "B". If we are
|
||||
* sorting by size ascending, 512 bytes would be before 1024 bytes. This way categories are
|
||||
* also sorted.
|
||||
*
|
||||
* - When the view has to paint, it will ask the model with the role CategoryDisplayRole
|
||||
* (@see KCategorizedSortFilterProxyModel). It will for instance return "F" for "foo.pdf" if
|
||||
* we are sorting by name ascending, or "Small" if a certain item has 100 bytes, for example.
|
||||
*
|
||||
* For drawing categories, KCategoryDrawer will be used. You can inherit this class to do your own
|
||||
* drawing.
|
||||
*
|
||||
* @note All examples cited before talk about filesystems and such, but have present that this
|
||||
* is a completely generic class, and it can be used for whatever your purpose is. For
|
||||
* instance when talking about animals, you can separate them by "Mammal" and "Oviparous". In
|
||||
* this very case, for example, the CategorySortRole and the CategoryDisplayRole could be the
|
||||
* same ("Mammal" and "Oviparous").
|
||||
*
|
||||
* @note There is a really performance boost if CategorySortRole returns an int instead of a QString.
|
||||
* Have present that this role is asked (n * log n) times when sorting and compared. Comparing
|
||||
* ints is always faster than comparing strings, whithout mattering how fast the string
|
||||
* comparison is. Consider thinking of a way of returning ints instead of QStrings if your
|
||||
* model can contain a high number of items.
|
||||
*
|
||||
* @warning Note that for really drawing items in blocks you will need some things to be done:
|
||||
* - The model set to this view has to be (or inherit if you want to do special stuff
|
||||
* in it) KCategorizedSortFilterProxyModel.
|
||||
* - This model needs to be set setCategorizedModel to true.
|
||||
* - Set a category drawer by calling setCategoryDrawer.
|
||||
*
|
||||
* @see KCategorizedSortFilterProxyModel, KCategoryDrawer
|
||||
*
|
||||
* @author Rafael Fernández López <ereslibre@kde.org>
|
||||
*/
|
||||
class /*KITEMVIEWS_EXPORT*/ KCategorizedView
|
||||
: public QListView
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(int categorySpacing READ categorySpacing WRITE setCategorySpacing)
|
||||
Q_PROPERTY(bool alternatingBlockColors READ alternatingBlockColors WRITE setAlternatingBlockColors)
|
||||
Q_PROPERTY(bool collapsibleBlocks READ collapsibleBlocks WRITE setCollapsibleBlocks)
|
||||
|
||||
public:
|
||||
KCategorizedView(QWidget *parent = nullptr);
|
||||
|
||||
~KCategorizedView();
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
void setModel(QAbstractItemModel *model) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Calls to setGridSizeOwn().
|
||||
*/
|
||||
void setGridSize(const QSize &size);
|
||||
|
||||
/**
|
||||
* @warning note that setGridSize is not virtual in the base class (QListView), so if you are
|
||||
* calling to this method, make sure you have a KCategorizedView pointer around. This
|
||||
* means that something like:
|
||||
* @code
|
||||
* QListView *lv = new KCategorizedView();
|
||||
* lv->setGridSize(mySize);
|
||||
* @endcode
|
||||
*
|
||||
* will not call to the expected setGridSize method. Instead do something like this:
|
||||
*
|
||||
* @code
|
||||
* QListView *lv;
|
||||
* ...
|
||||
* KCategorizedView *cv = qobject_cast<KCategorizedView*>(lv);
|
||||
* if (cv) {
|
||||
* cv->setGridSizeOwn(mySize);
|
||||
* } else {
|
||||
* lv->setGridSize(mySize);
|
||||
* }
|
||||
* @endcode
|
||||
*
|
||||
* @note this method will call to QListView::setGridSize among other operations.
|
||||
*
|
||||
* @since 4.4
|
||||
*/
|
||||
void setGridSizeOwn(const QSize &size);
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
QRect visualRect(const QModelIndex &index) const Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Returns the current category drawer.
|
||||
*/
|
||||
KCategoryDrawer *categoryDrawer() const;
|
||||
|
||||
/**
|
||||
* The category drawer that will be used for drawing categories.
|
||||
*/
|
||||
void setCategoryDrawer(KCategoryDrawer *categoryDrawer);
|
||||
|
||||
/**
|
||||
* @return Category spacing. The spacing between categories.
|
||||
*
|
||||
* @since 4.4
|
||||
*/
|
||||
int categorySpacing() const;
|
||||
|
||||
/**
|
||||
* Stablishes the category spacing. This is the spacing between categories.
|
||||
*
|
||||
* @since 4.4
|
||||
*/
|
||||
void setCategorySpacing(int categorySpacing);
|
||||
|
||||
/**
|
||||
* @return Whether blocks should be drawn with alternating colors.
|
||||
*
|
||||
* @since 4.4
|
||||
*/
|
||||
bool alternatingBlockColors() const;
|
||||
|
||||
/**
|
||||
* Sets whether blocks should be drawn with alternating colors.
|
||||
*
|
||||
* @since 4.4
|
||||
*/
|
||||
void setAlternatingBlockColors(bool enable);
|
||||
|
||||
/**
|
||||
* @return Whether blocks can be collapsed or not.
|
||||
*
|
||||
* @since 4.4
|
||||
*/
|
||||
bool collapsibleBlocks() const;
|
||||
|
||||
/**
|
||||
* Sets whether blocks can be collapsed or not.
|
||||
*
|
||||
* @since 4.4
|
||||
*/
|
||||
void setCollapsibleBlocks(bool enable);
|
||||
|
||||
/**
|
||||
* @return Block of indexes that are into @p category.
|
||||
*
|
||||
* @since 4.5
|
||||
*/
|
||||
QModelIndexList block(const QString &category);
|
||||
|
||||
/**
|
||||
* @return Block of indexes that are represented by @p representative.
|
||||
*
|
||||
* @since 4.5
|
||||
*/
|
||||
QModelIndexList block(const QModelIndex &representative);
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
QModelIndex indexAt(const QPoint &point) const Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
void reset() Q_DECL_OVERRIDE;
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Reimplemented from QWidget.
|
||||
*/
|
||||
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QWidget.
|
||||
*/
|
||||
void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
virtual void setSelection(const QRect &rect,
|
||||
QItemSelectionModel::SelectionFlags flags) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QWidget.
|
||||
*/
|
||||
void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QWidget.
|
||||
*/
|
||||
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QWidget.
|
||||
*/
|
||||
void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QWidget.
|
||||
*/
|
||||
void leaveEvent(QEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
void startDrag(Qt::DropActions supportedActions) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
void dragLeaveEvent(QDragLeaveEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
virtual QModelIndex moveCursor(CursorAction cursorAction,
|
||||
Qt::KeyboardModifiers modifiers) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
virtual void rowsAboutToBeRemoved(const QModelIndex &parent,
|
||||
int start,
|
||||
int end) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
void updateGeometries() Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
virtual void currentChanged(const QModelIndex ¤t,
|
||||
const QModelIndex &previous) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
virtual void dataChanged(const QModelIndex &topLeft,
|
||||
const QModelIndex &bottomRight,
|
||||
const QVector<int> &roles = QVector<int>()) Q_DECL_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Reimplemented from QAbstractItemView.
|
||||
*/
|
||||
virtual void rowsInserted(const QModelIndex &parent,
|
||||
int start,
|
||||
int end) Q_DECL_OVERRIDE;
|
||||
|
||||
protected Q_SLOTS:
|
||||
/**
|
||||
* @internal
|
||||
* @warning Deprecated since 4.4.
|
||||
*/
|
||||
/*
|
||||
#ifndef KITEMVIEWS_NO_DEPRECATED
|
||||
virtual KITEMVIEWS_DEPRECATED void rowsInsertedArtifficial(const QModelIndex &parent,
|
||||
int start,
|
||||
int end);
|
||||
#endif
|
||||
*/
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @warning Deprecated since 4.4.
|
||||
*/
|
||||
/*
|
||||
#ifndef KITEMVIEWS_NO_DEPRECATED
|
||||
virtual KITEMVIEWS_DEPRECATED void rowsRemoved(const QModelIndex &parent,
|
||||
int start,
|
||||
int end);
|
||||
#endif
|
||||
*/
|
||||
/**
|
||||
* @internal
|
||||
* Reposition items as needed.
|
||||
*/
|
||||
virtual void slotLayoutChanged();
|
||||
|
||||
private:
|
||||
class Private;
|
||||
Private *const d;
|
||||
|
||||
Q_PRIVATE_SLOT(d, void _k_slotCollapseOrExpandClicked(QModelIndex))
|
||||
};
|
||||
|
||||
#endif // KCATEGORIZEDVIEW_H
|
||||
159
3rdparty/kcategorizedview/kcategorizedview_p.h
vendored
Normal file
159
3rdparty/kcategorizedview/kcategorizedview_p.h
vendored
Normal file
@@ -0,0 +1,159 @@
|
||||
/**
|
||||
* This file is part of the KDE project
|
||||
* Copyright (C) 2007, 2009 Rafael Fernández López <ereslibre@kde.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef KCATEGORIZEDVIEW_P_H
|
||||
#define KCATEGORIZEDVIEW_P_H
|
||||
|
||||
#include "kcategorizedview.h"
|
||||
|
||||
class KCategorizedSortFilterProxyModel;
|
||||
class KCategoryDrawer;
|
||||
class KCategoryDrawerV2;
|
||||
class KCategoryDrawerV3;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class Q_DECL_HIDDEN KCategorizedView::Private
|
||||
{
|
||||
public:
|
||||
struct Block;
|
||||
struct Item;
|
||||
|
||||
Private(KCategorizedView *q);
|
||||
~Private();
|
||||
|
||||
/**
|
||||
* @return whether this view has all required elements to be categorized.
|
||||
*/
|
||||
bool isCategorized() const;
|
||||
|
||||
/**
|
||||
* @return the block rect for the representative @p representative.
|
||||
*/
|
||||
QStyleOptionViewItem blockRect(const QModelIndex &representative);
|
||||
|
||||
/**
|
||||
* Returns the first and last element that intersects with rect.
|
||||
*
|
||||
* @note see that here we cannot take out items between first and last (as we could
|
||||
* do with the rubberband).
|
||||
*
|
||||
* Complexity: O(log(n)) where n is model()->rowCount().
|
||||
*/
|
||||
QPair<QModelIndex, QModelIndex> intersectingIndexesWithRect(const QRect &rect) const;
|
||||
|
||||
/**
|
||||
* Returns the position of the block of @p category.
|
||||
*
|
||||
* Complexity: O(n) where n is the number of different categories when the block has been
|
||||
* marked as in quarantine. O(1) the rest of the times (the vast majority).
|
||||
*/
|
||||
QPoint blockPosition(const QString &category);
|
||||
|
||||
/**
|
||||
* Returns the height of the block determined by @p category.
|
||||
*/
|
||||
int blockHeight(const QString &category);
|
||||
|
||||
/**
|
||||
* Returns the actual viewport width.
|
||||
*/
|
||||
int viewportWidth() const;
|
||||
|
||||
/**
|
||||
* Marks all elements as in quarantine.
|
||||
*
|
||||
* Complexity: O(n) where n is model()->rowCount().
|
||||
*
|
||||
* @warning this is an expensive operation
|
||||
*/
|
||||
void regenerateAllElements();
|
||||
|
||||
/**
|
||||
* Update internal information, and keep sync with the real information that the model contains.
|
||||
*/
|
||||
void rowsInserted(const QModelIndex &parent, int start, int end);
|
||||
|
||||
/**
|
||||
* Returns @p rect in viewport terms, taking in count horizontal and vertical offsets.
|
||||
*/
|
||||
QRect mapToViewport(const QRect &rect) const;
|
||||
|
||||
/**
|
||||
* Returns @p rect in absolute terms, converted from viewport position.
|
||||
*/
|
||||
QRect mapFromViewport(const QRect &rect) const;
|
||||
|
||||
/**
|
||||
* Returns the height of the highest element in last row. This is only applicable if there is
|
||||
* no grid set and uniformItemSizes is false.
|
||||
*
|
||||
* @param block in which block are we searching. Necessary to stop the search if we hit the
|
||||
* first item in this block.
|
||||
*/
|
||||
int highestElementInLastRow(const Block &block) const;
|
||||
|
||||
/**
|
||||
* Returns whether the view has a valid grid size.
|
||||
*/
|
||||
bool hasGrid() const;
|
||||
|
||||
/**
|
||||
* Returns the category for the given index.
|
||||
*/
|
||||
QString categoryForIndex(const QModelIndex &index) const;
|
||||
|
||||
/**
|
||||
* Updates the visual rect for item when flow is LeftToRight.
|
||||
*/
|
||||
void leftToRightVisualRect(const QModelIndex &index, Item &item,
|
||||
const Block &block, const QPoint &blockPos) const;
|
||||
|
||||
/**
|
||||
* Updates the visual rect for item when flow is TopToBottom.
|
||||
* @note we only support viewMode == ListMode in this case.
|
||||
*/
|
||||
void topToBottomVisualRect(const QModelIndex &index, Item &item,
|
||||
const Block &block, const QPoint &blockPos) const;
|
||||
|
||||
/**
|
||||
* Called when expand or collapse has been clicked on the category drawer.
|
||||
*/
|
||||
void _k_slotCollapseOrExpandClicked(QModelIndex);
|
||||
|
||||
KCategorizedView *q;
|
||||
KCategorizedSortFilterProxyModel *proxyModel;
|
||||
KCategoryDrawer *categoryDrawer;
|
||||
int categorySpacing;
|
||||
bool alternatingBlockColors;
|
||||
bool collapsibleBlocks;
|
||||
|
||||
Block *hoveredBlock;
|
||||
QString hoveredCategory;
|
||||
QModelIndex hoveredIndex;
|
||||
|
||||
QPoint pressedPosition;
|
||||
QRect rubberBandRect;
|
||||
|
||||
QHash<QString, Block> blocks;
|
||||
};
|
||||
|
||||
#endif // KCATEGORIZEDVIEW_P_H
|
||||
205
3rdparty/kcategorizedview/kcategorydrawer.cpp
vendored
Normal file
205
3rdparty/kcategorizedview/kcategorydrawer.cpp
vendored
Normal file
@@ -0,0 +1,205 @@
|
||||
/**
|
||||
* This file is part of the KDE project
|
||||
* Copyright (C) 2007, 2009 Rafael Fernández López <ereslibre@kde.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "kcategorydrawer.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <QStyleOption>
|
||||
#include <QApplication>
|
||||
|
||||
#include <kcategorizedview.h>
|
||||
#include <kcategorizedsortfilterproxymodel.h>
|
||||
|
||||
class KCategoryDrawerPrivate
|
||||
{
|
||||
public:
|
||||
KCategoryDrawerPrivate(KCategorizedView *view)
|
||||
: view(view)
|
||||
{
|
||||
}
|
||||
|
||||
~KCategoryDrawerPrivate()
|
||||
{
|
||||
}
|
||||
|
||||
KCategorizedView *view;
|
||||
};
|
||||
|
||||
KCategoryDrawer::KCategoryDrawer(KCategorizedView *view)
|
||||
: QObject(view)
|
||||
, d(new KCategoryDrawerPrivate(view))
|
||||
{
|
||||
}
|
||||
|
||||
KCategoryDrawer::~KCategoryDrawer()
|
||||
{
|
||||
delete d;
|
||||
}
|
||||
|
||||
void KCategoryDrawer::drawCategory(const QModelIndex &index,
|
||||
int /*sortRole*/,
|
||||
const QStyleOption &option,
|
||||
QPainter *painter) const
|
||||
{
|
||||
painter->setRenderHint(QPainter::Antialiasing);
|
||||
|
||||
const QString category = index.model()->data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
|
||||
const QRect optRect = option.rect;
|
||||
QFont font(QApplication::font());
|
||||
font.setBold(true);
|
||||
const QFontMetrics fontMetrics = QFontMetrics(font);
|
||||
|
||||
QColor outlineColor = option.palette.text().color();
|
||||
outlineColor.setAlphaF(0.35);
|
||||
|
||||
//BEGIN: top left corner
|
||||
{
|
||||
painter->save();
|
||||
painter->setPen(outlineColor);
|
||||
const QPointF topLeft(optRect.topLeft());
|
||||
QRectF arc(topLeft, QSizeF(4, 4));
|
||||
arc.translate(0.5, 0.5);
|
||||
painter->drawArc(arc, 1440, 1440);
|
||||
painter->restore();
|
||||
}
|
||||
//END: top left corner
|
||||
|
||||
//BEGIN: left vertical line
|
||||
{
|
||||
QPoint start(optRect.topLeft());
|
||||
start.ry() += 3;
|
||||
QPoint verticalGradBottom(optRect.topLeft());
|
||||
verticalGradBottom.ry() += fontMetrics.height() + 5;
|
||||
QLinearGradient gradient(start, verticalGradBottom);
|
||||
gradient.setColorAt(0, outlineColor);
|
||||
gradient.setColorAt(1, Qt::transparent);
|
||||
painter->fillRect(QRect(start, QSize(1, fontMetrics.height() + 5)), gradient);
|
||||
}
|
||||
//END: left vertical line
|
||||
|
||||
//BEGIN: horizontal line
|
||||
{
|
||||
QPoint start(optRect.topLeft());
|
||||
start.rx() += 3;
|
||||
QPoint horizontalGradTop(optRect.topLeft());
|
||||
horizontalGradTop.rx() += optRect.width() - 6;
|
||||
painter->fillRect(QRect(start, QSize(optRect.width() - 6, 1)), outlineColor);
|
||||
}
|
||||
//END: horizontal line
|
||||
|
||||
//BEGIN: top right corner
|
||||
{
|
||||
painter->save();
|
||||
painter->setPen(outlineColor);
|
||||
QPointF topRight(optRect.topRight());
|
||||
topRight.rx() -= 4;
|
||||
QRectF arc(topRight, QSizeF(4, 4));
|
||||
arc.translate(0.5, 0.5);
|
||||
painter->drawArc(arc, 0, 1440);
|
||||
painter->restore();
|
||||
}
|
||||
//END: top right corner
|
||||
|
||||
//BEGIN: right vertical line
|
||||
{
|
||||
QPoint start(optRect.topRight());
|
||||
start.ry() += 3;
|
||||
QPoint verticalGradBottom(optRect.topRight());
|
||||
verticalGradBottom.ry() += fontMetrics.height() + 5;
|
||||
QLinearGradient gradient(start, verticalGradBottom);
|
||||
gradient.setColorAt(0, outlineColor);
|
||||
gradient.setColorAt(1, Qt::transparent);
|
||||
painter->fillRect(QRect(start, QSize(1, fontMetrics.height() + 5)), gradient);
|
||||
}
|
||||
//END: right vertical line
|
||||
|
||||
//BEGIN: text
|
||||
{
|
||||
QRect textRect(option.rect);
|
||||
textRect.setTop(textRect.top() + 7);
|
||||
textRect.setLeft(textRect.left() + 7);
|
||||
textRect.setHeight(fontMetrics.height());
|
||||
textRect.setRight(textRect.right() - 7);
|
||||
|
||||
painter->save();
|
||||
painter->setFont(font);
|
||||
QColor penColor(option.palette.text().color());
|
||||
penColor.setAlphaF(0.6);
|
||||
painter->setPen(penColor);
|
||||
painter->drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, category);
|
||||
painter->restore();
|
||||
}
|
||||
//END: text
|
||||
}
|
||||
|
||||
int KCategoryDrawer::categoryHeight(const QModelIndex &index, const QStyleOption &option) const
|
||||
{
|
||||
Q_UNUSED(index);
|
||||
Q_UNUSED(option)
|
||||
|
||||
QFont font(QApplication::font());
|
||||
font.setBold(true);
|
||||
QFontMetrics fontMetrics(font);
|
||||
|
||||
const int height = fontMetrics.height() + 1 /* 1 pixel-width gradient */
|
||||
+ 11 /* top and bottom separation */;
|
||||
return height;
|
||||
}
|
||||
|
||||
int KCategoryDrawer::leftMargin() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int KCategoryDrawer::rightMargin() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
KCategorizedView *KCategoryDrawer::view() const
|
||||
{
|
||||
return d->view;
|
||||
}
|
||||
|
||||
void KCategoryDrawer::mouseButtonPressed(const QModelIndex &, const QRect &, QMouseEvent *event)
|
||||
{
|
||||
event->ignore();
|
||||
}
|
||||
|
||||
void KCategoryDrawer::mouseButtonReleased(const QModelIndex &, const QRect &, QMouseEvent *event)
|
||||
{
|
||||
event->ignore();
|
||||
}
|
||||
|
||||
void KCategoryDrawer::mouseMoved(const QModelIndex &, const QRect &, QMouseEvent *event)
|
||||
{
|
||||
event->ignore();
|
||||
}
|
||||
|
||||
void KCategoryDrawer::mouseButtonDoubleClicked(const QModelIndex &, const QRect &, QMouseEvent *event)
|
||||
{
|
||||
event->ignore();
|
||||
}
|
||||
|
||||
void KCategoryDrawer::mouseLeft(const QModelIndex &, const QRect &)
|
||||
{
|
||||
}
|
||||
|
||||
#include "moc_kcategorydrawer.cpp"
|
||||
186
3rdparty/kcategorizedview/kcategorydrawer.h
vendored
Normal file
186
3rdparty/kcategorizedview/kcategorydrawer.h
vendored
Normal file
@@ -0,0 +1,186 @@
|
||||
/**
|
||||
* This file is part of the KDE project
|
||||
* Copyright (C) 2007, 2009 Rafael Fernández López <ereslibre@kde.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef KCATEGORYDRAWER_H
|
||||
#define KCATEGORYDRAWER_H
|
||||
|
||||
//#include <kitemviews_export.h>
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <QMouseEvent>
|
||||
class KCategoryDrawerPrivate;
|
||||
|
||||
class QPainter;
|
||||
class QModelIndex;
|
||||
class QStyleOption;
|
||||
|
||||
class KCategorizedView;
|
||||
|
||||
/**
|
||||
* @class KCategoryDrawer kcategorydrawer.h KCategoryDrawer
|
||||
*
|
||||
* The category drawing is performed by this class. It also gives information about the category
|
||||
* height and margins.
|
||||
*
|
||||
*/
|
||||
class /*KITEMVIEWS_EXPORT*/ KCategoryDrawer
|
||||
: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
friend class KCategorizedView;
|
||||
|
||||
public:
|
||||
/*
|
||||
* Construct a category drawer for a given view
|
||||
*
|
||||
* @since 5.0
|
||||
*/
|
||||
KCategoryDrawer(KCategorizedView *view);
|
||||
virtual ~KCategoryDrawer();
|
||||
|
||||
/**
|
||||
* @return The view this category drawer is associated with.
|
||||
*/
|
||||
KCategorizedView *view() const;
|
||||
|
||||
/**
|
||||
* This method purpose is to draw a category represented by the given
|
||||
* @param index with the given @param sortRole sorting role
|
||||
*
|
||||
* @note This method will be called one time per category, always with the
|
||||
* first element in that category
|
||||
*/
|
||||
virtual void drawCategory(const QModelIndex &index,
|
||||
int sortRole,
|
||||
const QStyleOption &option,
|
||||
QPainter *painter) const;
|
||||
|
||||
/**
|
||||
* @return The category height for the category representated by index @p index with
|
||||
* style options @p option.
|
||||
*/
|
||||
virtual int categoryHeight(const QModelIndex &index, const QStyleOption &option) const;
|
||||
|
||||
/**
|
||||
* @note 0 by default
|
||||
*
|
||||
* @since 4.4
|
||||
*/
|
||||
virtual int leftMargin() const;
|
||||
|
||||
/**
|
||||
* @note 0 by default
|
||||
*
|
||||
* @since 4.4
|
||||
*/
|
||||
virtual int rightMargin() const;
|
||||
|
||||
Q_SIGNALS:
|
||||
/**
|
||||
* This signal becomes emitted when collapse or expand has been clicked.
|
||||
*/
|
||||
void collapseOrExpandClicked(const QModelIndex &index);
|
||||
|
||||
/**
|
||||
* Emit this signal on your subclass implementation to notify that something happened. Usually
|
||||
* this will be triggered when you have received an event, and its position matched some "hot spot".
|
||||
*
|
||||
* You give this action the integer you want, and having connected this signal to your code,
|
||||
* the connected slot can perform the needed changes (view, model, selection model, delegate...)
|
||||
*/
|
||||
void actionRequested(int action, const QModelIndex &index);
|
||||
|
||||
protected:
|
||||
/**
|
||||
* Method called when the mouse button has been pressed.
|
||||
*
|
||||
* @param index The representative index of the block of items.
|
||||
* @param blockRect The rect occupied by the block of items.
|
||||
* @param event The mouse event.
|
||||
*
|
||||
* @warning You explicitly have to determine whether the event has been accepted or not. You
|
||||
* have to call event->accept() or event->ignore() at all possible case branches in
|
||||
* your code.
|
||||
*/
|
||||
virtual void mouseButtonPressed(const QModelIndex &index, const QRect &blockRect, QMouseEvent *event);
|
||||
|
||||
/**
|
||||
* Method called when the mouse button has been released.
|
||||
*
|
||||
* @param index The representative index of the block of items.
|
||||
* @param blockRect The rect occupied by the block of items.
|
||||
* @param event The mouse event.
|
||||
*
|
||||
* @warning You explicitly have to determine whether the event has been accepted or not. You
|
||||
* have to call event->accept() or event->ignore() at all possible case branches in
|
||||
* your code.
|
||||
*/
|
||||
virtual void mouseButtonReleased(const QModelIndex &index, const QRect &blockRect, QMouseEvent *event);
|
||||
|
||||
/**
|
||||
* Method called when the mouse has been moved.
|
||||
*
|
||||
* @param index The representative index of the block of items.
|
||||
* @param blockRect The rect occupied by the block of items.
|
||||
* @param event The mouse event.
|
||||
*/
|
||||
virtual void mouseMoved(const QModelIndex &index, const QRect &blockRect, QMouseEvent *event);
|
||||
|
||||
/**
|
||||
* Method called when the mouse button has been double clicked.
|
||||
*
|
||||
* @param index The representative index of the block of items.
|
||||
* @param blockRect The rect occupied by the block of items.
|
||||
* @param event The mouse event.
|
||||
*
|
||||
* @warning You explicitly have to determine whether the event has been accepted or not. You
|
||||
* have to call event->accept() or event->ignore() at all possible case branches in
|
||||
* your code.
|
||||
*/
|
||||
virtual void mouseButtonDoubleClicked(const QModelIndex &index, const QRect &blockRect, QMouseEvent *event);
|
||||
|
||||
/**
|
||||
* Method called when the mouse button has left this block.
|
||||
*
|
||||
* @param index The representative index of the block of items.
|
||||
* @param blockRect The rect occupied by the block of items.
|
||||
*/
|
||||
virtual void mouseLeft(const QModelIndex &index, const QRect &blockRect);
|
||||
|
||||
private:
|
||||
KCategoryDrawerPrivate *const d;
|
||||
};
|
||||
|
||||
#ifndef KITEMVIEWS_NO_DEPRECATED
|
||||
/**
|
||||
* @class KCategoryDrawerV3 kcategorydrawer.h KCategoryDrawer
|
||||
*
|
||||
* @deprecated Use KCategoryDrawer instead
|
||||
*/
|
||||
/*
|
||||
class KCategoryDrawerV3 : public KCategoryDrawer
|
||||
{
|
||||
public:
|
||||
KITEMVIEWS_DEPRECATED KCategoryDrawerV3(KCategorizedView *view) : KCategoryDrawer(view) {}
|
||||
};
|
||||
*/
|
||||
#endif
|
||||
|
||||
#endif // KCATEGORYDRAWER_H
|
||||
18
3rdparty/qtiocompressor/CMakeLists.txt
vendored
18
3rdparty/qtiocompressor/CMakeLists.txt
vendored
@@ -1,18 +1,4 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
|
||||
set(IOCOMPRESSOR-SOURCES
|
||||
qtiocompressor.cpp
|
||||
)
|
||||
|
||||
set(IOCOMPRESSOR-MOC-HEADERS
|
||||
qtiocompressor.h
|
||||
)
|
||||
|
||||
QT5_WRAP_CPP(IOCOMPRESSOR-SOURCES-MOC ${IOCOMPRESSOR-MOC-HEADERS})
|
||||
|
||||
include_directories(${QTINCLUDES} ${ZLIB_INCLUDE_DIRS})
|
||||
|
||||
ADD_LIBRARY(qtiocompressor STATIC
|
||||
${IOCOMPRESSOR-SOURCES}
|
||||
${IOCOMPRESSOR-SOURCES-MOC}
|
||||
)
|
||||
include_directories(${QTINCLUDES} ${ZLIB_INCLUDE_DIRS} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
|
||||
ADD_LIBRARY(qtiocompressor STATIC qtiocompressor.cpp)
|
||||
|
||||
6
3rdparty/qtiocompressor/qtiocompressor.cpp
vendored
6
3rdparty/qtiocompressor/qtiocompressor.cpp
vendored
@@ -117,7 +117,7 @@ QtIOCompressorPrivate::~QtIOCompressorPrivate()
|
||||
void QtIOCompressorPrivate::flushZlib(int flushMode)
|
||||
{
|
||||
// No input.
|
||||
zlibStream.next_in = 0;
|
||||
zlibStream.next_in = nullptr;
|
||||
zlibStream.avail_in = 0;
|
||||
int status;
|
||||
do {
|
||||
@@ -388,7 +388,7 @@ bool QtIOCompressor::open(OpenMode mode)
|
||||
if (read) {
|
||||
d->state = QtIOCompressorPrivate::NotReadFirstByte;
|
||||
d->zlibStream.avail_in = 0;
|
||||
d->zlibStream.next_in = 0;
|
||||
d->zlibStream.next_in = nullptr;
|
||||
if (d->streamFormat == QtIOCompressor::ZlibFormat) {
|
||||
status = inflateInit(&d->zlibStream);
|
||||
} else {
|
||||
@@ -622,3 +622,5 @@ bool QtIOCompressor::checkGzipSupport(const char * const versionString)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#include "moc_qtiocompressor.cpp"
|
||||
|
||||
14
3rdparty/qtiocompressor/qtiocompressor.h
vendored
14
3rdparty/qtiocompressor/qtiocompressor.h
vendored
@@ -72,18 +72,18 @@ class QT_QTIOCOMPRESSOR_EXPORT QtIOCompressor : public QIODevice
|
||||
public:
|
||||
enum StreamFormat { ZlibFormat, GzipFormat, RawZipFormat };
|
||||
QtIOCompressor(QIODevice *device, int compressionLevel = 6, int bufferSize = 65500);
|
||||
~QtIOCompressor();
|
||||
~QtIOCompressor() override;
|
||||
void setStreamFormat(StreamFormat format);
|
||||
StreamFormat streamFormat() const;
|
||||
static bool isGzipSupported();
|
||||
bool isSequential() const;
|
||||
bool open(OpenMode mode);
|
||||
void close();
|
||||
bool isSequential() const override;
|
||||
bool open(OpenMode mode) override;
|
||||
void close() override;
|
||||
void flush();
|
||||
qint64 bytesAvailable() const;
|
||||
qint64 bytesAvailable() const override;
|
||||
protected:
|
||||
qint64 readData(char * data, qint64 maxSize);
|
||||
qint64 writeData(const char * data, qint64 maxSize);
|
||||
qint64 readData(char * data, qint64 maxSize) override;
|
||||
qint64 writeData(const char * data, qint64 maxSize) override;
|
||||
private:
|
||||
static bool checkGzipSupport(const char * const versionString);
|
||||
QtIOCompressorPrivate *d_ptr;
|
||||
|
||||
9
3rdparty/qtsingleapplication/CMakeLists.txt
vendored
9
3rdparty/qtsingleapplication/CMakeLists.txt
vendored
@@ -7,12 +7,6 @@ set(SINGLEAPP-SOURCES
|
||||
qtsinglecoreapplication.cpp
|
||||
)
|
||||
|
||||
set(SINGLEAPP-MOC-HEADERS
|
||||
qtlocalpeer.h
|
||||
qtsingleapplication.h
|
||||
qtsinglecoreapplication.h
|
||||
)
|
||||
|
||||
include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${QTINCLUDES} )
|
||||
|
||||
if(WIN32)
|
||||
@@ -21,9 +15,6 @@ else()
|
||||
set(SINGLEAPP-SOURCES ${SINGLEAPP-SOURCES} qtlockedfile_unix.cpp)
|
||||
endif()
|
||||
|
||||
qt5_wrap_cpp(SINGLEAPP-SOURCES-MOC ${SINGLEAPP-MOC-HEADERS})
|
||||
|
||||
ADD_LIBRARY(qtsingleapplication STATIC
|
||||
${SINGLEAPP-SOURCES}
|
||||
${SINGLEAPP-SOURCES-MOC}
|
||||
)
|
||||
|
||||
2
3rdparty/qtsingleapplication/qtlocalpeer.cpp
vendored
2
3rdparty/qtsingleapplication/qtlocalpeer.cpp
vendored
@@ -210,3 +210,5 @@ void QtLocalPeer::receiveConnection()
|
||||
emit messageReceived(uMsg); //### (might take a long time to return)
|
||||
emit messageReceived(QString::fromUtf8(uMsg));
|
||||
}
|
||||
|
||||
#include "moc_qtlocalpeer.cpp"
|
||||
|
||||
5
3rdparty/qtsingleapplication/qtlocalpeer.h
vendored
5
3rdparty/qtsingleapplication/qtlocalpeer.h
vendored
@@ -44,6 +44,8 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QTLOCALPEER_H
|
||||
#define QTLOCALPEER_H
|
||||
|
||||
#include <QLocalServer>
|
||||
#include <QLocalSocket>
|
||||
@@ -81,3 +83,6 @@ protected:
|
||||
private:
|
||||
static const char* ack;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ bool QtLockedFile::unlock()
|
||||
rmutex = 0;
|
||||
}
|
||||
else {
|
||||
foreach(Qt::HANDLE mutex, rmutexes) {
|
||||
for (Qt::HANDLE mutex: rmutexes) {
|
||||
ReleaseMutex(mutex);
|
||||
CloseHandle(mutex);
|
||||
}
|
||||
|
||||
@@ -367,3 +367,5 @@ void QtSingleApplication::activateWindow()
|
||||
|
||||
\obsolete
|
||||
*/
|
||||
|
||||
#include "moc_qtsingleapplication.cpp"
|
||||
|
||||
@@ -44,6 +44,8 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QTSA_QTSINGLEAPLICATION_H
|
||||
#define QTSA_QTSINGLEAPLICATION_H
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
@@ -109,3 +111,6 @@ private:
|
||||
QtLocalPeer *peer;
|
||||
QWidget *actWin;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -167,3 +167,5 @@ QString QtSingleCoreApplication::id() const
|
||||
|
||||
\sa sendMessage()
|
||||
*/
|
||||
|
||||
#include "moc_qtsinglecoreapplication.cpp"
|
||||
|
||||
@@ -44,6 +44,8 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef QTSINGLECOREAPLICATION_H
|
||||
#define QTSINGLECOREAPLICATION_H
|
||||
|
||||
#include <QCoreApplication>
|
||||
|
||||
@@ -75,3 +77,6 @@ Q_SIGNALS:
|
||||
private:
|
||||
QtLocalPeer* peer;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
7
3rdparty/qxt/CMakeLists.txt
vendored
7
3rdparty/qxt/CMakeLists.txt
vendored
@@ -5,10 +5,6 @@ set(QXT-SOURCES
|
||||
qxtglobalshortcut.cpp
|
||||
)
|
||||
|
||||
set(QXT-MOC-HEADERS
|
||||
qxtglobalshortcut.h
|
||||
)
|
||||
|
||||
if (NOT WIN32 AND NOT APPLE)
|
||||
find_package(X11)
|
||||
include_directories(${X11_INCLUDE_DIR})
|
||||
@@ -24,9 +20,6 @@ else()
|
||||
set(QXT-SOURCES ${QXT-SOURCES} qxtglobalshortcut_x11.cpp)
|
||||
endif()
|
||||
|
||||
QT5_WRAP_CPP(QXT-SOURCES-MOC ${QXT-MOC-HEADERS})
|
||||
|
||||
ADD_LIBRARY(qxt STATIC
|
||||
${QXT-SOURCES}
|
||||
${QXT-SOURCES-MOC}
|
||||
)
|
||||
|
||||
2
3rdparty/qxt/qxtglobalshortcut.cpp
vendored
2
3rdparty/qxt/qxtglobalshortcut.cpp
vendored
@@ -206,3 +206,5 @@ void QxtGlobalShortcut::setDisabled(bool disabled)
|
||||
{
|
||||
qxt_d().enabled = !disabled;
|
||||
}
|
||||
|
||||
#include "moc_qxtglobalshortcut.cpp"
|
||||
|
||||
94
3rdparty/solid-lite/CMakeLists.txt
vendored
94
3rdparty/solid-lite/CMakeLists.txt
vendored
@@ -45,25 +45,10 @@ set(solidlite_LIB_SRCS
|
||||
backends/shared/rootdevice.cpp
|
||||
)
|
||||
|
||||
set(solidlite_LIB_MOC_HDRS
|
||||
block.h
|
||||
deviceinterface.h
|
||||
devicemanager_p.h
|
||||
devicenotifier.h
|
||||
device_p.h
|
||||
genericinterface.h
|
||||
portablemediaplayer.h
|
||||
storageaccess.h
|
||||
storagedrive.h
|
||||
opticaldrive.h
|
||||
storagevolume.h
|
||||
opticaldisc.h
|
||||
ifaces/device.h
|
||||
ifaces/devicemanager.h
|
||||
backends/shared/rootdevice.h
|
||||
)
|
||||
macro_optional_find_package( UDev )
|
||||
macro_log_feature( UDEV_FOUND "UDev" "UDev support for Solid" "http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" FALSE "" "Allows Solid to use UDev to provide information about devices on Linux" )
|
||||
if (NOT WIN32 AND NOT APPLE AND WITH_SOLID_UDISKS2)
|
||||
find_package( UDev REQUIRED)
|
||||
macro_log_feature( UDEV_FOUND "UDev" "UDev support for Solid" "http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" FALSE "" "Allows Solid to use UDev to provide information about devices on Linux" )
|
||||
endif()
|
||||
configure_file( config-solid.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-solid.h )
|
||||
|
||||
|
||||
@@ -80,15 +65,6 @@ set(solidlite_LIB_MOC_HDRS
|
||||
backends/shared/udevqtdevice.cpp
|
||||
)
|
||||
|
||||
set(solidlite_LIB_MOC_HDRS ${solidlite_LIB_MOC_HDRS}
|
||||
backends/udev/udevblock.h
|
||||
backends/udev/udevdevice.h
|
||||
backends/udev/udevdeviceinterface.h
|
||||
backends/udev/udevgenericinterface.h
|
||||
backends/udev/udevmanager.h
|
||||
backends/udev/udevportablemediaplayer.h
|
||||
backends/shared/udevqt.h
|
||||
)
|
||||
# check for media-player-info (runtime-only optional dependency)
|
||||
set(XDG_DATA_DIRS_ENV $ENV{XDG_DATA_DIRS}) # if(ENV{..}) does not work for me
|
||||
if(XDG_DATA_DIRS_ENV)
|
||||
@@ -130,19 +106,6 @@ set(solidlite_LIB_MOC_HDRS
|
||||
backends/hal/halstorageaccess.cpp
|
||||
backends/hal/halstorage.cpp
|
||||
backends/hal/halvolume.cpp
|
||||
)
|
||||
set(solidlite_LIB_MOC_HDRS ${solidlite_LIB_MOC_HDRS}
|
||||
backends/hal/halblock.h
|
||||
backends/hal/halcdrom.h
|
||||
backends/hal/haldevice.h
|
||||
backends/hal/haldeviceinterface.h
|
||||
backends/hal/halgenericinterface.h
|
||||
backends/hal/halmanager.h
|
||||
backends/hal/halopticaldisc.h
|
||||
backends/hal/halportablemediaplayer.h
|
||||
backends/hal/halstorageaccess.h
|
||||
backends/hal/halstorage.h
|
||||
backends/hal/halvolume.h
|
||||
)
|
||||
|
||||
# FIXME: this should work on more Unix systems
|
||||
@@ -164,20 +127,6 @@ set(solidlite_LIB_MOC_HDRS
|
||||
backends/udisks2/udisksgenericinterface.cpp
|
||||
backends/udisks2/dbus/manager.cpp
|
||||
)
|
||||
set(solidlite_LIB_MOC_HDRS ${solidlite_LIB_MOC_HDRS}
|
||||
backends/udisks2/udisksblock.h
|
||||
backends/udisks2/udisksdevicebackend.h
|
||||
backends/udisks2/udisksdevice.h
|
||||
backends/udisks2/udisksdeviceinterface.h
|
||||
backends/udisks2/udisksgenericinterface.h
|
||||
backends/udisks2/udisksmanager.h
|
||||
backends/udisks2/udisksopticaldisc.h
|
||||
backends/udisks2/udisksopticaldrive.h
|
||||
backends/udisks2/udisksstorageaccess.h
|
||||
backends/udisks2/udisksstoragedrive.h
|
||||
backends/udisks2/udisksstoragevolume.h
|
||||
backends/udisks2/dbus/manager.h
|
||||
)
|
||||
else ( )
|
||||
message(STATUS "Building Solid UDisks backend." )
|
||||
set(solidlite_LIB_SRCS ${solidlite_LIB_SRCS}
|
||||
@@ -192,18 +141,6 @@ set(solidlite_LIB_MOC_HDRS
|
||||
backends/udisks/udisksstorageaccess.cpp
|
||||
backends/udisks/udisksgenericinterface.cpp
|
||||
)
|
||||
set(solidlite_LIB_MOC_HDRS ${solidlite_LIB_MOC_HDRS}
|
||||
backends/udisks/udisksblock.h
|
||||
backends/udisks/udisksdevice.h
|
||||
backends/udisks/udisksdeviceinterface.h
|
||||
backends/udisks/udisksgenericinterface.h
|
||||
backends/udisks/udisksopticaldisc.h
|
||||
backends/udisks/udisksopticaldrive.h
|
||||
backends/udisks/udisksmanager.h
|
||||
backends/udisks/udisksstorageaccess.h
|
||||
backends/udisks/udisksstoragedrive.h
|
||||
backends/udisks/udisksstoragevolume.h
|
||||
)
|
||||
endif ( )
|
||||
endif ()
|
||||
|
||||
@@ -218,12 +155,6 @@ if(APPLE)
|
||||
backends/iokit/iokitdeviceinterface.cpp
|
||||
backends/iokit/iokitgenericinterface.cpp
|
||||
)
|
||||
set(solidlite_LIB_MOC_HDRS ${solidlite_LIB_MOC_HDRS}
|
||||
backends/iokit/iokitdevice.h
|
||||
backends/iokit/iokitdeviceinterface.h
|
||||
backends/iokit/iokitgenericinterface.h
|
||||
backends/iokit/iokitmanager.h
|
||||
)
|
||||
endif(APPLE)
|
||||
|
||||
if(WIN32)
|
||||
@@ -255,19 +186,6 @@ if(WIN32)
|
||||
backends/wmi/wmivolume.cpp
|
||||
|
||||
)
|
||||
set(solidlite_LIB_MOC_HDRS ${solidlite_LIB_MOC_HDRS}
|
||||
backends/wmi/wmiblock.h
|
||||
backends/wmi/wmicdrom.h
|
||||
backends/wmi/wmidevice.h
|
||||
backends/wmi/wmideviceinterface.h
|
||||
backends/wmi/wmigenericinterface.h
|
||||
backends/wmi/wmimanager.h
|
||||
backends/wmi/wmiopticaldisc.h
|
||||
backends/wmi/wmiportablemediaplayer.h
|
||||
backends/wmi/wmistorageaccess.h
|
||||
backends/wmi/wmistorage.h
|
||||
backends/wmi/wmivolume.h
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -284,9 +202,7 @@ if(APPLE)
|
||||
set(solidlite_OPTIONAL_LIBS ${IOKIT_LIBRARY})
|
||||
endif()
|
||||
|
||||
QT5_WRAP_CPP(solidlite_LIB_MOC_SRCS ${solidlite_LIB_MOC_HDRS} )
|
||||
add_library(solidlite ${solidlite_LIB_SRCS} ${solidlite_LIB_MOC_SRCS})
|
||||
# set_target_properties(solidlite PROPERTIES AUTOMOC TRUE)
|
||||
add_library(solidlite ${solidlite_LIB_SRCS})
|
||||
|
||||
if ( UDEV_FOUND )
|
||||
set(solidlite_OPTIONAL_LIBS ${solidlite_OPTIONAL_LIBS} ${UDEV_LIBS})
|
||||
|
||||
@@ -50,4 +50,4 @@ QString Block::device() const
|
||||
return m_device->prop("block.device").toString();
|
||||
}
|
||||
|
||||
//#include "backends/hal/halblock.moc"
|
||||
#include "backends/hal/moc_halblock.cpp"
|
||||
|
||||
8
3rdparty/solid-lite/backends/hal/halblock.h
vendored
8
3rdparty/solid-lite/backends/hal/halblock.h
vendored
@@ -37,11 +37,11 @@ class Block : public DeviceInterface, virtual public Solid::Ifaces::Block
|
||||
|
||||
public:
|
||||
Block(HalDevice *device);
|
||||
virtual ~Block();
|
||||
~Block() override;
|
||||
|
||||
virtual int deviceMajor() const;
|
||||
virtual int deviceMinor() const;
|
||||
virtual QString device() const;
|
||||
int deviceMajor() const override;
|
||||
int deviceMinor() const override;
|
||||
QString device() const override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,7 +174,7 @@ bool Solid::Backends::Hal::Cdrom::callSystemEject()
|
||||
m_process = FstabHandling::callSystemCommand("eject", device,
|
||||
this, SLOT(slotProcessFinished(int,QProcess::ExitStatus)));
|
||||
|
||||
return m_process!=0;
|
||||
return m_process!=nullptr;
|
||||
}
|
||||
|
||||
void Cdrom::slotDBusReply(const QDBusMessage &/*reply*/)
|
||||
@@ -215,4 +215,4 @@ void Cdrom::slotEjectDone(int error, const QString &errorString)
|
||||
emit ejectDone(static_cast<Solid::ErrorType>(error), errorString, m_device->udi());
|
||||
}
|
||||
|
||||
//#include "backends/hal/halcdrom.moc"
|
||||
#include "backends/hal/moc_halcdrom.cpp"
|
||||
|
||||
16
3rdparty/solid-lite/backends/hal/halcdrom.h
vendored
16
3rdparty/solid-lite/backends/hal/halcdrom.h
vendored
@@ -42,17 +42,17 @@ class Cdrom : public Storage, virtual public Solid::Ifaces::OpticalDrive
|
||||
|
||||
public:
|
||||
Cdrom(HalDevice *device);
|
||||
virtual ~Cdrom();
|
||||
~Cdrom() override;
|
||||
|
||||
virtual Solid::OpticalDrive::MediumTypes supportedMedia() const;
|
||||
virtual int readSpeed() const;
|
||||
virtual int writeSpeed() const;
|
||||
virtual QList<int> writeSpeeds() const;
|
||||
virtual bool eject();
|
||||
Solid::OpticalDrive::MediumTypes supportedMedia() const override;
|
||||
int readSpeed() const override;
|
||||
int writeSpeed() const override;
|
||||
QList<int> writeSpeeds() const override;
|
||||
bool eject() override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void ejectPressed(const QString &udi);
|
||||
void ejectDone(Solid::ErrorType error, QVariant errorData, const QString &udi);
|
||||
void ejectPressed(const QString &udi) override;
|
||||
void ejectDone(Solid::ErrorType error, QVariant errorData, const QString &udi) override;
|
||||
void ejectRequested(const QString &udi);
|
||||
|
||||
private Q_SLOTS:
|
||||
|
||||
@@ -107,7 +107,7 @@ public:
|
||||
udi,
|
||||
"org.freedesktop.Hal.Device",
|
||||
QDBusConnection::systemBus()),
|
||||
cacheSynced(false), parent(0) { }
|
||||
cacheSynced(false), parent(nullptr) { }
|
||||
void checkCache(const QString &key = QString());
|
||||
|
||||
QDBusInterface device;
|
||||
@@ -447,10 +447,10 @@ bool HalDevice::queryDeviceInterface(const Solid::DeviceInterface::Type &type) c
|
||||
QObject *HalDevice::createDeviceInterface(const Solid::DeviceInterface::Type &type)
|
||||
{
|
||||
if (!queryDeviceInterface(type)) {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
DeviceInterface *iface = 0;
|
||||
DeviceInterface *iface = nullptr;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
@@ -848,4 +848,4 @@ QString HalDevice::volumeDescription() const
|
||||
return description;
|
||||
}
|
||||
|
||||
//#include "backends/hal/haldevice.moc"
|
||||
#include "backends/hal/moc_haldevice.cpp"
|
||||
|
||||
20
3rdparty/solid-lite/backends/hal/haldevice.h
vendored
20
3rdparty/solid-lite/backends/hal/haldevice.h
vendored
@@ -47,19 +47,19 @@ class HalDevice : public Solid::Ifaces::Device
|
||||
|
||||
public:
|
||||
HalDevice(const QString &udi);
|
||||
virtual ~HalDevice();
|
||||
~HalDevice() override;
|
||||
|
||||
virtual QString udi() const;
|
||||
virtual QString parentUdi() const;
|
||||
QString udi() const override;
|
||||
QString parentUdi() const override;
|
||||
|
||||
virtual QString vendor() const;
|
||||
virtual QString product() const;
|
||||
virtual QString icon() const;
|
||||
virtual QStringList emblems() const;
|
||||
virtual QString description() const;
|
||||
QString vendor() const override;
|
||||
QString product() const override;
|
||||
QString icon() const override;
|
||||
QStringList emblems() const override;
|
||||
QString description() const override;
|
||||
|
||||
virtual bool queryDeviceInterface(const Solid::DeviceInterface::Type &type) const;
|
||||
virtual QObject *createDeviceInterface(const Solid::DeviceInterface::Type &type);
|
||||
bool queryDeviceInterface(const Solid::DeviceInterface::Type &type) const override;
|
||||
QObject *createDeviceInterface(const Solid::DeviceInterface::Type &type) override;
|
||||
|
||||
public:
|
||||
QVariant prop(const QString &key) const;
|
||||
|
||||
@@ -31,4 +31,4 @@ DeviceInterface::~DeviceInterface()
|
||||
{
|
||||
}
|
||||
|
||||
//#include "backends/hal/haldeviceinterface.moc"
|
||||
#include "backends/hal/moc_haldeviceinterface.cpp"
|
||||
|
||||
@@ -39,7 +39,7 @@ class DeviceInterface : public QObject, virtual public Solid::Ifaces::DeviceInte
|
||||
Q_INTERFACES(Solid::Ifaces::DeviceInterface)
|
||||
public:
|
||||
DeviceInterface(HalDevice *device);
|
||||
virtual ~DeviceInterface();
|
||||
~DeviceInterface() override;
|
||||
|
||||
protected:
|
||||
HalDevice *m_device;
|
||||
|
||||
@@ -181,7 +181,7 @@ QProcess *Solid::Backends::Hal::FstabHandling::callSystemCommand(const QString &
|
||||
return process;
|
||||
} else {
|
||||
delete process;
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,4 +53,4 @@ bool GenericInterface::propertyExists(const QString &key) const
|
||||
return m_device->propertyExists(key);
|
||||
}
|
||||
|
||||
//#include "backends/hal/halgenericinterface.moc"
|
||||
#include "backends/hal/moc_halgenericinterface.cpp"
|
||||
|
||||
@@ -40,15 +40,15 @@ class GenericInterface : public DeviceInterface, virtual public Solid::Ifaces::G
|
||||
|
||||
public:
|
||||
GenericInterface(HalDevice *device);
|
||||
virtual ~GenericInterface();
|
||||
~GenericInterface() override;
|
||||
|
||||
virtual QVariant property(const QString &key) const;
|
||||
virtual QMap<QString, QVariant> allProperties() const;
|
||||
virtual bool propertyExists(const QString &key) const;
|
||||
QVariant property(const QString &key) const override;
|
||||
QMap<QString, QVariant> allProperties() const override;
|
||||
bool propertyExists(const QString &key) const override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void propertyChanged(const QMap<QString,int> &changes);
|
||||
void conditionRaised(const QString &condition, const QString &reason);
|
||||
void propertyChanged(const QMap<QString,int> &changes) override;
|
||||
void conditionRaised(const QString &condition, const QString &reason) override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ QObject *HalManager::createDevice(const QString &udi)
|
||||
if (deviceExists(udi)) {
|
||||
return new HalDevice(udi);
|
||||
} else {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,4 +191,4 @@ void HalManager::slotDeviceRemoved(const QString &udi)
|
||||
emit deviceRemoved(udi);
|
||||
}
|
||||
|
||||
//#include "backends/hal/halmanager.moc"
|
||||
#include "backends/hal/moc_halmanager.cpp"
|
||||
|
||||
14
3rdparty/solid-lite/backends/hal/halmanager.h
vendored
14
3rdparty/solid-lite/backends/hal/halmanager.h
vendored
@@ -41,18 +41,18 @@ class HalManager : public Solid::Ifaces::DeviceManager
|
||||
|
||||
public:
|
||||
HalManager(QObject *parent);
|
||||
virtual ~HalManager();
|
||||
~HalManager() override;
|
||||
|
||||
virtual QString udiPrefix() const ;
|
||||
virtual QSet<Solid::DeviceInterface::Type> supportedInterfaces() const;
|
||||
QString udiPrefix() const override ;
|
||||
QSet<Solid::DeviceInterface::Type> supportedInterfaces() const override;
|
||||
|
||||
bool deviceExists(const QString &udi);
|
||||
virtual QStringList allDevices();
|
||||
QStringList allDevices() override;
|
||||
|
||||
virtual QStringList devicesFromQuery(const QString &parentUdi,
|
||||
Solid::DeviceInterface::Type type);
|
||||
QStringList devicesFromQuery(const QString &parentUdi,
|
||||
Solid::DeviceInterface::Type type) override;
|
||||
|
||||
virtual QObject *createDevice(const QString &udi);
|
||||
QObject *createDevice(const QString &udi) override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void slotDeviceAdded(const QString &udi);
|
||||
|
||||
@@ -155,4 +155,4 @@ qulonglong OpticalDisc::capacity() const
|
||||
return m_device->prop("volume.disc.capacity").toULongLong();
|
||||
}
|
||||
|
||||
//#include "backends/hal/halopticaldisc.moc"
|
||||
#include "backends/hal/moc_halopticaldisc.cpp"
|
||||
|
||||
@@ -37,14 +37,14 @@ class OpticalDisc : public Volume, virtual public Solid::Ifaces::OpticalDisc
|
||||
|
||||
public:
|
||||
OpticalDisc(HalDevice *device);
|
||||
virtual ~OpticalDisc();
|
||||
~OpticalDisc() override;
|
||||
|
||||
virtual Solid::OpticalDisc::ContentTypes availableContent() const;
|
||||
virtual Solid::OpticalDisc::DiscType discType() const;
|
||||
virtual bool isAppendable() const;
|
||||
virtual bool isBlank() const;
|
||||
virtual bool isRewritable() const;
|
||||
virtual qulonglong capacity() const;
|
||||
Solid::OpticalDisc::ContentTypes availableContent() const override;
|
||||
Solid::OpticalDisc::DiscType discType() const override;
|
||||
bool isAppendable() const override;
|
||||
bool isBlank() const override;
|
||||
bool isRewritable() const override;
|
||||
qulonglong capacity() const override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,4 +65,4 @@ QVariant PortableMediaPlayer::driverHandle(const QString &driver) const
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
//#include "backends/hal/halportablemediaplayer.moc"
|
||||
#include "backends/hal/moc_halportablemediaplayer.cpp"
|
||||
|
||||
@@ -42,11 +42,11 @@ class PortableMediaPlayer : public DeviceInterface, virtual public Solid::Ifaces
|
||||
|
||||
public:
|
||||
PortableMediaPlayer(HalDevice *device);
|
||||
virtual ~PortableMediaPlayer();
|
||||
~PortableMediaPlayer() override;
|
||||
|
||||
virtual QStringList supportedProtocols() const;
|
||||
virtual QStringList supportedDrivers(QString protocol = QString()) const;
|
||||
virtual QVariant driverHandle(const QString &driver) const;
|
||||
QStringList supportedProtocols() const override;
|
||||
QStringList supportedDrivers(QString protocol = QString()) const override;
|
||||
QVariant driverHandle(const QString &driver) const override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,4 +120,4 @@ qulonglong Storage::size() const
|
||||
return m_device->prop("storage.size").toULongLong();
|
||||
}
|
||||
|
||||
//#include "backends/hal/halstorage.moc"
|
||||
#include "backends/hal/moc_halstorage.cpp"
|
||||
|
||||
12
3rdparty/solid-lite/backends/hal/halstorage.h
vendored
12
3rdparty/solid-lite/backends/hal/halstorage.h
vendored
@@ -37,14 +37,14 @@ class Storage : public Block, virtual public Solid::Ifaces::StorageDrive
|
||||
|
||||
public:
|
||||
Storage(HalDevice *device);
|
||||
virtual ~Storage();
|
||||
~Storage() override;
|
||||
|
||||
virtual Solid::StorageDrive::Bus bus() const;
|
||||
virtual Solid::StorageDrive::DriveType driveType() const;
|
||||
Solid::StorageDrive::Bus bus() const override;
|
||||
Solid::StorageDrive::DriveType driveType() const override;
|
||||
|
||||
virtual bool isRemovable() const;
|
||||
virtual bool isHotpluggable() const;
|
||||
virtual qulonglong size() const;
|
||||
bool isRemovable() const override;
|
||||
bool isHotpluggable() const override;
|
||||
qulonglong size() const override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -329,7 +329,7 @@ bool StorageAccess::requestPassphrase()
|
||||
|
||||
QWidget *activeWindow = QApplication::activeWindow();
|
||||
uint wId = 0;
|
||||
if (activeWindow!=0) {
|
||||
if (activeWindow!=nullptr) {
|
||||
wId = (uint)activeWindow->winId();
|
||||
}
|
||||
|
||||
@@ -473,7 +473,7 @@ bool Solid::Backends::Hal::StorageAccess::callSystemMount()
|
||||
m_process = FstabHandling::callSystemCommand("mount", device,
|
||||
this, SLOT(slotProcessFinished(int,QProcess::ExitStatus)));
|
||||
|
||||
return m_process!=0;
|
||||
return m_process!=nullptr;
|
||||
}
|
||||
|
||||
bool Solid::Backends::Hal::StorageAccess::callSystemUnmount()
|
||||
@@ -482,7 +482,7 @@ bool Solid::Backends::Hal::StorageAccess::callSystemUnmount()
|
||||
m_process = FstabHandling::callSystemCommand("umount", device,
|
||||
this, SLOT(slotProcessFinished(int,QProcess::ExitStatus)));
|
||||
|
||||
return m_process!=0;
|
||||
return m_process!=nullptr;
|
||||
}
|
||||
|
||||
void StorageAccess::callCryptoSetup(const QString &passphrase)
|
||||
@@ -513,4 +513,4 @@ bool StorageAccess::callCryptoTeardown()
|
||||
SLOT(slotDBusError(QDBusError)));
|
||||
}
|
||||
|
||||
//#include "backends/hal/halstorageaccess.moc"
|
||||
#include "backends/hal/moc_halstorageaccess.cpp"
|
||||
|
||||
@@ -42,21 +42,21 @@ class StorageAccess : public DeviceInterface, virtual public Solid::Ifaces::Stor
|
||||
|
||||
public:
|
||||
StorageAccess(HalDevice *device);
|
||||
virtual ~StorageAccess();
|
||||
~StorageAccess() override;
|
||||
|
||||
virtual bool isAccessible() const;
|
||||
virtual QString filePath() const;
|
||||
virtual bool isIgnored() const;
|
||||
virtual bool setup();
|
||||
virtual bool teardown();
|
||||
bool isAccessible() const override;
|
||||
QString filePath() const override;
|
||||
bool isIgnored() const override;
|
||||
bool setup() override;
|
||||
bool teardown() override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void accessibilityChanged(bool accessible, const QString &udi);
|
||||
void setupDone(Solid::ErrorType error, QVariant errorData, const QString &udi);
|
||||
void teardownDone(Solid::ErrorType error, QVariant errorData, const QString &udi);
|
||||
void accessibilityChanged(bool accessible, const QString &udi) override;
|
||||
void setupDone(Solid::ErrorType error, QVariant errorData, const QString &udi) override;
|
||||
void teardownDone(Solid::ErrorType error, QVariant errorData, const QString &udi) override;
|
||||
void ejectDone(Solid::ErrorType error, QVariant errorData, const QString &udi);
|
||||
void setupRequested(const QString &udi);
|
||||
void teardownRequested(const QString &udi);
|
||||
void setupRequested(const QString &udi) override;
|
||||
void teardownRequested(const QString &udi) override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void connectDBusSignals();
|
||||
|
||||
@@ -120,4 +120,4 @@ QString Solid::Backends::Hal::Volume::encryptedContainerUdi() const
|
||||
return m_device->prop("volume.crypto_luks.clear.backing_volume").toString();
|
||||
}
|
||||
|
||||
//#include "backends/hal/halvolume.moc"
|
||||
#include "backends/hal/moc_halvolume.cpp"
|
||||
|
||||
16
3rdparty/solid-lite/backends/hal/halvolume.h
vendored
16
3rdparty/solid-lite/backends/hal/halvolume.h
vendored
@@ -37,15 +37,15 @@ class Volume : public Block, virtual public Solid::Ifaces::StorageVolume
|
||||
|
||||
public:
|
||||
Volume(HalDevice *device);
|
||||
virtual ~Volume();
|
||||
~Volume() override;
|
||||
|
||||
virtual bool isIgnored() const;
|
||||
virtual Solid::StorageVolume::UsageType usage() const;
|
||||
virtual QString fsType() const;
|
||||
virtual QString label() const;
|
||||
virtual QString uuid() const;
|
||||
virtual qulonglong size() const;
|
||||
virtual QString encryptedContainerUdi() const;
|
||||
bool isIgnored() const override;
|
||||
Solid::StorageVolume::UsageType usage() const override;
|
||||
QString fsType() const override;
|
||||
QString label() const override;
|
||||
QString uuid() const override;
|
||||
qulonglong size() const override;
|
||||
QString encryptedContainerUdi() const override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,4 +31,4 @@ DeviceInterface::~DeviceInterface()
|
||||
{
|
||||
}
|
||||
|
||||
//#include "backends/iokit/iokitdeviceinterface.moc"
|
||||
#include "backends/iokit/moc_iokitdeviceinterface.cpp"
|
||||
|
||||
@@ -49,4 +49,4 @@ bool GenericInterface::propertyExists(const QString &key) const
|
||||
return m_device->propertyExists(key);
|
||||
}
|
||||
|
||||
//#include "backends/iokit/iokitgenericinterface.moc"
|
||||
#include "backends/iokit/moc_iokitgenericinterface.cpp"
|
||||
|
||||
@@ -102,5 +102,5 @@ bool RootDevice::queryDeviceInterface(const Solid::DeviceInterface::Type&) const
|
||||
|
||||
QObject* RootDevice::createDeviceInterface(const Solid::DeviceInterface::Type&)
|
||||
{
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
20
3rdparty/solid-lite/backends/shared/rootdevice.h
vendored
20
3rdparty/solid-lite/backends/shared/rootdevice.h
vendored
@@ -39,29 +39,29 @@ class RootDevice : public Solid::Ifaces::Device
|
||||
public:
|
||||
explicit RootDevice(const QString &udi, const QString &parentUdi = QString());
|
||||
|
||||
virtual ~RootDevice();
|
||||
~RootDevice() override;
|
||||
|
||||
virtual QString udi() const;
|
||||
virtual QString parentUdi() const;
|
||||
QString udi() const override;
|
||||
QString parentUdi() const override;
|
||||
|
||||
virtual QString vendor() const;
|
||||
QString vendor() const override;
|
||||
void setVendor(const QString &vendor);
|
||||
|
||||
virtual QString product() const;
|
||||
QString product() const override;
|
||||
void setProduct(const QString &product);
|
||||
|
||||
virtual QString icon() const;
|
||||
QString icon() const override;
|
||||
void setIcon(const QString &icon);
|
||||
|
||||
virtual QStringList emblems() const;
|
||||
QStringList emblems() const override;
|
||||
void setEmblems(const QStringList &emblems);
|
||||
|
||||
virtual QString description() const;
|
||||
QString description() const override;
|
||||
void setDescription(const QString &description);
|
||||
|
||||
virtual bool queryDeviceInterface(const Solid::DeviceInterface::Type &type) const;
|
||||
bool queryDeviceInterface(const Solid::DeviceInterface::Type &type) const override;
|
||||
|
||||
virtual QObject *createDeviceInterface(const Solid::DeviceInterface::Type &type);
|
||||
QObject *createDeviceInterface(const Solid::DeviceInterface::Type &type) override;
|
||||
private:
|
||||
QString m_udi;
|
||||
QString m_parentUdi;
|
||||
|
||||
6
3rdparty/solid-lite/backends/shared/udevqt.h
vendored
6
3rdparty/solid-lite/backends/shared/udevqt.h
vendored
@@ -79,9 +79,9 @@ class Client : public QObject
|
||||
Q_PROPERTY(QStringList watchedSubsystems READ watchedSubsystems WRITE setWatchedSubsystems)
|
||||
|
||||
public:
|
||||
Client(QObject *parent = 0);
|
||||
Client(const QStringList &subsystemList, QObject *parent = 0);
|
||||
~Client();
|
||||
Client(QObject *parent = nullptr);
|
||||
Client(const QStringList &subsystemList, QObject *parent = nullptr);
|
||||
~Client() override;
|
||||
|
||||
QStringList watchedSubsystems() const;
|
||||
void setWatchedSubsystems(const QStringList &subsystemList);
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
namespace UdevQt {
|
||||
|
||||
ClientPrivate::ClientPrivate(Client *q_)
|
||||
: udev(0), monitor(0), q(q_), monitorNotifier(0)
|
||||
: udev(nullptr), monitor(nullptr), q(q_), monitorNotifier(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ void ClientPrivate::setWatchedSubsystems(const QStringList &subsystemList)
|
||||
QByteArray devType = subsysDevtype.mid(ix + 1).toLatin1();
|
||||
udev_monitor_filter_add_match_subsystem_devtype(newM, subsystem.constData(), devType.constData());
|
||||
} else {
|
||||
udev_monitor_filter_add_match_subsystem_devtype(newM, subsysDevtype.toLatin1().constData(), NULL);
|
||||
udev_monitor_filter_add_match_subsystem_devtype(newM, subsysDevtype.toLatin1().constData(), nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ DeviceList Client::devicesByProperty(const QString &property, const QVariant &va
|
||||
if (value.isValid()) {
|
||||
udev_enumerate_add_match_property(en, property.toLatin1().constData(), value.toString().toLatin1().constData());
|
||||
} else {
|
||||
udev_enumerate_add_match_property(en, property.toLatin1().constData(), NULL);
|
||||
udev_enumerate_add_match_property(en, property.toLatin1().constData(), nullptr);
|
||||
}
|
||||
|
||||
return d->deviceListFromEnumerate(en);
|
||||
@@ -216,7 +216,7 @@ Device Client::deviceByDeviceFile(const QString &deviceFile)
|
||||
if (stat(deviceFile.toLatin1().constData(), &sb) != 0)
|
||||
return Device();
|
||||
|
||||
struct udev_device *ud = 0;
|
||||
struct udev_device *ud = nullptr;
|
||||
|
||||
if (S_ISBLK(sb.st_mode))
|
||||
ud = udev_device_new_from_devnum(d->udev, 'b', sb.st_rdev);
|
||||
@@ -253,4 +253,4 @@ Device Client::deviceBySubsystemAndName(const QString &subsystem, const QString
|
||||
|
||||
}
|
||||
|
||||
//#include "udevqt.moc"
|
||||
#include "moc_udevqt.cpp"
|
||||
|
||||
@@ -74,7 +74,7 @@ QString DevicePrivate::decodePropertyValue(const QByteArray &encoded) const
|
||||
}
|
||||
|
||||
Device::Device()
|
||||
: d(0)
|
||||
: d(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ Device::Device(const Device &other)
|
||||
if (other.d) {
|
||||
d = new DevicePrivate(other.d->udev);
|
||||
} else {
|
||||
d = 0;
|
||||
d = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ Device &Device::operator=(const Device &other)
|
||||
return *this;
|
||||
if (!other.d) {
|
||||
delete d;
|
||||
d = 0;
|
||||
d = nullptr;
|
||||
return *this;
|
||||
}
|
||||
if (!d) {
|
||||
@@ -117,7 +117,7 @@ Device &Device::operator=(const Device &other)
|
||||
|
||||
bool Device::isValid() const
|
||||
{
|
||||
return (d != 0);
|
||||
return (d != nullptr);
|
||||
}
|
||||
|
||||
QString Device::subsystem() const
|
||||
|
||||
@@ -46,4 +46,4 @@ QString Block::device() const
|
||||
return m_device->property("DEVNAME").toString();
|
||||
}
|
||||
|
||||
//#include "backends/udev/udevblock.moc"
|
||||
#include "backends/udev/moc_udevblock.cpp"
|
||||
|
||||
@@ -38,11 +38,11 @@ class Block : public DeviceInterface, virtual public Solid::Ifaces::Block
|
||||
|
||||
public:
|
||||
Block(UDevDevice *device);
|
||||
virtual ~Block();
|
||||
~Block() override;
|
||||
|
||||
virtual int deviceMajor() const;
|
||||
virtual int deviceMinor() const;
|
||||
virtual QString device() const;
|
||||
int deviceMajor() const override;
|
||||
int deviceMinor() const override;
|
||||
QString device() const override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ bool UDevDevice::queryDeviceInterface(const Solid::DeviceInterface::Type &type)
|
||||
QObject *UDevDevice::createDeviceInterface(const Solid::DeviceInterface::Type &type)
|
||||
{
|
||||
if (!queryDeviceInterface(type)) {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
@@ -278,7 +278,7 @@ QObject *UDevDevice::createDeviceInterface(const Solid::DeviceInterface::Type &t
|
||||
*/
|
||||
default:
|
||||
// qFatal("Shouldn't happen");
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
20
3rdparty/solid-lite/backends/udev/udevdevice.h
vendored
20
3rdparty/solid-lite/backends/udev/udevdevice.h
vendored
@@ -39,25 +39,25 @@ class UDevDevice : public Solid::Ifaces::Device
|
||||
|
||||
public:
|
||||
UDevDevice(const UdevQt::Device device);
|
||||
virtual ~UDevDevice();
|
||||
~UDevDevice() override;
|
||||
|
||||
virtual QString udi() const;
|
||||
QString udi() const override;
|
||||
|
||||
virtual QString parentUdi() const;
|
||||
QString parentUdi() const override;
|
||||
|
||||
virtual QString vendor() const;
|
||||
QString vendor() const override;
|
||||
|
||||
virtual QString product() const;
|
||||
QString product() const override;
|
||||
|
||||
virtual QString icon() const;
|
||||
QString icon() const override;
|
||||
|
||||
virtual QStringList emblems() const;
|
||||
QStringList emblems() const override;
|
||||
|
||||
virtual QString description() const;
|
||||
QString description() const override;
|
||||
|
||||
virtual bool queryDeviceInterface(const Solid::DeviceInterface::Type &type) const;
|
||||
bool queryDeviceInterface(const Solid::DeviceInterface::Type &type) const override;
|
||||
|
||||
virtual QObject *createDeviceInterface(const Solid::DeviceInterface::Type &type);
|
||||
QObject *createDeviceInterface(const Solid::DeviceInterface::Type &type) override;
|
||||
|
||||
QString device() const;
|
||||
|
||||
|
||||
@@ -31,4 +31,4 @@ DeviceInterface::~DeviceInterface()
|
||||
{
|
||||
}
|
||||
|
||||
//#include "backends/udev/udevdeviceinterface.moc"
|
||||
#include "backends/udev/moc_udevdeviceinterface.cpp"
|
||||
|
||||
@@ -39,7 +39,7 @@ class DeviceInterface : public QObject, virtual public Solid::Ifaces::DeviceInte
|
||||
Q_INTERFACES(Solid::Ifaces::DeviceInterface)
|
||||
public:
|
||||
DeviceInterface(UDevDevice *device);
|
||||
virtual ~DeviceInterface();
|
||||
~DeviceInterface() override;
|
||||
|
||||
protected:
|
||||
UDevDevice *m_device;
|
||||
|
||||
@@ -55,4 +55,4 @@ bool GenericInterface::propertyExists(const QString &key) const
|
||||
return m_device->propertyExists(key);
|
||||
}
|
||||
|
||||
//#include "backends/udev/udevgenericinterface.moc"
|
||||
#include "backends/udev/moc_udevgenericinterface.cpp"
|
||||
|
||||
@@ -40,15 +40,15 @@ class GenericInterface : public DeviceInterface, virtual public Solid::Ifaces::G
|
||||
|
||||
public:
|
||||
GenericInterface(UDevDevice *device);
|
||||
virtual ~GenericInterface();
|
||||
~GenericInterface() override;
|
||||
|
||||
virtual QVariant property(const QString &key) const;
|
||||
virtual QMap<QString, QVariant> allProperties() const;
|
||||
virtual bool propertyExists(const QString &key) const;
|
||||
QVariant property(const QString &key) const override;
|
||||
QMap<QString, QVariant> allProperties() const override;
|
||||
bool propertyExists(const QString &key) const override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void propertyChanged(const QMap<QString,int> &changes);
|
||||
void conditionRaised(const QString &condition, const QString &reason);
|
||||
void propertyChanged(const QMap<QString,int> &changes) override;
|
||||
void conditionRaised(const QString &condition, const QString &reason) override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,7 +196,7 @@ QObject *UDevManager::createDevice(const QString &udi_)
|
||||
if (d->isOfInterest(device) || QFile::exists(udi)) {
|
||||
return new UDevDevice(device);
|
||||
}
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void UDevManager::slotDeviceAdded(const UdevQt::Device &device)
|
||||
|
||||
14
3rdparty/solid-lite/backends/udev/udevmanager.h
vendored
14
3rdparty/solid-lite/backends/udev/udevmanager.h
vendored
@@ -37,17 +37,17 @@ class UDevManager : public Solid::Ifaces::DeviceManager
|
||||
|
||||
public:
|
||||
UDevManager(QObject *parent);
|
||||
virtual ~UDevManager();
|
||||
~UDevManager() override;
|
||||
|
||||
virtual QString udiPrefix() const;
|
||||
virtual QSet<Solid::DeviceInterface::Type> supportedInterfaces() const;
|
||||
QString udiPrefix() const override;
|
||||
QSet<Solid::DeviceInterface::Type> supportedInterfaces() const override;
|
||||
|
||||
virtual QStringList allDevices();
|
||||
QStringList allDevices() override;
|
||||
|
||||
virtual QStringList devicesFromQuery(const QString &parentUdi,
|
||||
Solid::DeviceInterface::Type type);
|
||||
QStringList devicesFromQuery(const QString &parentUdi,
|
||||
Solid::DeviceInterface::Type type) override;
|
||||
|
||||
virtual QObject *createDevice(const QString &udi);
|
||||
QObject *createDevice(const QString &udi) override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void slotDeviceAdded(const UdevQt::Device &device);
|
||||
|
||||
@@ -149,4 +149,4 @@ QString PortableMediaPlayer::mediaPlayerInfoFilePath() const
|
||||
return filename;
|
||||
}
|
||||
|
||||
//#include "backends/udev/udevportablemediaplayer.moc"
|
||||
#include "backends/udev/moc_udevportablemediaplayer.cpp"
|
||||
|
||||
@@ -41,11 +41,11 @@ class PortableMediaPlayer : public DeviceInterface, virtual public Solid::Ifaces
|
||||
|
||||
public:
|
||||
PortableMediaPlayer(UDevDevice *device);
|
||||
virtual ~PortableMediaPlayer();
|
||||
~PortableMediaPlayer() override;
|
||||
|
||||
virtual QStringList supportedProtocols() const;
|
||||
virtual QStringList supportedDrivers(QString protocol = QString()) const;
|
||||
virtual QVariant driverHandle(const QString &driver) const;
|
||||
QStringList supportedProtocols() const override;
|
||||
QStringList supportedDrivers(QString protocol = QString()) const override;
|
||||
QVariant driverHandle(const QString &driver) const override;
|
||||
|
||||
private:
|
||||
/**
|
||||
|
||||
@@ -54,4 +54,4 @@ bool GenericInterface::propertyExists(const QString &key) const
|
||||
return m_device->propertyExists(key);
|
||||
}
|
||||
|
||||
//#include "backends/udisks/udisksgenericinterface.moc"
|
||||
#include "backends/udisks/moc_udisksgenericinterface.cpp"
|
||||
|
||||
@@ -267,4 +267,4 @@ const QStringList &UDisksManager::deviceCache()
|
||||
}
|
||||
|
||||
|
||||
//#include "backends/udisks/udisksmanager.moc"
|
||||
#include "backends/udisks/moc_udisksmanager.cpp"
|
||||
|
||||
@@ -387,4 +387,4 @@ bool UDisksStorageAccess::callCryptoTeardown(bool actOnParent)
|
||||
SLOT(slotDBusError(QDBusError)));
|
||||
}
|
||||
|
||||
//#include "backends/udisks/udisksstorageaccess.moc"
|
||||
#include "backends/udisks/moc_udisksstorageaccess.cpp"
|
||||
|
||||
@@ -33,9 +33,9 @@ public:
|
||||
{ return "org.freedesktop.DBus.ObjectManager"; }
|
||||
|
||||
public:
|
||||
OrgFreedesktopDBusObjectManagerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);
|
||||
OrgFreedesktopDBusObjectManagerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = nullptr);
|
||||
|
||||
~OrgFreedesktopDBusObjectManagerInterface();
|
||||
~OrgFreedesktopDBusObjectManagerInterface() override;
|
||||
|
||||
public Q_SLOTS: // METHODS
|
||||
inline QDBusPendingReply<DBUSManagerStruct> GetManagedObjects()
|
||||
|
||||
@@ -39,11 +39,11 @@ class Block: public DeviceInterface, virtual public Solid::Ifaces::Block
|
||||
|
||||
public:
|
||||
Block(Device *dev);
|
||||
virtual ~Block();
|
||||
~Block() override;
|
||||
|
||||
virtual QString device() const;
|
||||
virtual int deviceMinor() const;
|
||||
virtual int deviceMajor() const;
|
||||
QString device() const override;
|
||||
int deviceMinor() const override;
|
||||
int deviceMajor() const override;
|
||||
private:
|
||||
dev_t m_devNum;
|
||||
QString m_devFile;
|
||||
|
||||
@@ -163,10 +163,10 @@ QStringList Device::interfaces() const
|
||||
QObject* Device::createDeviceInterface(const Solid::DeviceInterface::Type& type)
|
||||
{
|
||||
if (!queryDeviceInterface(type)) {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
DeviceInterface *iface = 0;
|
||||
DeviceInterface *iface = nullptr;
|
||||
switch (type)
|
||||
{
|
||||
case Solid::DeviceInterface::GenericInterface:
|
||||
|
||||
@@ -46,17 +46,17 @@ class Device: public Solid::Ifaces::Device
|
||||
Q_OBJECT
|
||||
public:
|
||||
Device(const QString &udi);
|
||||
virtual ~Device();
|
||||
~Device() override;
|
||||
|
||||
virtual QObject* createDeviceInterface(const Solid::DeviceInterface::Type& type);
|
||||
virtual bool queryDeviceInterface(const Solid::DeviceInterface::Type& type) const;
|
||||
virtual QString description() const;
|
||||
virtual QStringList emblems() const;
|
||||
virtual QString icon() const;
|
||||
virtual QString product() const;
|
||||
virtual QString vendor() const;
|
||||
virtual QString udi() const;
|
||||
virtual QString parentUdi() const;
|
||||
QObject* createDeviceInterface(const Solid::DeviceInterface::Type& type) override;
|
||||
bool queryDeviceInterface(const Solid::DeviceInterface::Type& type) const override;
|
||||
QString description() const override;
|
||||
QStringList emblems() const override;
|
||||
QString icon() const override;
|
||||
QString product() const override;
|
||||
QString vendor() const override;
|
||||
QString udi() const override;
|
||||
QString parentUdi() const override;
|
||||
|
||||
QVariant prop(const QString &key) const;
|
||||
bool propertyExists(const QString &key) const;
|
||||
|
||||
@@ -36,7 +36,7 @@ QMap<QString /* UDI */, DeviceBackend*> DeviceBackend::s_backends;
|
||||
|
||||
DeviceBackend* DeviceBackend::backendForUDI(const QString& udi, bool create)
|
||||
{
|
||||
DeviceBackend *backend = 0;
|
||||
DeviceBackend *backend = nullptr;
|
||||
if (udi.isEmpty()) {
|
||||
return backend;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ class DeviceBackend: public QObject {
|
||||
static void destroyBackend(const QString &udi);
|
||||
|
||||
DeviceBackend(const QString &udi);
|
||||
~DeviceBackend();
|
||||
~DeviceBackend() override;
|
||||
|
||||
QVariant prop(const QString &key) const;
|
||||
bool propertyExists(const QString &key) const;
|
||||
|
||||
@@ -40,7 +40,7 @@ class DeviceInterface : public QObject, virtual public Solid::Ifaces::DeviceInte
|
||||
Q_INTERFACES(Solid::Ifaces::DeviceInterface)
|
||||
public:
|
||||
DeviceInterface(Device *device);
|
||||
virtual ~DeviceInterface();
|
||||
~DeviceInterface() override;
|
||||
|
||||
protected:
|
||||
Device *m_device;
|
||||
|
||||
@@ -40,15 +40,15 @@ class GenericInterface : public DeviceInterface, virtual public Solid::Ifaces::G
|
||||
|
||||
public:
|
||||
GenericInterface(Device *device);
|
||||
virtual ~GenericInterface();
|
||||
~GenericInterface() override;
|
||||
|
||||
virtual QVariant property(const QString &key) const;
|
||||
virtual QVariantMap allProperties() const;
|
||||
virtual bool propertyExists(const QString &key) const;
|
||||
QVariant property(const QString &key) const override;
|
||||
QVariantMap allProperties() const override;
|
||||
bool propertyExists(const QString &key) const override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void propertyChanged(const QMap<QString, int> &changes);
|
||||
void conditionRaised(const QString &condition, const QString &reason);
|
||||
void propertyChanged(const QMap<QString, int> &changes) override;
|
||||
void conditionRaised(const QString &condition, const QString &reason) override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ QObject* Manager::createDevice(const QString& udi)
|
||||
} else if (deviceCache().contains(udi)) {
|
||||
return new Device(udi);
|
||||
} else {
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,12 +44,12 @@ class Manager: public Solid::Ifaces::DeviceManager
|
||||
|
||||
public:
|
||||
Manager(QObject *parent);
|
||||
virtual QObject* createDevice(const QString& udi);
|
||||
virtual QStringList devicesFromQuery(const QString& parentUdi, Solid::DeviceInterface::Type type);
|
||||
virtual QStringList allDevices();
|
||||
virtual QSet< Solid::DeviceInterface::Type > supportedInterfaces() const;
|
||||
virtual QString udiPrefix() const;
|
||||
virtual ~Manager();
|
||||
QObject* createDevice(const QString& udi) override;
|
||||
QStringList devicesFromQuery(const QString& parentUdi, Solid::DeviceInterface::Type type) override;
|
||||
QStringList allDevices() override;
|
||||
QSet< Solid::DeviceInterface::Type > supportedInterfaces() const override;
|
||||
QString udiPrefix() const override;
|
||||
~Manager() override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void slotInterfacesAdded(const QDBusObjectPath &object_path, const QVariantMapMap &interfaces_and_properties);
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "../shared/udevqt.h"
|
||||
|
||||
#include "udisks2.h"
|
||||
#include "udisksdevice.h"
|
||||
#include "udisksopticaldisc.h"
|
||||
#include "soliddefs_p.h"
|
||||
|
||||
|
||||
@@ -43,14 +43,14 @@ class OpticalDisc: public StorageVolume, virtual public Solid::Ifaces::OpticalDi
|
||||
|
||||
public:
|
||||
OpticalDisc(Device *dev);
|
||||
virtual ~OpticalDisc();
|
||||
~OpticalDisc() override;
|
||||
|
||||
virtual qulonglong capacity() const;
|
||||
virtual bool isRewritable() const;
|
||||
virtual bool isBlank() const;
|
||||
virtual bool isAppendable() const;
|
||||
virtual Solid::OpticalDisc::DiscType discType() const;
|
||||
virtual Solid::OpticalDisc::ContentTypes availableContent() const;
|
||||
qulonglong capacity() const override;
|
||||
bool isRewritable() const override;
|
||||
bool isBlank() const override;
|
||||
bool isAppendable() const override;
|
||||
Solid::OpticalDisc::DiscType discType() const override;
|
||||
Solid::OpticalDisc::ContentTypes availableContent() const override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void slotDrivePropertiesChanged(const QString & ifaceName, const QVariantMap & changedProps, const QStringList & invalidatedProps);
|
||||
|
||||
@@ -39,19 +39,19 @@ class OpticalDrive: public StorageDrive, virtual public Solid::Ifaces::OpticalDr
|
||||
|
||||
public:
|
||||
OpticalDrive(Device *device);
|
||||
virtual ~OpticalDrive();
|
||||
~OpticalDrive() override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void ejectPressed(const QString &udi);
|
||||
void ejectDone(Solid::ErrorType error, QVariant errorData, const QString &udi);
|
||||
void ejectPressed(const QString &udi) override;
|
||||
void ejectDone(Solid::ErrorType error, QVariant errorData, const QString &udi) override;
|
||||
void ejectRequested(const QString &udi);
|
||||
|
||||
public:
|
||||
virtual bool eject();
|
||||
virtual QList<int> writeSpeeds() const;
|
||||
virtual int writeSpeed() const;
|
||||
virtual int readSpeed() const;
|
||||
virtual Solid::OpticalDrive::MediumTypes supportedMedia() const;
|
||||
bool eject() override;
|
||||
QList<int> writeSpeeds() const override;
|
||||
int writeSpeed() const override;
|
||||
int readSpeed() const override;
|
||||
Solid::OpticalDrive::MediumTypes supportedMedia() const override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void slotDBusReply(const QDBusMessage &reply);
|
||||
|
||||
@@ -332,7 +332,7 @@ bool StorageAccess::requestPassphrase()
|
||||
|
||||
QWidget *activeWindow = QApplication::activeWindow();
|
||||
uint wId = 0;
|
||||
if (activeWindow!=0)
|
||||
if (activeWindow!=nullptr)
|
||||
wId = (uint)activeWindow->winId();
|
||||
|
||||
QString appId = QCoreApplication::applicationName();
|
||||
|
||||
@@ -41,20 +41,20 @@ class StorageAccess : public DeviceInterface, virtual public Solid::Ifaces::Stor
|
||||
|
||||
public:
|
||||
StorageAccess(Device *device);
|
||||
virtual ~StorageAccess();
|
||||
~StorageAccess() override;
|
||||
|
||||
virtual bool isAccessible() const;
|
||||
virtual QString filePath() const;
|
||||
virtual bool isIgnored() const;
|
||||
virtual bool setup();
|
||||
virtual bool teardown();
|
||||
bool isAccessible() const override;
|
||||
QString filePath() const override;
|
||||
bool isIgnored() const override;
|
||||
bool setup() override;
|
||||
bool teardown() override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void accessibilityChanged(bool accessible, const QString &udi);
|
||||
void setupDone(Solid::ErrorType error, QVariant errorData, const QString &udi);
|
||||
void teardownDone(Solid::ErrorType error, QVariant errorData, const QString &udi);
|
||||
void setupRequested(const QString &udi);
|
||||
void teardownRequested(const QString &udi);
|
||||
void accessibilityChanged(bool accessible, const QString &udi) override;
|
||||
void setupDone(Solid::ErrorType error, QVariant errorData, const QString &udi) override;
|
||||
void teardownDone(Solid::ErrorType error, QVariant errorData, const QString &udi) override;
|
||||
void setupRequested(const QString &udi) override;
|
||||
void teardownRequested(const QString &udi) override;
|
||||
|
||||
public Q_SLOTS:
|
||||
Q_SCRIPTABLE Q_NOREPLY void passphraseReply(const QString & passphrase);
|
||||
|
||||
@@ -42,13 +42,13 @@ class StorageDrive: public Block, virtual public Solid::Ifaces::StorageDrive
|
||||
|
||||
public:
|
||||
StorageDrive(Device *dev);
|
||||
virtual ~StorageDrive();
|
||||
~StorageDrive() override;
|
||||
|
||||
virtual qulonglong size() const;
|
||||
virtual bool isHotpluggable() const;
|
||||
virtual bool isRemovable() const;
|
||||
virtual Solid::StorageDrive::DriveType driveType() const;
|
||||
virtual Solid::StorageDrive::Bus bus() const;
|
||||
qulonglong size() const override;
|
||||
bool isHotpluggable() const override;
|
||||
bool isRemovable() const override;
|
||||
Solid::StorageDrive::DriveType driveType() const override;
|
||||
Solid::StorageDrive::Bus bus() const override;
|
||||
|
||||
private:
|
||||
UdevQt::Device m_udevDevice;
|
||||
|
||||
@@ -39,15 +39,15 @@ class StorageVolume: public Block, virtual public Solid::Ifaces::StorageVolume
|
||||
|
||||
public:
|
||||
StorageVolume(Device *device);
|
||||
virtual ~StorageVolume();
|
||||
~StorageVolume() override;
|
||||
|
||||
virtual QString encryptedContainerUdi() const;
|
||||
virtual qulonglong size() const;
|
||||
virtual QString uuid() const;
|
||||
virtual QString label() const;
|
||||
virtual QString fsType() const;
|
||||
virtual Solid::StorageVolume::UsageType usage() const;
|
||||
virtual bool isIgnored() const;
|
||||
QString encryptedContainerUdi() const override;
|
||||
qulonglong size() const override;
|
||||
QString uuid() const override;
|
||||
QString label() const override;
|
||||
QString fsType() const override;
|
||||
Solid::StorageVolume::UsageType usage() const override;
|
||||
bool isIgnored() const override;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -62,4 +62,4 @@ QString Block::device() const
|
||||
return drive;
|
||||
}
|
||||
|
||||
//#include "backends/wmi/wmiblock.moc"
|
||||
#include "backends/wmi/moc_wmiblock.cpp"
|
||||
|
||||
@@ -154,4 +154,4 @@ void Solid::Backends::Wmi::Cdrom::slotProcessFinished(int exitCode, QProcess::Ex
|
||||
delete m_process;
|
||||
}
|
||||
|
||||
#include "backends/wmi/wmicdrom.moc"
|
||||
#include "backends/wmi/moc_wmicdrom.cpp"
|
||||
|
||||
@@ -702,4 +702,4 @@ void WmiDevice::slotCondition(const QString &condition, const QString &reason)
|
||||
emit conditionRaised(condition, reason);
|
||||
}
|
||||
|
||||
//#include "backends/wmi/wmidevice.moc"
|
||||
#include "backends/wmi/moc_wmidevice.cpp"
|
||||
|
||||
@@ -31,4 +31,4 @@ DeviceInterface::~DeviceInterface()
|
||||
{
|
||||
}
|
||||
|
||||
//#include "backends/wmi/wmideviceinterface.moc"
|
||||
#include "backends/wmi/moc_wmideviceinterface.cpp"
|
||||
|
||||
@@ -53,4 +53,4 @@ bool GenericInterface::propertyExists(const QString &key) const
|
||||
return m_device->propertyExists(key);
|
||||
}
|
||||
|
||||
//#include "backends/wmi/wmigenericinterface.moc"
|
||||
#include "backends/wmi/moc_wmigenericinterface.cpp"
|
||||
|
||||
@@ -268,4 +268,4 @@ const QString& WmiManager::WmiEventSink::query() const {
|
||||
}
|
||||
|
||||
|
||||
//#include "backends/wmi/wmimanager.moc"
|
||||
#include "backends/wmi/moc_wmimanager.cpp"
|
||||
|
||||
@@ -110,4 +110,4 @@ bool OpticalDisc::isWriteable() const
|
||||
return !val & 0x80001;//read only
|
||||
}
|
||||
|
||||
#include "backends/wmi/wmiopticaldisc.moc"
|
||||
#include "backends/wmi/moc_wmiopticaldisc.cpp"
|
||||
|
||||
@@ -65,4 +65,4 @@ QVariant Solid::Backends::Wmi::PortableMediaPlayer::driverHandle(const QString &
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
//#include "backends/wmi/wmiportablemediaplayer.moc"
|
||||
#include "backends/wmi/moc_wmiportablemediaplayer.cpp"
|
||||
|
||||
@@ -109,4 +109,4 @@ qulonglong Storage::size() const
|
||||
return m_device->property("Size").toULongLong();
|
||||
}
|
||||
|
||||
//#include "backends/wmi/wmistorage.moc"
|
||||
#include "backends/wmi/moc_wmistorage.cpp"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user