Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea5c83710b | ||
|
|
a94d9338bf | ||
|
|
7d96b2d4c1 | ||
|
|
9135b90ada | ||
|
|
fa3ba834e2 | ||
|
|
27acdd959b | ||
|
|
f79cf81db2 | ||
|
|
865fee22b8 | ||
|
|
d02fea1cd3 | ||
|
|
524a86b0cc | ||
|
|
1dc5592636 | ||
|
|
ef5f8746d5 | ||
|
|
9a24d59ea8 | ||
|
|
e17088304b | ||
|
|
1381b1bd15 | ||
|
|
f89b0a8c6f | ||
|
|
b1025fabd7 | ||
|
|
efc5be38bd | ||
|
|
c3bbb396ec | ||
|
|
21f1c4ce52 | ||
|
|
7108ac87cf | ||
|
|
384924ce58 | ||
|
|
8c683bf83c | ||
|
|
f6424328d8 | ||
|
|
60137c39b5 | ||
|
|
4d16ac17a8 | ||
|
|
504053a6bf | ||
|
|
fc10a0d43d | ||
|
|
3b6a6067af | ||
|
|
f1d7bdb069 | ||
|
|
32db0bb023 | ||
|
|
9688113d7f | ||
|
|
98d0d2163e | ||
|
|
e146ccaed4 | ||
|
|
5e7a0d8251 | ||
|
|
ecc44cfae0 | ||
|
|
ad8bc322d1 | ||
|
|
80a9cc9b3f | ||
|
|
803a7637bf | ||
|
|
4d9cec541f | ||
|
|
4d73c25c7a | ||
|
|
8646daa401 | ||
|
|
db0f8e9fb5 | ||
|
|
9d6cea7051 | ||
|
|
780ade987d | ||
|
|
fd6d735df8 | ||
|
|
4d63af303c | ||
|
|
1e12636abd | ||
|
|
89049fd56b | ||
|
|
be24401a50 | ||
|
|
8214e64684 | ||
|
|
50299f8d83 | ||
|
|
6e93b4ec41 | ||
|
|
6c107b5760 | ||
|
|
a9c0c88101 | ||
|
|
b59295d56b | ||
|
|
b9882c6ff6 | ||
|
|
72750ef60c | ||
|
|
9f6f9905e9 | ||
|
|
a22d8252b1 | ||
|
|
02bb67a266 | ||
|
|
f15b0d4de4 | ||
|
|
8f06729c1a | ||
|
|
c721a67c70 | ||
|
|
b2e8a0e282 | ||
|
|
76cc5fda22 | ||
|
|
e1d8d934b3 | ||
|
|
9fa6fb2324 | ||
|
|
ce22d8759c | ||
|
|
91cafca41f | ||
|
|
151097e466 | ||
|
|
7fc207f75f | ||
|
|
caaa2fc53b | ||
|
|
98aa6a4b27 | ||
|
|
b3ceb0aad9 | ||
|
|
fa16c32316 | ||
|
|
4282cc10c4 | ||
|
|
e5ddf28f02 | ||
|
|
4937681645 | ||
|
|
39b1bcfe6b | ||
|
|
56f36ed627 | ||
|
|
789b773649 | ||
|
|
ad962a6009 | ||
|
|
f09565a4fa | ||
|
|
d08339a7b0 | ||
|
|
5c24767310 | ||
|
|
737b9cfb3f | ||
|
|
10d312ec8f | ||
|
|
2a377533f8 | ||
|
|
25e3c5526a | ||
|
|
94e59e1bf0 | ||
|
|
3ac0187923 | ||
|
|
a563687bf5 | ||
|
|
40992f6718 | ||
|
|
9738890d9d | ||
|
|
9dc2b10448 | ||
|
|
9df658a574 | ||
|
|
4b4b0950a6 | ||
|
|
7b047a4b26 | ||
|
|
cff836280f | ||
|
|
e432efac28 | ||
|
|
4dec615cea | ||
|
|
f4bf830ae7 | ||
|
|
dbc0c1960a | ||
|
|
03fe75c875 | ||
|
|
26eaeb3ad5 | ||
|
|
462b905c5c | ||
|
|
4e048f724c | ||
|
|
e6be4d9bad | ||
|
|
e184348190 | ||
|
|
2270526071 | ||
|
|
d412fe208e | ||
|
|
0040a2d86b | ||
|
|
431aab7bb8 | ||
|
|
938ae6afd8 | ||
|
|
63c008571e | ||
|
|
08c53e2f52 | ||
|
|
64ec74117d | ||
|
|
e5ab0cd2a7 | ||
|
|
5f1df089eb | ||
|
|
b30f7b3ac5 | ||
|
|
ac37549f62 | ||
|
|
a60c44e387 | ||
|
|
694010da38 | ||
|
|
c0c240ed6a | ||
|
|
39c1ba4e66 | ||
|
|
3954d49266 | ||
|
|
7f99acf32d | ||
|
|
59b2fe4641 | ||
|
|
2f650dc745 | ||
|
|
795370086b | ||
|
|
c0057daa7a | ||
|
|
08f8cd60c4 | ||
|
|
bce53e9ccc | ||
|
|
930fa3daf0 | ||
|
|
bc5c86a2a4 | ||
|
|
ed6aaab441 | ||
|
|
442ffb9feb | ||
|
|
132cfda244 | ||
|
|
9b89e08294 | ||
|
|
df60ec047a | ||
|
|
c9931f95f0 | ||
|
|
6504543518 | ||
|
|
9b7772be3b | ||
|
|
21669aba17 | ||
|
|
113f700617 | ||
|
|
fb99107bae | ||
|
|
9b9b3fcfff | ||
|
|
f19f208b3c | ||
|
|
4fa885ccea | ||
|
|
e0fd627050 | ||
|
|
06fad29b63 | ||
|
|
e7b80a9ae2 | ||
|
|
24a0e7472d | ||
|
|
45d8990067 | ||
|
|
c0d434bbdf | ||
|
|
c697467c68 | ||
|
|
e2d42289f7 | ||
|
|
e781645a58 | ||
|
|
c98f144fd8 | ||
|
|
016a0eac46 | ||
|
|
29a61c7f5c | ||
|
|
a8b9020a4b | ||
|
|
8caf994220 | ||
|
|
7709810ae2 | ||
|
|
d8e3557f8f | ||
|
|
59143f7f34 | ||
|
|
cb4094b128 | ||
|
|
99457ee77f | ||
|
|
c41318d5e8 | ||
|
|
dbcf4565f4 | ||
|
|
9b1a033571 | ||
|
|
25600ec624 | ||
|
|
2b4398830a | ||
|
|
05250a6eab | ||
|
|
9a2e28f2a7 | ||
|
|
a35d3dca8c | ||
|
|
7363899a96 | ||
|
|
c921cf7280 | ||
|
|
e16804c4f0 | ||
|
|
f7c7f004e2 | ||
|
|
c4421d3552 | ||
|
|
cdf3059d3d | ||
|
|
5e590056ff | ||
|
|
7b8cf2ffb5 | ||
|
|
6da838c81f | ||
|
|
a2e9f813a5 | ||
|
|
64d6beb4a0 | ||
|
|
84c529d58d | ||
|
|
fe355eebf8 | ||
|
|
b064f9ebd8 | ||
|
|
604bb7a74c | ||
|
|
7d064d6c6e | ||
|
|
1730fe756d | ||
|
|
996717885d | ||
|
|
34c223b581 | ||
|
|
7b35be6691 | ||
|
|
2186259c06 | ||
|
|
69b5cb1988 | ||
|
|
cb900fe494 | ||
|
|
1d618f72f7 | ||
|
|
d5df8b42a7 | ||
|
|
c0639d8b8e | ||
|
|
b816643e2d | ||
|
|
33a3ee3d6e | ||
|
|
2f24b69462 | ||
|
|
40db66f763 | ||
|
|
5361b56e9f | ||
|
|
0e73530b05 | ||
|
|
0f5c1ce4c6 | ||
|
|
b569782d4c | ||
|
|
d69b0598bf | ||
|
|
70834fc187 | ||
|
|
18d385cf2b | ||
|
|
648406c442 | ||
|
|
5f7bd307ef | ||
|
|
890ef86e1c | ||
|
|
0b855bfb48 | ||
|
|
10cd9b23c1 | ||
|
|
bf3578cf7c | ||
|
|
da22cde5e6 | ||
|
|
312858b420 | ||
|
|
a4d0c13662 | ||
|
|
61007c32e9 | ||
|
|
1cadfc051b | ||
|
|
46cd904ced | ||
|
|
9120a0fa1c | ||
|
|
406e4a1177 | ||
|
|
be0f49a8d8 | ||
|
|
24228c5568 | ||
|
|
6056db73cf | ||
|
|
ee3effcdd1 | ||
|
|
07e711e30c | ||
|
|
0b1a910b06 | ||
|
|
81cbab3f66 | ||
|
|
d31dddac7e | ||
|
|
485647d1c3 | ||
|
|
e1db639340 | ||
|
|
b918897241 | ||
|
|
6ba2d8f3e6 | ||
|
|
c01f623305 | ||
|
|
6dc6ebb2fb | ||
|
|
2d031244ca | ||
|
|
9498be05ef | ||
|
|
1b25ddd2b5 | ||
|
|
9741f98b70 | ||
|
|
02923f7947 | ||
|
|
6c5957a492 | ||
|
|
eb96e5e08d | ||
|
|
457e5fe4af | ||
|
|
1c0d4b0133 | ||
|
|
ba79f62fda | ||
|
|
a9c79b0359 | ||
|
|
a668afef35 | ||
|
|
deb8b38b1f | ||
|
|
b4ebc520e1 | ||
|
|
5def2102c7 | ||
|
|
0f511ebc60 | ||
|
|
b09210cf1f | ||
|
|
3bdfc3e528 | ||
|
|
baf5948c90 | ||
|
|
4b1516c990 | ||
|
|
1a5990f24b | ||
|
|
82e1845056 | ||
|
|
75a76afcf1 | ||
|
|
0922cf507a | ||
|
|
32c5f7f8df | ||
|
|
148505ba6b | ||
|
|
d960c6dcec | ||
|
|
bb9f08155f | ||
|
|
934db52126 | ||
|
|
dcef08f3b3 | ||
|
|
20e7b345e1 | ||
|
|
5f8453659d | ||
|
|
c7ff011649 | ||
|
|
2b71ccf50f | ||
|
|
310be728a3 | ||
|
|
e2728285e1 | ||
|
|
1d9abf8e95 | ||
|
|
31e90c2d47 | ||
|
|
ae1e72fb23 | ||
|
|
7710470559 | ||
|
|
2069399979 | ||
|
|
29dd4da2e4 | ||
|
|
394040a039 | ||
|
|
a8e1ed863c | ||
|
|
d7b1ae9fbc | ||
|
|
f0c7d950ea | ||
|
|
1e5d389b53 | ||
|
|
1cda85fc0e | ||
|
|
4999368dfe | ||
|
|
7e4d69be05 | ||
|
|
3abbd3d4cd | ||
|
|
8fc5276090 | ||
|
|
cf4b092112 | ||
|
|
ddf4a8d4f1 | ||
|
|
9c1edc80db | ||
|
|
20bf5b07a6 | ||
|
|
ade6bd2d0d | ||
|
|
125760b934 | ||
|
|
e231c0a6cb | ||
|
|
a16bc6bb6e | ||
|
|
51989c0f5d | ||
|
|
88b7f6eab8 | ||
|
|
2df3c0a03e | ||
|
|
1e9cc07e2d | ||
|
|
6221c0a540 | ||
|
|
ddbffa7f28 | ||
|
|
555ad8bea8 | ||
|
|
a561a3fff8 | ||
|
|
70ec009edd | ||
|
|
31a1c60eb1 | ||
|
|
0a2cf6ab6e | ||
|
|
07fa2a1b0c | ||
|
|
43b8e43303 | ||
|
|
2cec51ff8d | ||
|
|
684f45cc08 | ||
|
|
eae4e0f405 | ||
|
|
b2ac2794bb | ||
|
|
b565a32c7e | ||
|
|
a1835164d9 | ||
|
|
06e931d749 | ||
|
|
b9aa49853a | ||
|
|
03eb6302d5 | ||
|
|
5f8f798cf2 | ||
|
|
bbc0177a66 | ||
|
|
6ce9f9bd86 | ||
|
|
46254f79c4 | ||
|
|
ad659a5dc2 | ||
|
|
41f67b59e9 | ||
|
|
aa91a88be7 | ||
|
|
f299c9df3a | ||
|
|
b6c3231e30 | ||
|
|
496ad05247 | ||
|
|
93f9214aad | ||
|
|
22bbf9b177 | ||
|
|
7301323ed7 | ||
|
|
c6e4cf627c | ||
|
|
5c1c9852ae | ||
|
|
be2b2c3df7 | ||
|
|
1362a94448 | ||
|
|
189f66225c | ||
|
|
40d8b9c2f6 | ||
|
|
8af7028efc | ||
|
|
f1eff6700a | ||
|
|
082bb8ef45 | ||
|
|
7609450068 | ||
|
|
6570275176 | ||
|
|
4b579cddbe | ||
|
|
a84026d74d | ||
|
|
428b165198 | ||
|
|
56b2663e4d | ||
|
|
9dbb7ec53f | ||
|
|
7e9c7a52fd | ||
|
|
2e33fb9f81 | ||
|
|
208825807b | ||
|
|
381150a7b5 | ||
|
|
5fac8774f4 | ||
|
|
e9f20be15a | ||
|
|
9d06aae1f4 | ||
|
|
f574e39012 | ||
|
|
8495fae8a5 | ||
|
|
07a5dc09ac | ||
|
|
9e6fbe955a | ||
|
|
1217771fd0 | ||
|
|
3b86d13a96 | ||
|
|
c0f825c690 | ||
|
|
825999b151 | ||
|
|
cdf51fefbd | ||
|
|
665141f81d | ||
|
|
9cbd19d658 | ||
|
|
0e00fd24ab | ||
|
|
5780f183c7 | ||
|
|
b7d6554b80 | ||
|
|
0fabd92d61 | ||
|
|
7b290ddd56 | ||
|
|
094dee4928 | ||
|
|
5497bb3f5f | ||
|
|
d85ed4c3ed | ||
|
|
77b89edbdb | ||
|
|
80396841f1 | ||
|
|
c2e075178c | ||
|
|
e0f34a3e1d | ||
|
|
c2bab872be | ||
|
|
491f7d5d15 | ||
|
|
c6893b0c7f | ||
|
|
2ee91475e5 | ||
|
|
b632c712c1 | ||
|
|
f2c2106ce9 | ||
|
|
c5a605bf73 | ||
|
|
4b9f59c845 | ||
|
|
626695da25 | ||
|
|
ea9556948b | ||
|
|
0056df517d | ||
|
|
55901cf0a3 | ||
|
|
76eac6fb72 | ||
|
|
35d12f444d | ||
|
|
14ab4ce52d | ||
|
|
c56dcd9eb4 | ||
|
|
5a416aa1c9 | ||
|
|
2f8f5f423b | ||
|
|
ab6bdf54c0 | ||
|
|
2336b6aab1 | ||
|
|
9a400ea45c | ||
|
|
b7883e8298 | ||
|
|
8d2121ade6 | ||
|
|
f82ce8b732 | ||
|
|
419b738456 | ||
|
|
eed0b83a2d | ||
|
|
db0244365f | ||
|
|
2040d0f857 | ||
|
|
9fa1592aaa | ||
|
|
0c715b1717 | ||
|
|
ce8d3231be | ||
|
|
e23dc533bd | ||
|
|
fecfb2a7e9 | ||
|
|
31cfc8833a | ||
|
|
a91558655c | ||
|
|
dee9f43761 | ||
|
|
f82cd7f52b | ||
|
|
99b9e4f4f2 | ||
|
|
da9dc2f46a | ||
|
|
d301b94c70 | ||
|
|
ea9a560277 | ||
|
|
eb4aae4060 | ||
|
|
597ae19242 | ||
|
|
7e02a32f48 | ||
|
|
4cc0d2bbca | ||
|
|
4bcd89b38a | ||
|
|
64b2a51c09 | ||
|
|
ab9ab2497b | ||
|
|
98dab4ff82 | ||
|
|
1452748331 | ||
|
|
074dc22ba5 | ||
|
|
9c5f79a695 | ||
|
|
6114c99311 | ||
|
|
86f50edfdc | ||
|
|
e945577e3c | ||
|
|
8360d3e415 | ||
|
|
71fbdef164 | ||
|
|
8aba017c24 | ||
|
|
a37489204c | ||
|
|
dab12dc7c8 | ||
|
|
409c2ccafa | ||
|
|
e1b0f2dc9a | ||
|
|
bdd699557d | ||
|
|
9fdc9aeaa3 | ||
|
|
6789446df3 | ||
|
|
5e15cc49f6 | ||
|
|
6e10959e40 | ||
|
|
0764e25a58 | ||
|
|
5043b0b625 | ||
|
|
694a4ca1ec | ||
|
|
c276a90e73 | ||
|
|
dce45c2ff3 | ||
|
|
d9da5bdc1d | ||
|
|
b6a6e220f7 | ||
|
|
478177f25e | ||
|
|
654bd9f284 | ||
|
|
a2e3659d99 | ||
|
|
5c3267f7e6 | ||
|
|
0631d500e1 | ||
|
|
8f8cb336c2 | ||
|
|
3e24b71075 | ||
|
|
40c0e48b04 | ||
|
|
8820cd89be | ||
|
|
1d12d222f3 | ||
|
|
13dc8ae3b6 | ||
|
|
a2ad08e47e | ||
|
|
c83641d2f0 | ||
|
|
6e8a36be86 | ||
|
|
c65f80d22e | ||
|
|
f9457ef311 | ||
|
|
1374c1933f | ||
|
|
1f244f6282 | ||
|
|
80e5b338fd | ||
|
|
019471c804 | ||
|
|
88fb57dd3b | ||
|
|
a93ef16143 | ||
|
|
77d0e9b8fd | ||
|
|
d73a158418 | ||
|
|
1a23cc1912 | ||
|
|
48309d3040 | ||
|
|
718171fd7b | ||
|
|
efe3116610 | ||
|
|
aab44c1e0d | ||
|
|
eabc62f796 | ||
|
|
2971c60737 | ||
|
|
29e9557d5f | ||
|
|
89f54a85c8 | ||
|
|
73c77c29c2 | ||
|
|
62e93ecffb | ||
|
|
ddfca7a8fa | ||
|
|
3187de5449 | ||
|
|
d648230d79 | ||
|
|
38fb8f61a5 | ||
|
|
8a94fb5412 | ||
|
|
061c7d1c90 | ||
|
|
f3ab4ce9c9 | ||
|
|
d449f0e903 | ||
|
|
4a6800ed77 | ||
|
|
d64aa6deed | ||
|
|
64098e84d3 | ||
|
|
b45aba4be8 | ||
|
|
0a4d3860ea | ||
|
|
387bfe77c0 | ||
|
|
1749cc0e3b | ||
|
|
a963ef80c8 | ||
|
|
fbecac4ac3 | ||
|
|
9b3275f327 | ||
|
|
28e514f927 | ||
|
|
5c706fdc80 | ||
|
|
450e863d44 | ||
|
|
faca4765f4 | ||
|
|
503a07bf5a | ||
|
|
f9775e4de3 | ||
|
|
7ef61ed3f8 | ||
|
|
ee5ec7b3db | ||
|
|
a4178bd6dc | ||
|
|
7da4bdee74 | ||
|
|
2d8fd576e0 | ||
|
|
138458d10c | ||
|
|
8e8f70af7c | ||
|
|
5da9cb06d5 | ||
|
|
c679854d7d | ||
|
|
c6952a89ae | ||
|
|
38b0207055 | ||
|
|
d16719adda | ||
|
|
ea3408012f | ||
|
|
4b107a0ef4 | ||
|
|
51d8b55b79 | ||
|
|
0243852c63 | ||
|
|
ea6743a776 | ||
|
|
2de261c49b | ||
|
|
78edcb3795 | ||
|
|
3e134ada18 | ||
|
|
b133d10f96 | ||
|
|
c306b68296 | ||
|
|
01da750899 | ||
|
|
482296c310 | ||
|
|
ba4f27f9ba | ||
|
|
f635bad63c | ||
|
|
58a3071626 | ||
|
|
d24c2e6208 | ||
|
|
5a0489ba17 | ||
|
|
ee4296837a | ||
|
|
87ae7b90e7 | ||
|
|
30f5ae4b32 | ||
|
|
90aa9d76c0 | ||
|
|
2e1359c9e2 | ||
|
|
aab59763e5 | ||
|
|
a8e830f76c | ||
|
|
b345c75a4c | ||
|
|
7e03daeaf9 | ||
|
|
556e5ccafc | ||
|
|
79200f066e | ||
|
|
d327c51521 | ||
|
|
e71bd45c55 | ||
|
|
762ff87bcc | ||
|
|
731a0f8c8f | ||
|
|
c8e903496c | ||
|
|
f16e857c72 | ||
|
|
3cf53d0233 | ||
|
|
646c00bd3a | ||
|
|
ab3035930b | ||
|
|
e8cce72c25 | ||
|
|
de1cec7e51 | ||
|
|
e1ebdaae2c | ||
|
|
35f20e33df | ||
|
|
a2d48a5827 | ||
|
|
a1662adead | ||
|
|
116ddfbb4d | ||
|
|
6170599060 | ||
|
|
ffc6fcb429 | ||
|
|
e3f7931442 | ||
|
|
3c4c7f040a | ||
|
|
246bec0d97 | ||
|
|
baefedb895 | ||
|
|
e4e7ebe3cd | ||
|
|
ca6fb2b9e4 | ||
|
|
b26d350cde | ||
|
|
51b7c71dce | ||
|
|
031319968d | ||
|
|
fda9b71f7b | ||
|
|
6775460356 | ||
|
|
d1f8e3e5f0 | ||
|
|
18dbaadd43 | ||
|
|
52cb97e409 | ||
|
|
9cfcdace21 | ||
|
|
38c04cb91c | ||
|
|
214ef6b021 | ||
|
|
a404ba0782 | ||
|
|
b5a922c0d8 | ||
|
|
051bf86682 | ||
|
|
58e8f1cd23 | ||
|
|
193498815f | ||
|
|
86da901e88 | ||
|
|
e93dab2ba0 | ||
|
|
ac5c84529e | ||
|
|
096d4148cd | ||
|
|
f2d36d3d80 | ||
|
|
8155d9a218 | ||
|
|
70043c5be4 | ||
|
|
531e54f238 | ||
|
|
51a345866a |
@@ -0,0 +1,17 @@
|
||||
### Checklist
|
||||
|
||||
- [ ] follow [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/)
|
||||
- the scope should be the component's name e.g: `feat(StatusListItem): ... `
|
||||
- when adding new components, the scope is the module e.g: `feat(StatusQ.Controls): ...`
|
||||
- [ ] add documentation if necessary (new component, new feature)
|
||||
- [ ] update sandbox app
|
||||
- in case of new component, add new component page
|
||||
- in case of new features, add variation to existing component page
|
||||
- nice to have: add it to the demo application as well
|
||||
- [ ] test changes in both light and dark theme?
|
||||
- [ ] is this a breaking change?
|
||||
- [ ] use the dedicated `BREAKING CHANGE` commit message section
|
||||
- [ ] resolve breaking changes in [status-desktop](https://github.com/status-im/status-desktop)
|
||||
- [ ] (pre-merge) adapt code to breaking changes
|
||||
- [ ] (post-merge) update StatusQ submodule pointer
|
||||
- [ ] test changes in [status-desktop](https://github.com/status-im/status-desktop)
|
||||
@@ -12,3 +12,8 @@ Makefile
|
||||
.qmake.stash
|
||||
*_qml.cpp
|
||||
*_qmlcache.qrc
|
||||
sandbox/qmlcache_loader.cpp
|
||||
doc/html
|
||||
CMakeLists.txt.user
|
||||
.vscode
|
||||
build/
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
[submodule "vendor/SortFilterProxyModel"]
|
||||
path = vendor/SortFilterProxyModel
|
||||
url = https://github.com/status-im/SortFilterProxyModel.git
|
||||
@@ -0,0 +1,664 @@
|
||||
<a name=""></a>
|
||||
## 0.25.0 (2022-03-07)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **@StatusListItem:** fix left padding ([f574e390](f574e390))
|
||||
* **StatusListItem:** add propagateTitleClicks property to StatusListItem ([8495fae8](8495fae8))
|
||||
* **StatusQ.Popups:** removed overlay setting (#557) ([665141f8](665141f8))
|
||||
* **StatusTagSelector:** Updates and fixes in the component ([07a5dc09](07a5dc09))
|
||||
* **build:** fix linux build ([9d06aae1](9d06aae1), closes [#413](413))
|
||||
* **sandbox:** Fix results popup component position ([cdf51fef](cdf51fef))
|
||||
|
||||
#### Features
|
||||
|
||||
* **@StatusListItem:** add option for tags ([381150a7](381150a7))
|
||||
* **StatusChatList:** Highlight chat item at creation time ([9e6fbe95](9e6fbe95))
|
||||
* **StatusChatListItem:** enable assigning emoji to chat item ([5fac8774](5fac8774))
|
||||
* **StatusContactVerificationIcons:** Create new row control that includes mutual connect and trust indicator icons (#559) ([c0f825c6](c0f825c6), closes [#542](542))
|
||||
* **StatusQ:** Moving docs outside sandbox ([825999b1](825999b1))
|
||||
* **StatusQ.Core:** add new arrow-left icon ([e9f20be1](e9f20be1))
|
||||
* **StatusSmartIdenticon:** Add support for color rings in StatusSmartIdenticon (#553) ([3b86d13a](3b86d13a), closes [#517](517))
|
||||
|
||||
#### Breaking Changes
|
||||
|
||||
* **StatusContactVerificationIcons:** Create new row control that includes mutual connect and trust indicator icons (#559) ([c0f825c6](c0f825c6), closes [#542](542))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## 0.24.0 (2022-02-14)
|
||||
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusListItem:** add highlighted property ([5780f183](5780f183))
|
||||
* **StatusQ.Components:** Adding StatusWizardSteper component ([b7d6554b](b7d6554b), closes [#522](522))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.23.0 (2022-02-08)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Icon components had wrong color in sandbox app ([b632c712](b632c712), closes [#538](538))
|
||||
* **StatusChatList:** unexisting property name for chat item fixed ([c2e07517](c2e07517))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusQ.Components:**
|
||||
* Adding StatusToastMessage ([7b290ddd](7b290ddd), closes [#521](521))
|
||||
* Adding StatusTagSelector component ([094dee49](094dee49), closes [#526](526))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.22.0 (2022-01-31)
|
||||
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusMemberListItem:** Implement `StatusMemberListItem` (#539) ([c5a605bf](c5a605bf), closes [#515](515))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.21.0 (2022-01-24)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **build:** broken MacOS build (#533) ([55901cf0](55901cf0))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusMessage:** Introducing a new StatusQ Component for Chat Messages ([ea955694](ea955694))
|
||||
* **StatusQ.Controls:** Introduce `StatusPasswordStrengthIndicator` ([626695da](626695da), closes [#528](528))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.20.0 (2022-01-17)
|
||||
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusBanner:** introduce type variants for different banner styles ([35d12f44](35d12f44))
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusBaseInput:** Corrects allignment of the placeholder text in the StatusBaseInput. ([5a416aa1](5a416aa1))
|
||||
* **build:** Windows build ([14ab4ce5](14ab4ce5))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.19.0 (2021-12-03)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusChatListItem:** This change fixes the issue of the chat list items getting a highlight even when they are not really hovered ([ab6bdf54](ab6bdf54))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusModal:** introduce `hasCloseButton` property ([2336b6aa](2336b6aa))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.18.0 (2021-11-30)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusAppNavBar:** Fixed position of profile button on the NavBar ([419b7384](419b7384))
|
||||
* **StatusImageWithTitle:** Fix position of the edit title button ([8d2121ad](8d2121ad))
|
||||
* **StatusListItem:** ensure title is elided ([b7883e82](b7883e82))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusListItem:** Expose the Aside text so that it can be modified from the outside ([f82ce8b7](f82ce8b7))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.17.1 (2021-11-19)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusAccountSelector:** Adapt ui to data model changed ([db024436](db024436))
|
||||
* **StatusAssetSelector:** Fixed error of crypto balance not updated correctly ([2040d0f8](2040d0f8))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.17.0 (2021-11-10)
|
||||
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusBaseButton:** introduce `Tiny` size ([dee9f437](dee9f437))
|
||||
* **StatusQ.Controls.Validators:** introduce `StatusUrlValidator` ([a9155865](a9155865))
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusAccountSelector:** adapt AccountSelector to new model (#482) ([ce8d3231](ce8d3231))
|
||||
* **StatusExpandibleItem:** add missing hover indicator in `Secondary` type ([e23dc533](e23dc533), closes [#478](478))
|
||||
* **StatusInput:** ensure validator messages are rendered when validators return boolean values ([f82cd7f5](f82cd7f5))
|
||||
* **StatusListItem:** This solves the issue of channel list overlpaing when a category is collapsed. ([0c715b17](0c715b17))
|
||||
* **StatusSearchPopup:** disable enter and return keys to avoid UI breakage ([fecfb2a7](fecfb2a7))
|
||||
* **StatusSlider:** slider background and handle should not depend on root's height ([31cfc883](31cfc883))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.16.0 (2021-11-01)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusModal:** render footer correctly based on `showFooter` flag ([da9dc2f4](da9dc2f4))
|
||||
* **StatusRoundButton:** ensure disabled state uses correct background color ([eb4aae40](eb4aae40))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusQ.Controls:**
|
||||
* introduce `StatusWalletColorSelect` control ([ea9a5602](ea9a5602), closes [#467](467))
|
||||
* introduce `StatusWalletColorButton` component ([597ae192](597ae192), closes [#466](466))
|
||||
* **StatusQ.Platform:** introduce StatusMacNotification component ([d301b94c](d301b94c))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.15.0 (2021-10-26)
|
||||
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusQ.Controls:**
|
||||
* introduce StatusChatCommandButton ([4cc0d2bb](4cc0d2bb), closes [#429](429))
|
||||
* introduce `StatusTabBarIconButton` component ([4bcd89b3](4bcd89b3), closes [#428](428))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.14.0 (2021-10-25)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **Spellchecking:** Add check for hunspell existence ([ab9ab249](ab9ab249))
|
||||
* **StatusModal:**
|
||||
* ensure `onEditButtonClicked` signal is emitted ([074dc22b](074dc22b), closes [#454](454))
|
||||
* expose `header.editable` property ([9c5f79a6](9c5f79a6), closes [#452](452))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusSmartIdenticon:** Created a new StatusQ componnent to accomodate: ([14527483](14527483))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.13.0 (2021-10-19)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* use proper double checkmark icon ([8aba017c](8aba017c))
|
||||
* **StatusBaseButton:** introduce missing `highlighted` property ([a3748920](a3748920))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusFlatRoundButton:** Update the StatusFlatRoundButton to take over button behaviour from StatusIconButton under ui/shared/status ([71fbdef1](71fbdef1))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.12.0 (2021-10-18)
|
||||
|
||||
|
||||
#### Features
|
||||
|
||||
* Resolve StatusQ modules highlighting and add qml compiler for detecting coompile time errors ([e1b0f2dc](e1b0f2dc))
|
||||
* **StatusModal:** Add edit avatar button ([5043b0b6](5043b0b6))
|
||||
* **StatusQ.Components:** introduce `StatusAddress` component ([6789446d](6789446d), closes [#430](430))
|
||||
* **StatusQ.Controls:**
|
||||
* introduce StatusColorSelector component ([bdd69955](bdd69955), closes [#444](444))
|
||||
* introduce `StatusAssetSelector` component ([9fdc9aea](9fdc9aea), closes [#442](442))
|
||||
* introduce `StatusAccountSelector` component ([5e15cc49](5e15cc49), closes [#435](435))
|
||||
* introduce `StatusSelect` ([6e10959e](6e10959e), closes [#436](436))
|
||||
* **StatusQ.Popups:** introduce `StatusMenuItemDelegate` ([0764e25a](0764e25a))
|
||||
|
||||
#### Breaking Changes
|
||||
|
||||
* **StatusQ.Popups:** introduce `StatusMenuItemDelegate` ([0764e25a](0764e25a))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## Version 0.11.1(2021-10-12)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Sandbox doesn't build on Linux machines ([dce45c2f](dce45c2f))
|
||||
* **StatusChatInfoButton:** StatusChatInfoButton takes up entire available width ([c276a90e](c276a90e))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.11.0 (2021-09-27)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* track category opened state ([0631d500](0631d500))
|
||||
* **StatusChatList:** ensure right click popup opens in correct position ([a2e3659d](a2e3659d))
|
||||
* **StatusSearchPopup:** use correct theme color for search result text ([654bd9f2](654bd9f2))
|
||||
* **StatusSpellcheckingMenuItems:** Exact menu items order ([478177f2](478177f2))
|
||||
|
||||
#### Features
|
||||
|
||||
* add star icons (#422) ([5c3267f7](5c3267f7))
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.10.0 (2021-09-20)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusChatInfoToolBar:** Right anchored title in StatusChatInfoToolBar ([6e8a36be](6e8a36be))
|
||||
* **StatusChatListCategoryItem:** Disable sensor when chevron clicked ([c83641d2](c83641d2))
|
||||
* **StatusQ.Controls.Validators:** fix bug that addressOrEns validator isn't properly exposed in QML ([1374c193](1374c193))
|
||||
|
||||
#### Features
|
||||
|
||||
* **Spellchecker:** Add Spellchecker class ([c65f80d2](c65f80d2))
|
||||
* **Spellchecking:**
|
||||
* Add dictionaries ([1d12d222](1d12d222))
|
||||
* Add huspell dependency ([f9457ef3](f9457ef3))
|
||||
* **StatusChatList:** expose `statusChatListItems` Repeater ([40c0e48b](40c0e48b))
|
||||
* **StatusExpandableItem:** Correct placement of expandable region in tertiary type ([1f244f62](1f244f62))
|
||||
* **StatusInput:**
|
||||
* add support for asynchronous validators ([8820cd89](8820cd89), closes [#395](395))
|
||||
* introduce `leftPadding` and `rightPadding` properties ([13dc8ae3](13dc8ae3))
|
||||
* introduce `reset` API ([a2ad08e4](a2ad08e4))
|
||||
* **StatusSpellcheckingMenuItems:** Add spellchecking menu ([3e24b710](3e24b710))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.9.0 (2021-09-13)
|
||||
|
||||
|
||||
#### Breaking Changes
|
||||
|
||||
* **StatusExpandableItem:** Refactored the StatusExpandableSettingsItem to support different types ([718171fd](718171fd))
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusAppThreePanelLayout:** Fix margin between left and center panels ([29e9557d](29e9557d))
|
||||
* **StatusChatListAndCategories:** rely on correct tooltip settings prop ([2971c607](2971c607))
|
||||
* **StatusCheckbox:** give checkbox label proper theme color ([88fb57dd](88fb57dd))
|
||||
* **StatusModal:** don't reserve header subtitle space ([eabc62f7](eabc62f7), closes [#378](378))
|
||||
|
||||
#### Features
|
||||
|
||||
* **Status.Core.Theme:** add RobotoMono font ([aab44c1e](aab44c1e), closes [#342](342))
|
||||
* **StatusBaseInput:** introduce `component` property ([019471c8](019471c8), closes [#380](380))
|
||||
* **StatusExpandableItem:** Refactored the StatusExpandableSettingsItem to support different types ([718171fd](718171fd))
|
||||
* **StatusInput:**
|
||||
* introduce `ValidationMode` ([d73a1584](d73a1584))
|
||||
* exposed edit component ([73c77c29](73c77c29))
|
||||
* **StatusQ.Controls.Validators:**
|
||||
* introduce `StatusAddressAndEnsValidator` ([a93ef161](a93ef161))
|
||||
* introduce `StatusAddressValidator` ([77d0e9b8](77d0e9b8))
|
||||
* **StatusSearchPopup:** introduce forceActiveFocus API ([efe31166](efe31166))
|
||||
* **StatusValidator:** allow validators to provide default `errorMessage` ([1a23cc19](1a23cc19))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.8.0 (2021-09-06)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusBaseInput:**
|
||||
* fix one line scroll ([d64aa6de](d64aa6de))
|
||||
* Make clear button bigger ([387bfe77](387bfe77))
|
||||
* **StatusChatToolBar:** Fix mouse event catching after menu closing ([fbecac4a](fbecac4a))
|
||||
* **StatusInput:** Forward keys events to root ([061c7d1c](061c7d1c))
|
||||
* **StatusListItem:** Add propogateCompostedEvents to title mouse area ([5c706fdc](5c706fdc))
|
||||
* **StatusModal:** Remove self-calculating height ([3187de54](3187de54))
|
||||
|
||||
#### Features
|
||||
|
||||
* introduce bigger versions of navbar icons ([0a4d3860](0a4d3860))
|
||||
* **StatusBaseInput:** introduce focussed property ([ddfca7a8](ddfca7a8), closes [#373](373))
|
||||
* **StatusChatListAndCategories:** Add tooltip settings for categories buttons ([64098e84](64098e84))
|
||||
* **StatusDescriptionListItem:**
|
||||
* expose subtitle component for fine control ([1749cc0e](1749cc0e))
|
||||
* introduce support for `value` ([a963ef80](a963ef80))
|
||||
* **StatusExpandableSettingsItem:** Added new component for wallet settings ([f3ab4ce9](f3ab4ce9))
|
||||
* **StatusInput:** Introduced secondaryLabel property ([d648230d](d648230d), closes [#383](383))
|
||||
* **StatusModal:**
|
||||
* Add popup menu support for StatusModal ([8a94fb54](8a94fb54))
|
||||
* add ability to set elide config of header titles ([28e514f9](28e514f9), closes [#353](353))
|
||||
* **StatusQ.Controls:** introduce StatusSwitchTabBar and StatusSwitchTabButton ([d449f0e9](d449f0e9), closes [#365](365))
|
||||
* **StatusSearchPopup:** add function hook to allow timestamp formatting ([b45aba4b](b45aba4b), closes [#363](363))
|
||||
* **qrc:** Add new icon needed for share modal ([38fb8f61](38fb8f61))
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.7.0 (2021-08-30)
|
||||
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusChatListAndCategories:** add drag and drop support for cate… (#349) ([a4178bd6](a4178bd6), closes [#227](227))
|
||||
* **StatusChatListCategoryItem:** Add tooltips settings ([f9775e4d](f9775e4d))
|
||||
* **StatusPopupMenu:** changed close policy ([2d8fd576](2d8fd576))
|
||||
* **StatusWindowsTitleBar:** Add windows title bar ([faca4765](faca4765))
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusAppThreePanelLayout:** increase minimum width in right panel ([7da4bdee](7da4bdee))
|
||||
* **StatusBaseInput:** fix click to focus ([138458d1](138458d1))
|
||||
* **StatusChatInfoButton:** Add self-calculated implicitWIdth and elide to texts ([7ef61ed3](7ef61ed3))
|
||||
* **StatusListItem:** don't set width on title item ([ee5ec7b3](ee5ec7b3))
|
||||
* **StatusModal:** ensure header and subtitles elide if needed ([503a07bf](503a07bf), closes [#256](256))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.6.0 (2021-08-24)
|
||||
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusBaseInput:** introduce `dirty` and `pristine` properties ([ea340801](ea340801), closes [#327](327))
|
||||
* **StatusChatList:** Add drag and drop support of list items ([c679854d](c679854d))
|
||||
* **StatusLetterIdenticon:** Expose the text component ([d16719ad](d16719ad))
|
||||
* **StatusListItem:** introduce itemId and titleId properties and their handlers ([01da7508](01da7508))
|
||||
* **StatusSearchPopupMenuItem:**
|
||||
* New APIs resetSearchSelection and setSearchSelection ([78edcb37](78edcb37))
|
||||
* new API ([b133d10f](b133d10f))
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusBaseInput:**
|
||||
* ensure wrapmode works as expectefd in multiline mode ([0243852c](0243852c), closes [#324](324))
|
||||
* expose cursorPosition ([ea6743a7](ea6743a7), closes [#323](323))
|
||||
* **StatusChatListCategory:** emit original mouse event data in clicked signal ([5da9cb06](5da9cb06), closes [#333](333))
|
||||
* **StatusInput:**
|
||||
* ensure validation is performed on initialization ([4b107a0e](4b107a0e), closes [#326](326))
|
||||
* remove recursive binding in label height ([51d8b55b](51d8b55b))
|
||||
* **StatusSearchLocationMenu:** typo fix ([c306b682](c306b682))
|
||||
* **StatusSearchPopup:** replace "#" character with "channel" icon ([2de261c4](2de261c4))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.5.0 (2021-08-16)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusChatToolBar:** Use updated StatusFlatRoundButton ([d24c2e62](d24c2e62))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusBaseInput:** enforce `maximumLength` if it's set ([f635bad6](f635bad6))
|
||||
* **StatusFlatRoundButton:** Adding tooltip to the button ([5a0489ba](5a0489ba))
|
||||
* **StatusIcon:** add `play-filled` and `pause-filled` icons ([58a30716](58a30716), closes [#310](310))
|
||||
* **StatusInput:** introduce new validator pipeline ([ba4f27f9](ba4f27f9), closes [#298](298))
|
||||
* **StatusToolTip:** Adding an offset property ([ee429683](ee429683))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.4.0 (2021-08-12)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusAppNavBar:** add profile button (#311) ([2e1359c9](2e1359c9))
|
||||
* **StatusChatListItem:** don't signal item selection if already selected ([b345c75a](b345c75a), closes [#303](303))
|
||||
* **StatusPopupMenu:** ensure icon or image settings exist ([90aa9d76](90aa9d76), closes [#295](295))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusListItem:** add enabled prop to StatusListItem (#302) ([7e03daea](7e03daea))
|
||||
* **StatusQ.Theme.Core:** introduce theme colors for StatusChatInput (#299) ([556e5cca](556e5cca))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.3.0 (2021-07-27)
|
||||
|
||||
|
||||
#### Features
|
||||
|
||||
* **Controls:** introduce `StatusInput` ([646c00bd](646c00bd), closes [#288](288))
|
||||
* **Popups:** introduce `StatusMenuHeadline` component ([246bec0d](246bec0d))
|
||||
* **StatusBaseInput:**
|
||||
* add icon support ([c8e90349](c8e90349), closes [#242](242))
|
||||
* add visual validity state ([e8cce72c](e8cce72c), closes [#287](287))
|
||||
* add hover state visuals ([e1ebdaae](e1ebdaae), closes [#285](285))
|
||||
* **StatusInput:** implement error message and charlimit APIs ([3cf53d02](3cf53d02), closes [#290](290))
|
||||
* **StatusPopupMenu:** add support for letter identicons, identicons and images ([3c4c7f04](3c4c7f04), closes [#263](263))
|
||||
* **StatusQ.Layout:** introducing StatusAppThreePanelLayout ([ffc6fcb4](ffc6fcb4), closes [#272](272))
|
||||
* **sandbox:** make use of `StatusInput` in chat view ([731a0f8c](731a0f8c))
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusAppThreePanelLayout:**
|
||||
* limit right panel width to 300px ([d327c515](d327c515))
|
||||
* limit center panel width to 300px ([762ff87b](762ff87b))
|
||||
* hide right panel when closed ([61705990](61705990))
|
||||
* **StatusBaseInput:**
|
||||
* some minor style adjustment to adhere to design ([f16e857c](f16e857c))
|
||||
* ensure input text is selectable with mouse ([ab303593](ab303593))
|
||||
* ensure clear button has the correct color ([de1cec7e](de1cec7e), closes [#286](286))
|
||||
* add visuals for disabled state ([35f20e33](35f20e33), closes [#284](284))
|
||||
* expose text prop alias ([116ddfbb](116ddfbb))
|
||||
* **StatusChatInfoButton:** ensure pin icon button is always rendered ([baefedb8](baefedb8), closes [#278](278))
|
||||
* **StatusListItem:** ensure title area wraps text ([e3f79314](e3f79314))
|
||||
* **StatusModal:** reset image/identicon width when loader state has changed ([e4e7ebe3](e4e7ebe3))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.2.0 (2021-07-21)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* **StatusChatListCategory:** ensures showActionButtons is taken into account ([52cb97e4](52cb97e4))
|
||||
* **StatusPopupMenu:** ensure menu items elide ([d1f8e3e5](d1f8e3e5))
|
||||
|
||||
#### Features
|
||||
|
||||
* **StatusChatInfoToolBar:** make statusMenuButton public ([38c04cb9](38c04cb9))
|
||||
* **StatusChatListAndCategories:** new API showPopupMenu ([9cfcdace](9cfcdace))
|
||||
* **StatusChatListItem:** introduce muted badge visuals ([a404ba07](a404ba07), closes [#259](259))
|
||||
* **StatusListItem:**
|
||||
* support tertiaryTitle ([03131996](03131996), closes [#275](275))
|
||||
* add identicon support ([214ef6b0](214ef6b0), closes [#261](261))
|
||||
* **StatusModal:**
|
||||
* introduce support for identicons and letter identicons ([fda9b71f](fda9b71f), closes [#269](269))
|
||||
* render header and footer border by default ([18dbaadd](18dbaadd), closes [#265](265))
|
||||
* **StatusToolTip:** expose `arrow` for fine-grain control ([51b7c71d](51b7c71d))
|
||||
|
||||
|
||||
|
||||
<a name=""></a>
|
||||
## v0.1.0 (2021-07-15)
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Add missing .qml to resources, add qmlcache to gitignore ([71d0ef7f](71d0ef7f))
|
||||
* make release build work ([1a7c2133](1a7c2133))
|
||||
* introduce tiny icon versions and make use of them where needed ([a0fae6ab](a0fae6ab), closes [#128](128))
|
||||
* update position of window to center, add traffic lights ([26aae6d0](26aae6d0))
|
||||
* hover effect for StatusFlatRoundButton ([ee4a7c88](ee4a7c88))
|
||||
* fix crash on removing title bar ([c94b801e](c94b801e))
|
||||
* **Components:**
|
||||
* more popup menu position fine-tuning ([22eaf6fa](22eaf6fa))
|
||||
* add proper foreground color for StatusBadge ([6a92ff68](6a92ff68), closes [#59](59))
|
||||
* **Controls:** ensure round buttons expose `hovered` state ([98b01946](98b01946), closes [#88](88))
|
||||
* **Core:**
|
||||
* add missing `rotation` property to `StatusIconSettings` ([341c0ddd](341c0ddd))
|
||||
* don't rotate `ColorOverlay` of `StatusIcon` ([062fe42a](062fe42a), closes [#109](109))
|
||||
* disable StatusIcon ColorOverlay if no color is supplied ([f1e34e39](f1e34e39))
|
||||
* **Core.Theme:**
|
||||
* ensure proper nav bar colors is used ([6c84fed7](6c84fed7))
|
||||
* remove redundant theme properties ([75e87725](75e87725))
|
||||
* ensure all font weight are available ([0a88e652](0a88e652), closes [#30](30))
|
||||
* **README:** fix module name in readme docs ([f4b5b271](f4b5b271))
|
||||
* **StatusAppNavBar:**
|
||||
* don't rely on `undefined` property ([175d7a19](175d7a19))
|
||||
* don't try to render chat button if it doesn't exist ([d690a0c5](d690a0c5))
|
||||
* **StatusBadge:** use medium font weight for badge text ([cb9492ab](cb9492ab))
|
||||
* **StatusBaseInput:** Fix focus area Closes: #241 ([f2d36d3d](f2d36d3d))
|
||||
* **StatusChatInfoButton:**
|
||||
* make component identicon aware ([7dcec0ca](7dcec0ca), closes [#228](228))
|
||||
* prefix chat name with "#" if needed ([144ac69d](144ac69d), closes [#229](229))
|
||||
* vertically center title if no subtitle is provided ([7b2030c6](7b2030c6), closes [#230](230))
|
||||
* disable hover effects when sensor is disabled ([f7e38c9c](f7e38c9c), closes [#231](231))
|
||||
* **StatusChatList:**
|
||||
* ensure badge is also shown for one to one messages ([ac5c8452](ac5c8452))
|
||||
* ensure popupMenu closeHandler don't break ([722d92c0](722d92c0), closes [#216](216))
|
||||
* use fallback property to determine unread message count ([f7f217ed](f7f217ed))
|
||||
* expect `model.color` instead of `iconColor` prop ([70332a3f](70332a3f))
|
||||
* ensure component provide default `width` ([300536bc](300536bc), closes [#176](176))
|
||||
* **StatusChatListAndCategories:**
|
||||
* make chat list visibily flag work ([53d63a9b](53d63a9b), closes [#217](217))
|
||||
* ensure chatItemUnmuted event is propagated ([a9ae426c](a9ae426c), closes [#219](219))
|
||||
* ensure chat list receives popup menu ([23ddbc2e](23ddbc2e), closes [#218](218))
|
||||
* **StatusChatListCategory:** only try open popup when supplied ([cbdaf128](cbdaf128), closes [#220](220))
|
||||
* **StatusChatListCategoryItem:** don't render menubutton with no popup ([05fc97ca](05fc97ca), closes [#153](153))
|
||||
* **StatusChatListItem:**
|
||||
* ensure chat name elides when it's too long ([34df0f0d](34df0f0d), closes [#151](151))
|
||||
* ensure public chat names are prefixed with '#' ([141872c2](141872c2), closes [#191](191))
|
||||
* use proper font size for chat name ([ac80f7f7](ac80f7f7))
|
||||
* **StatusChatToolBar:**
|
||||
* ensure context menu as proper position ([3ea8da05](3ea8da05))
|
||||
* ensure menu button stays highlighted ([90bad9e3](90bad9e3), closes [#125](125))
|
||||
* **StatusFlatRoundButton:** use correct hover color ([82e34d64](82e34d64))
|
||||
* **StatusListItem:**
|
||||
* ensure icon background in secondary type works correctly ([34b35318](34b35318))
|
||||
* various fixes w.r.t. sensor, icon size etc ([e5e96af5](e5e96af5))
|
||||
* **StatusMenuSeparator:** ensure height is 0 when invisible or disabled ([fd7a5530](fd7a5530), closes [#212](212))
|
||||
* **StatusModal:** ensure modal footer uses correct theme color ([de2c36d0](de2c36d0))
|
||||
* **StatusModalHeader:** ensure header has enough height for children ([75b2f508](75b2f508), closes [#185](185))
|
||||
* **StatusNavBarTabButton:**
|
||||
* fix popup menu positioning ([705f1402](705f1402))
|
||||
* ensure click signal is emitted when not menu is provided ([040da2a4](040da2a4))
|
||||
* don't change checked state implicitly ([b1fe73ba](b1fe73ba))
|
||||
* **StatusNavigationListItem:** make click event work again ([c5ecfe08](c5ecfe08))
|
||||
* **StatusQ.Core.Theme:** use correct dropshadow color in dark theme ([70e17b05](70e17b05))
|
||||
* **StatusRadioButton:** ensure control label as correct color ([1cb0c1d3](1cb0c1d3), closes [#51](51))
|
||||
* **StatusRoundedImage:** ensure images are scaled and positioned properly ([3d0688b7](3d0688b7), closes [#172](172))
|
||||
* **sandbox:** make scrollview content height grow with content ([2f09179f](2f09179f))
|
||||
|
||||
#### Features
|
||||
|
||||
* can be used on tablets (#146) ([63be0144](63be0144))
|
||||
* add StatusSwitch ([52998d68](52998d68), closes [#12](12))
|
||||
* Add buttons components ([91b8d317](91b8d317))
|
||||
* Set up catalog app (sandbox) ([3528b2ff](3528b2ff), closes [#5](5))
|
||||
* introduce theming capability ([608fdbda](608fdbda), closes [#3](3))
|
||||
* **Components:**
|
||||
* introduce `StatusContactRequestsIndicatorListItem` ([baa663ce](baa663ce), closes [#175](175))
|
||||
* introduce `StatusListSectionHeadline` ([507703af](507703af), closes [#164](164))
|
||||
* introduce `StatusNavigationPanelHeadline` ([40617cd7](40617cd7), closes [#162](162))
|
||||
* introduce `StatusChatListAndCategories` component ([7bca2745](7bca2745), closes [#133](133))
|
||||
* introduce `StatusChatInfoToolBar` component ([454e73a8](454e73a8), closes [#141](141))
|
||||
* introduce `StatusChatListCategory` ([f4d211ac](f4d211ac), closes [#123](123))
|
||||
* introduce `StatusChatListCategoryItem` ([916dcc9c](916dcc9c), closes [#117](117))
|
||||
* introduce `StatusChatList` ([1e558b59](1e558b59), closes [#100](100))
|
||||
* Add StatusSlider ([c0ad32a1](c0ad32a1))
|
||||
* introduce `StatusChatToolBar` ([a4421b5b](a4421b5b), closes [#80](80))
|
||||
* introduce `StatusDescriptionListItem` ([4a25ca02](4a25ca02))
|
||||
* introduce StatusNavigationListItem ([63275668](63275668), closes [#72](72))
|
||||
* introduce StatusChatListItem ([b40d427d](b40d427d), closes [#65](65))
|
||||
* introduce `StatusListItem` component ([a3fe02d0](a3fe02d0), closes [#19](19))
|
||||
* introduce `StatusRoundIcon` component ([8639e8cc](8639e8cc), closes [#53](53))
|
||||
* introduce StatusBadge component ([a89e218a](a89e218a), closes [#15](15))
|
||||
* introduce StatusRoundedImage ([09876c1f](09876c1f), closes [#32](32))
|
||||
* introduce StatusLetterIdenticon ([b0155313](b0155313), closes [#28](28))
|
||||
* introduce StatusLoadingIndicator ([3ce1138b](3ce1138b), closes [#7](7))
|
||||
* **Controls:**
|
||||
* introduce StatusBaseInput ([13217604](13217604))
|
||||
* introduce `StatusChatInfoButton` ([8a799182](8a799182))
|
||||
* introduce StatusNavBarTabButton ([ea118d71](ea118d71), closes [#17](17))
|
||||
* introduce StatusToolTip component ([f3a6c9f4](f3a6c9f4), closes [#14](14))
|
||||
* **Core:**
|
||||
* introduce StatusIconBackgroundSettings ([a4e62fb2](a4e62fb2))
|
||||
* introduce `StatusImageSettings` ([d9529883](d9529883))
|
||||
* introduce StatusBaseText component ([c7d533af](c7d533af), closes [#20](20))
|
||||
* **Core.Controls:** introduce StatusIconTabButton component ([b4b1f472](b4b1f472), closes [#16](16))
|
||||
* **Core.Theme:** expose solid black and white on `ThemePalette` ([996ceb2b](996ceb2b))
|
||||
* **Layout:**
|
||||
* introduce `StatusAppTwoPanelLayout` ([af3ca15b](af3ca15b))
|
||||
* introduce StatusAppLayout component ([554998dc](554998dc))
|
||||
* introduce StatusAppNavBar ([0dfd39af](0dfd39af), closes [#18](18))
|
||||
* **Popups:**
|
||||
* Add StatusModal ([e49b58b9](e49b58b9))
|
||||
* introduce StatusModalDivider ([148c30b9](148c30b9))
|
||||
* Add StatusModalFooter ([9c2a5830](9c2a5830))
|
||||
* Add status modal header ([fa9bb7ad](fa9bb7ad))
|
||||
* **StatusBadge:** introduce `borderColor` and `hoverBorderColor` ([041c11fb](041c11fb))
|
||||
* **StatusBaseInput:** Add focused state Closes: #240 ([19349881](19349881))
|
||||
* **StatusChatList:**
|
||||
* expose hook to lazily calculate chat item names ([a664f635](a664f635))
|
||||
* introduce `profileImageFn` property ([cfacd5be](cfacd5be), closes [#174](174))
|
||||
* introduce `popupMenu` property ([a6262f0a](a6262f0a), closes [#171](171))
|
||||
* introduce `filterFn` and `categoryId` ([cb078134](cb078134), closes [#154](154))
|
||||
* **StatusChatListCategory:**
|
||||
* apply chat list filter and expose category id in popup menu ([45775518](45775518))
|
||||
* introduce flag to show/hide buttons ([9982c3df](9982c3df), closes [#150](150))
|
||||
* **StatusChatListCategoryItem:** introduce `highlighted` property ([72bdd2d9](72bdd2d9))
|
||||
* **StatusChatListCategoryItemButton:** introduce `highglighted` property ([645a3b79](645a3b79))
|
||||
* **StatusChatListItem:**
|
||||
* add `highlighted` property ([44343d38](44343d38), closes [#178](178))
|
||||
* accept right clicks ([1f3aa0bb](1f3aa0bb), closes [#131](131))
|
||||
* **StatusChatToolBar:**
|
||||
* add tooltips to action buttons ([86da901e](86da901e), closes [#244](244))
|
||||
* add members and search button ([e93dab2b](e93dab2b), closes [#243](243))
|
||||
* **StatusFlatRoundButton:**
|
||||
* introduce `highlighted` color for secondary type ([58e8f1cd](58e8f1cd), closes [#245](245))
|
||||
* support icon rotation ([3a7a338d](3a7a338d))
|
||||
* **StatusIcon:** Improvement of Icons ([7bc7df8d](7bc7df8d))
|
||||
* **StatusIconTabButton:** introduce image loading state and fallback ([9b99d8a9](9b99d8a9), closes [#37](37))
|
||||
* **StatusListItem:**
|
||||
* add `Danger` type support ([8155d9a2](8155d9a2), closes [#248](248))
|
||||
* support letter identicons ([531e54f2](531e54f2), closes [#239](239))
|
||||
* introduce primary and secondary types ([146218e0](146218e0))
|
||||
* **StatusModal:** expose loaded content ([bd383e87](bd383e87), closes [#237](237))
|
||||
* **StatusNavBarTabButton:** introduce `popupMenu` property ([5e8242df](5e8242df), closes [#137](137))
|
||||
* **StatusPopupMenu:**
|
||||
* introduce `openHandler` ([2427fa2d](2427fa2d))
|
||||
* make menu items invisible when disabled ([c9bc9bab](c9bc9bab), closes [#135](135))
|
||||
* introduce `closeHandler` hook ([fb51e9d7](fb51e9d7))
|
||||
* **StatusQ.Popups:** introduce StatusPopupMenu component ([09a6f418](09a6f418), closes [#96](96))
|
||||
* **StatusRoundButton:** add `highlighted` and `icon.rotation` props ([7c16a9bd](7c16a9bd))
|
||||
* **StatusRoundIcon:** enable `icon.color` support ([70043c5b](70043c5b))
|
||||
* **StatusRoundedImage:**
|
||||
* introduce identicon support ([7a2648f6](7a2648f6), closes [#173](173))
|
||||
* add loading indicator option ([44b275f2](44b275f2), closes [#56](56))
|
||||
* **sandbox:**
|
||||
* introduce first part of profile view for reference app ([4588d597](4588d597))
|
||||
* introduce first version of reference app ([202fb886](202fb886))
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
cmake_minimum_required(VERSION 3.19)
|
||||
|
||||
project(StatusQ)
|
||||
|
||||
if (APPLE)
|
||||
set(MACOS_VERSION_MIN_FLAGS -mmacosx-version-min=10.14)
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64")
|
||||
endif()
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# https://doc.qt.io/qtcreator/creator-qml-modules-with-plugins.html#importing-qml-modules
|
||||
set(QML_IMPORT_PATH
|
||||
${CMAKE_SOURCE_DIR}/src;${QML_IMPORT_PATH}
|
||||
CACHE STRING "")
|
||||
|
||||
add_subdirectory(vendor/SortFilterProxyModel)
|
||||
add_subdirectory(sandbox)
|
||||
add_subdirectory(tests)
|
||||
@@ -9,6 +9,7 @@ These modules are:
|
||||
|
||||
- [StatusQ.Core](https://github.com/status-im/StatusQ/blob/master/src/StatusQ/Core/qmldir)
|
||||
- [StatusQ.Core.Theme](https://github.com/status-im/StatusQ/blob/master/src/StatusQ/Core/Theme/qmldir)
|
||||
- [StatusQ.Core.Utils](https://github.com/status-im/StatusQ/blob/master/src/StatusQ/Core/Utils/qmldir)
|
||||
- [StatusQ.Components](https://github.com/status-im/StatusQ/blob/master/src/StatusQ/Controls/qmldir)
|
||||
- [StatusQ.Controls](https://github.com/status-im/StatusQ/blob/master/src/StatusQ/Components/qmldir)
|
||||
- [StatusQ.Layout](https://github.com/status-im/StatusQ/blob/master/src/StatusQ/Layout/qmldir)
|
||||
@@ -35,7 +36,7 @@ To make viewing and testing components easy, we've added a sandbox application t
|
||||
|
||||
### Using Qt Creator
|
||||
|
||||
The easiest way to run the sandbox application is to simply open the provided `sandbox.pro` file using Qt Creator.
|
||||
The easiest way to run the sandbox application is to simply open the provided `CMakeLists.txt` file using Qt Creator.
|
||||
|
||||
### Using command line interface
|
||||
|
||||
@@ -43,14 +44,13 @@ To run the sandbox from within a command line interface, run the following comma
|
||||
|
||||
```
|
||||
$ git clone https://github.com/status-im/StatusQ
|
||||
$ cd StatusQ/sandbox
|
||||
$ ./scripts/build
|
||||
$ cd StatusQ
|
||||
$ git submodule update --init
|
||||
$ ./sandbox/scripts/build
|
||||
```
|
||||
|
||||
Once that is done, the sandbox can be started with the generated executable:
|
||||
|
||||
```
|
||||
$ ./bin/sandbox
|
||||
$ ./build/sandbox/Sandbox
|
||||
```
|
||||
|
||||
More Documentation available on the [wiki](https://hackmd.io/@status-desktop/B1naRjxh_/%2FwFtiXvOiQqCdw2lk6gbOLA)
|
||||
|
||||
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 49 KiB |
@@ -0,0 +1,19 @@
|
||||
/*!
|
||||
\page statusq-index.html
|
||||
\title StatusQ
|
||||
\brief A components library for Status desktop client.
|
||||
|
||||
|
||||
StatusQ provides a collection of components....
|
||||
|
||||
StatusQ - Components and Interfaces
|
||||
\list
|
||||
\li \l{StatusQ Components}{Components}
|
||||
\li \l{StatusQ Controls}{Controls}
|
||||
\li \l{StatusQ Core}{Core}
|
||||
\li \l{StatusQ Layout}{Layout}
|
||||
\li \l{StatusQ Platform}{Platform}
|
||||
\li \l{StatusQ Popups}{Popups}
|
||||
\endlist
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
/*!
|
||||
\qmlmodule StatusQ.Components 0.1
|
||||
\title StatusQ Components
|
||||
\brief Basic set of Components StatusQ components
|
||||
|
||||
This is a listing of all Components components.
|
||||
|
||||
This module is part of the \l{StatusQ}{StatusQ} project.
|
||||
|
||||
\list
|
||||
\li \l{StatusAddress}
|
||||
\li \l{StatusBadge}
|
||||
\li \l{StatusChatInfoToolBar}
|
||||
\li \l{StatusChatList}
|
||||
\li \l{StatusChatListItem}
|
||||
\li \l{StatusImageSettings}
|
||||
\li \l{StatusChatListCategory}
|
||||
\li \l{StatusChatListCategoryItem}
|
||||
\li \l{StatusChatListAndCategories}
|
||||
\li \l{StatusChatToolBar}
|
||||
\li \l{StatusContactRequestsIndicatorListItem}
|
||||
\li \l{StatusDescriptionListItem}
|
||||
\li \l{StatusItemSelector}
|
||||
\li \l{StatusLetterIdenticon}
|
||||
\li \l{StatusListItem}
|
||||
\li \l{StatusListPicker}
|
||||
\li \l{StatusListSectionHeadline}
|
||||
\li \l{StatusLoadingIndicator}
|
||||
\li \l{StatusMemberListItem}
|
||||
\li \l{StatusNavigationListItem}
|
||||
\li \l{StatusNavigationPanelHeadline}
|
||||
\li \l{StatusRoundIcon}
|
||||
\li \l{StatusRoundedImage}
|
||||
\li \l{StatusMacWindowButtons}
|
||||
\li \l{StatusListItemBadge}
|
||||
\li \l{StatusExpandableItem}
|
||||
\li \l{StatusSmartIdenticon}
|
||||
\li \l{StatusMessage}
|
||||
\li \l{StatusMessageDetails}
|
||||
\li \l{StatusTagSelector}
|
||||
\li \l{StatusToastMessage}
|
||||
\li \l{StatusWizardStepper}
|
||||
\endlist
|
||||
*/
|
||||
@@ -0,0 +1,51 @@
|
||||
/*!
|
||||
\qmlmodule StatusQ.Controls 0.1
|
||||
\title StatusQ Controls
|
||||
\brief Basic set of Controls StatusQ components
|
||||
|
||||
This is a listing of all Controls components.
|
||||
|
||||
This module is part of the \l{StatusQ}{StatusQ} project.
|
||||
|
||||
\list
|
||||
\li \l{StatusAccountSelector}
|
||||
\li \l{StatusAssetSelector}
|
||||
\li \l{StatusBanner}
|
||||
\li \l{StatusChatCommandButton}
|
||||
\li \l{StatusChatInfoButton}
|
||||
\li \l{StatusChatListCategoryItemButton}
|
||||
\li \l{StatusColorSelector}
|
||||
\li \l{StatusDropdown}
|
||||
\li \l{StatusIconTabButton}
|
||||
\li \l{StatusNavBarTabButton}
|
||||
\li \l{StatusTabBarIconButton}
|
||||
\li \l{StatusToolTip}
|
||||
\li \l{StatusBaseButton}
|
||||
\li \l{StatusButton}
|
||||
\li \l{StatusFlatButton}
|
||||
\li \l{StatusRoundButton}
|
||||
\li \l{StatusFlatRoundButton}
|
||||
\li \l{StatusSwitch}
|
||||
\li \l{StatusRadioButton}
|
||||
\li \l{StatusCheckBox}
|
||||
\li \l{StatusSlider}
|
||||
\li \l{StatusSelect}
|
||||
\li \l{StatusBaseInput}
|
||||
\li \l{StatusIconTextButton}
|
||||
\li \l{StatusIdenticonRing}
|
||||
\li \l{StatusInput}
|
||||
\li \l{StatusItemPicker}
|
||||
\li \l{StatusPickerButton}
|
||||
\li \l{StatusPinInput}
|
||||
\li \l{StatusProgressBar}
|
||||
\li \l{StatusPasswordStrengthIndicator}
|
||||
\li \l{StatusSwitchTabButton}
|
||||
\li \l{StatusSwitchTabBar}
|
||||
\li \l{StatusSelectableText}
|
||||
\li \l{StatusWalletColorButton}
|
||||
\li \l{StatusWalletColorSelect}
|
||||
\li \l{StatusRegularExpressionValidator}
|
||||
\li \l{StatusIntValidator}
|
||||
\li \l{StatusSeedPhraseInput}
|
||||
\endlist
|
||||
*/
|
||||
@@ -0,0 +1,24 @@
|
||||
/*!
|
||||
\qmlmodule StatusQ.Core 0.1
|
||||
\title StatusQ Core
|
||||
\brief Basic set of Core StatusQ components
|
||||
|
||||
This is a listing of all Core components. These
|
||||
files are available for general import and they are based off the \l{https://doc.qt.io/qt-5/qtquick-qmlmodule.html}{Qt
|
||||
Quick Primitives} and \l{https://doc.qt.io/archives/qt-5.11/qtquick-controls2-qmlmodule.html}{Qt Quick Controls 2}.
|
||||
|
||||
This module is part of the \l{StatusQ}{StatusQ} project.
|
||||
|
||||
\list
|
||||
\li \l{StatusAppNavBarFilterModel}
|
||||
\li \l{StatusBaseText}
|
||||
\li \l{StatusFontSettings}
|
||||
\li \l{StatusIcon}
|
||||
\li \l{StatusIconBackgroundSettings}
|
||||
\li \l{StatusIconSettings}
|
||||
\li \l{StatusIdenticonRingSettings}
|
||||
\li \l{StatusImageSettings}
|
||||
\li \l{StatusModalHeaderSettings}
|
||||
\li \l{StatusTooltipSettings}
|
||||
\endlist
|
||||
*/
|
||||
@@ -0,0 +1,16 @@
|
||||
/*!
|
||||
\qmlmodule StatusQ.Layout 0.1
|
||||
\title StatusQ Layout
|
||||
\brief Basic set of Layout StatusQ components
|
||||
|
||||
This is a listing of all Layout components.
|
||||
|
||||
This module is part of the \l{StatusQ}{StatusQ} project.
|
||||
|
||||
\list
|
||||
\li \l{StatusAppLayout}
|
||||
\li \l{StatusAppNavBar}
|
||||
\li \l{StatusAppTwoPanelLayout}
|
||||
\li \l{StatusAppThreePanelLayout}
|
||||
\endlist
|
||||
*/
|
||||
@@ -0,0 +1,15 @@
|
||||
/*!
|
||||
\qmlmodule StatusQ.Platform 0.1
|
||||
\title StatusQ Platform
|
||||
\brief Basic set of Platform StatusQ components
|
||||
|
||||
This is a listing of all Platform components.
|
||||
|
||||
This module is part of the \l{StatusQ}{StatusQ} project.
|
||||
|
||||
\list
|
||||
\li \l{StatusMacTrafficLights}
|
||||
\li \l{StatusMacNotification}
|
||||
\li \l{StatusWindowsTitleBar}
|
||||
\endlist
|
||||
*/
|
||||
@@ -0,0 +1,22 @@
|
||||
/*!
|
||||
\qmlmodule StatusQ.Popups 0.1
|
||||
\title StatusQ Popups
|
||||
\brief Basic set of Popups StatusQ components
|
||||
|
||||
This is a listing of all Popups components.
|
||||
|
||||
This module is part of the \l{StatusQ}{StatusQ} project.
|
||||
|
||||
\list
|
||||
\li \l{StatusMenuSeparator}
|
||||
\li \l{StatusPopupMenu}
|
||||
\li \l{StatusMenuItem}
|
||||
\li \l{StatusMenuItemDelegate}
|
||||
\li \l{StatusModal}
|
||||
\li \l{StatusSearchPopup}
|
||||
\li \l{StatusModalDivider}
|
||||
\li \l{StatusSearchPopupMenuItem}
|
||||
\li \l{StatusSearchLocationMenu}
|
||||
\li \l{StatusSpellcheckingMenuItems}
|
||||
\endlist
|
||||
*/
|
||||
@@ -0,0 +1,36 @@
|
||||
project = StatusQ
|
||||
version = 0.1
|
||||
description = StatusQ Project
|
||||
url = https://github.com/status-im/StatusQ
|
||||
|
||||
#These are set implictly by qdoc as well, but only with these the module header can be found
|
||||
includepaths = -I . \
|
||||
-I $PWD/../src/StatusQ
|
||||
|
||||
imagedirs = src/images
|
||||
sourcedirs += src \
|
||||
$PWD/../src/StatusQ/Components \
|
||||
$PWD/../src/StatusQ/Controls \
|
||||
$PWD/../src/StatusQ/Core \
|
||||
$PWD/../src/StatusQ/Layout \
|
||||
$PWD/../src/StatusQ/Platform \
|
||||
$PWD/../src/StatusQ/Popups \
|
||||
|
||||
sources.fileextensions = "*.cpp *.qdoc *.qml"
|
||||
|
||||
depends += qtcore \
|
||||
qtquick \
|
||||
qtqml \
|
||||
qtgui \
|
||||
qtdoc \
|
||||
qtquickcontrols2
|
||||
|
||||
navigation.homepage = "StatusQ"
|
||||
|
||||
outputdir = $PWD/html
|
||||
outputformats = HTML
|
||||
|
||||
HTML.stylesheets = style.css
|
||||
HTML.headerstyles = "<link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\"/>\n"
|
||||
HTML.postheader = "<p class=\"header\"><small>StatusQ - A Components selection for Status dekstop client. </p></small></p><hr/>"
|
||||
HTML.footer = "<hr/><div class=\"footer\"><p><acronym title=\"Copyright\">©</acronym> 2022 Status. All rights reserved. <a href=\"https://status.im\" target=\"_blank\"><small>status.im</a></small></p></div>"
|
||||
@@ -0,0 +1,41 @@
|
||||
body {
|
||||
font-family: "Verdana";
|
||||
font-size: 14px;
|
||||
max-width: 80%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
color: #4360DF;
|
||||
}
|
||||
|
||||
div.sidebar {
|
||||
float: right;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 15px;
|
||||
}
|
||||
div.qmlproto {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
pre, div.qmlproto {
|
||||
font-family: "Courier New";
|
||||
font-size: 20px;
|
||||
margin-left: 2em;
|
||||
background-color: #F0F2F5;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
p.header {
|
||||
margin-bottom: -1em;
|
||||
}
|
||||
p.footer {
|
||||
text-align: right;
|
||||
margin-top: -1em;
|
||||
}
|
||||
@@ -1,239 +0,0 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
Grid {
|
||||
|
||||
columns: 3
|
||||
columnSpacing: 38
|
||||
rowSpacing: 10
|
||||
|
||||
horizontalItemAlignment: Grid.AlignHCenter
|
||||
|
||||
// Large
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
loading: true
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
loading: true
|
||||
type: StatusBaseButton.Type.Danger
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
loading: true
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Small
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
loading: true
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
size: StatusBaseButton.Size.Small
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
size: StatusBaseButton.Size.Small
|
||||
loading: true
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
size: StatusBaseButton.Size.Small
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Icon buttons
|
||||
|
||||
// blue
|
||||
|
||||
StatusRoundButton {
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
icon.name: "info"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
icon.name: "info"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// black
|
||||
|
||||
StatusRoundButton {
|
||||
type: StatusRoundButton.Type.Secondary
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
type: StatusRoundButton.Type.Secondary
|
||||
icon.name: "info"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
type: StatusRoundButton.Type.Secondary
|
||||
icon.name: "info"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Rounded blue
|
||||
|
||||
StatusFlatRoundButton {
|
||||
width: 44
|
||||
height: 44
|
||||
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
width: 44
|
||||
height: 44
|
||||
icon.name: "info"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
width: 44
|
||||
height: 44
|
||||
icon.name: "info"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Rounded white
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 44
|
||||
height: 44
|
||||
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 44
|
||||
height: 44
|
||||
icon.name: "info"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 44
|
||||
height: 44
|
||||
icon.name: "info"
|
||||
loading: true
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
icon.name: "info"
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
StatusFlatButton {
|
||||
icon.name: "info"
|
||||
text: "Button"
|
||||
enabled: false
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
icon.name: "info"
|
||||
text: "Button"
|
||||
loading: true
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
project(Sandbox)
|
||||
|
||||
find_package(
|
||||
Qt5
|
||||
COMPONENTS Core Quick QuickControls2
|
||||
REQUIRED)
|
||||
|
||||
file(GLOB_RECURSE QML_FILES "../*.qml")
|
||||
file(GLOB_RECURSE JS_FILES "../*.js")
|
||||
file(GLOB_RECURSE HEADERS *.h)
|
||||
if(APPLE)
|
||||
file(GLOB_RECURSE SOURCES *.cpp *.mm)
|
||||
else()
|
||||
file(GLOB_RECURSE SOURCES *.cpp)
|
||||
endif()
|
||||
|
||||
qt5_add_big_resources(QRC_FILES qml.qrc ../src/statusq.qrc ../src/assets.qrc)
|
||||
|
||||
add_executable(
|
||||
${PROJECT_NAME}
|
||||
${HEADERS}
|
||||
${SOURCES}
|
||||
${QRC_FILES}
|
||||
${QML_FILES}
|
||||
${JS_FILES})
|
||||
|
||||
target_compile_definitions(${PROJECT_NAME}
|
||||
PRIVATE SRC_DIR="${CMAKE_CURRENT_LIST_DIR}")
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::QuickControls2
|
||||
SortFilterProxyModel)
|
||||
|
||||
if (APPLE)
|
||||
find_library(AppKit AppKit)
|
||||
find_library(Foundation Foundation)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${AppKit} ${Foundation})
|
||||
endif()
|
||||
@@ -1,174 +0,0 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Controls 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
|
||||
import Sandbox 0.1
|
||||
|
||||
GridLayout {
|
||||
columns: 6
|
||||
columnSpacing: 5
|
||||
rowSpacing: 5
|
||||
|
||||
StatusIconTabButton {
|
||||
icon.name: "chat"
|
||||
}
|
||||
|
||||
StatusIconTabButton {
|
||||
icon.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
}
|
||||
|
||||
StatusIconTabButton {
|
||||
icon.color: Theme.palette.miscColor9
|
||||
// This icon source is flawed and demonstrates the fallback case
|
||||
// when the image source can't be loaded
|
||||
icon.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jp"
|
||||
name: "Pascal"
|
||||
}
|
||||
|
||||
StatusIconTabButton {
|
||||
name: "#status"
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Hover me!"
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Top"
|
||||
}
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Right"
|
||||
orientation: StatusToolTip.Orientation.Right
|
||||
x: parent.width + 16
|
||||
y: parent.height / 2 - height / 2 + 4
|
||||
}
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Bottom"
|
||||
orientation: StatusToolTip.Orientation.Bottom
|
||||
y: parent.height + 12
|
||||
}
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Left"
|
||||
orientation: StatusToolTip.Orientation.Left
|
||||
x: -parent.width /2 -8
|
||||
y: parent.height / 2 - height / 2 + 4
|
||||
}
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
tooltip.text: "Chat"
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
name: "#status"
|
||||
tooltip.text: "Some Channel"
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
tooltip.text: "Some Community"
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "profile"
|
||||
tooltip.text: "Profile"
|
||||
badge.value: 0
|
||||
badge.visible: true
|
||||
badge.anchors.leftMargin:-16
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
tooltip.text: "Chat"
|
||||
badge.value: 35
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
tooltip.text: "Chat"
|
||||
badge.value: 100
|
||||
}
|
||||
|
||||
StatusSwitch {
|
||||
|
||||
}
|
||||
|
||||
StatusRadioButton {
|
||||
text: "i'm radio!"
|
||||
}
|
||||
|
||||
StatusCheckBox {}
|
||||
|
||||
StatusChatInfoButton {
|
||||
title: "Iuri Matias"
|
||||
subTitle: "Contact"
|
||||
icon.color: Theme.palette.miscColor7
|
||||
image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
type: StatusChatInfoButton.Type.OneToOneChat
|
||||
muted: true
|
||||
pinnedMessagesCount: 1
|
||||
}
|
||||
|
||||
StatusChatInfoButton {
|
||||
title: "group"
|
||||
subTitle: "Group Chat"
|
||||
pinnedMessagesCount: 1
|
||||
icon.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.GroupChat
|
||||
}
|
||||
|
||||
StatusChatInfoButton {
|
||||
title: "public-chat"
|
||||
subTitle: "Public Chat"
|
||||
icon.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.PublicChat
|
||||
}
|
||||
|
||||
StatusChatInfoButton {
|
||||
title: "community-channel"
|
||||
subTitle: "Community Chat"
|
||||
icon.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.CommunityChat
|
||||
}
|
||||
|
||||
StatusSlider {
|
||||
width: 360
|
||||
from: 0
|
||||
to: 100
|
||||
value: 40
|
||||
}
|
||||
|
||||
StatusBaseInput {
|
||||
placeholderText: "One line"
|
||||
}
|
||||
|
||||
StatusBaseInput {
|
||||
multiline: true
|
||||
placeholderText: "Multiline"
|
||||
}
|
||||
|
||||
StatusBaseInput {
|
||||
multiline: true
|
||||
placeholderText: "Multiline with static height"
|
||||
implicitHeight: 100
|
||||
}
|
||||
|
||||
Item {
|
||||
implicitHeight: 300
|
||||
implicitWidth: 300
|
||||
|
||||
StatusBaseInput {
|
||||
anchors.centerIn: parent
|
||||
multiline: true
|
||||
placeholderText: "Multiline with max/min"
|
||||
minimumHeight: 80
|
||||
maximumHeight: 200
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,46 +7,65 @@ import StatusQ.Controls 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Layout 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
import StatusQ.Platform 0.1
|
||||
|
||||
import "demoapp"
|
||||
import "demoapp/data" 1.0
|
||||
|
||||
Rectangle {
|
||||
id: demoApp
|
||||
height: 602
|
||||
width: 902
|
||||
width: 1002
|
||||
border.width: 1
|
||||
border.color: Theme.palette.baseColor2
|
||||
|
||||
Row {
|
||||
anchors.top: demoApp.top
|
||||
anchors.left: demoApp.left
|
||||
anchors.topMargin: 14
|
||||
anchors.leftMargin: 14
|
||||
property string titleStyle: "osx"
|
||||
|
||||
spacing: 6
|
||||
z: statusAppLayout.z + 1
|
||||
QtObject {
|
||||
id: appSectionType
|
||||
readonly property int chat: 0
|
||||
readonly property int community: 1
|
||||
readonly property int communitiesPortal: 2
|
||||
readonly property int wallet: 3
|
||||
readonly property int browser: 3
|
||||
readonly property int nodeManagement: 5
|
||||
readonly property int profileSettings: 6
|
||||
readonly property int apiDocumentation: 100
|
||||
readonly property int demoApp: 101
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
color: "#E24640"
|
||||
height: 12
|
||||
width: 12
|
||||
radius: 6
|
||||
}
|
||||
Rectangle {
|
||||
color: "#FFC12F"
|
||||
height: 12
|
||||
width: 12
|
||||
radius: 6
|
||||
}
|
||||
Rectangle {
|
||||
color: "#2ACB42"
|
||||
height: 12
|
||||
width: 12
|
||||
radius: 6
|
||||
function setActiveItem(sectionId) {
|
||||
for (var i = 0; i < Models.demoAppSectionsModel.count; i++) {
|
||||
let item = Models.demoAppSectionsModel.get(i)
|
||||
if (item.sectionId !== sectionId)
|
||||
{
|
||||
Models.demoAppSectionsModel.setProperty(i, "active", false)
|
||||
continue
|
||||
}
|
||||
|
||||
Models.demoAppSectionsModel.setProperty(i, "active", true);
|
||||
}
|
||||
}
|
||||
|
||||
StatusAppLayout {
|
||||
StatusMacTrafficLights {
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
anchors.margins: 13
|
||||
z: statusAppLayout.z + 1
|
||||
visible: titleStyle === "osx"
|
||||
}
|
||||
|
||||
StatusWindowsTitleBar {
|
||||
id: windowsTitle
|
||||
anchors.top: parent.top
|
||||
width: parent.width
|
||||
z: statusAppLayout.z + 1
|
||||
visible: titleStyle === "windows"
|
||||
}
|
||||
|
||||
StatusMainLayout {
|
||||
id: statusAppLayout
|
||||
anchors.top: demoApp.top
|
||||
anchors.top: windowsTitle.visible ? windowsTitle.bottom : demoApp.top
|
||||
anchors.left: demoApp.left
|
||||
anchors.topMargin: demoApp.border.width
|
||||
anchors.leftMargin: demoApp.border.width
|
||||
@@ -54,36 +73,83 @@ Rectangle {
|
||||
height: demoApp.height - demoApp.border.width * 2
|
||||
width: demoApp.width - demoApp.border.width * 2
|
||||
|
||||
appNavBar: StatusAppNavBar {
|
||||
leftPanel: StatusAppNavBar {
|
||||
|
||||
id: navBar
|
||||
|
||||
navBarChatButton: StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
tooltip.text: "Chat"
|
||||
checked: appView.sourceComponent == statusAppChatView
|
||||
onClicked: {
|
||||
appView.sourceComponent = statusAppChatView
|
||||
}
|
||||
communityTypeRole: "sectionType"
|
||||
communityTypeValue: appSectionType.community
|
||||
sectionModel: Models.demoAppSectionsModel
|
||||
|
||||
property bool communityAdded: false
|
||||
|
||||
onAboutToUpdateFilteredRegularModel: {
|
||||
communityAdded = false
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.model: ListModel {
|
||||
ListElement {
|
||||
name: "Status Community"
|
||||
tooltipText: "Status Community"
|
||||
}
|
||||
filterRegularItem: function(item) {
|
||||
if(item.sectionType === appSectionType.community)
|
||||
if(communityAdded)
|
||||
return false
|
||||
else
|
||||
communityAdded = true
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.delegate: StatusNavBarTabButton {
|
||||
id: communityBtn
|
||||
filterCommunityItem: function(item) {
|
||||
return item.sectionType === appSectionType.community
|
||||
}
|
||||
|
||||
regularNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.name
|
||||
tooltip.text: model.tooltipText
|
||||
icon.color: Theme.palette.miscColor6
|
||||
icon.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
checked: appView.sourceComponent == statusAppCommunityView
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
onClicked: {
|
||||
appView.sourceComponent = statusAppCommunityView
|
||||
if(model.sectionType === appSectionType.chat)
|
||||
{
|
||||
appView.sourceComponent = statusAppChatView
|
||||
demoApp.setActiveItem(model.sectionId)
|
||||
}
|
||||
else if(model.sectionType === appSectionType.communitiesPortal)
|
||||
{
|
||||
appView.sourceComponent = statusCommunityPortalView
|
||||
demoApp.setActiveItem(model.sectionId)
|
||||
}
|
||||
else if(model.sectionType === appSectionType.profileSettings)
|
||||
{
|
||||
appView.sourceComponent = statusAppProfileSettingsView
|
||||
demoApp.setActiveItem(model.sectionId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
communityNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
onClicked: {
|
||||
if(model.sectionType === appSectionType.community)
|
||||
{
|
||||
appView.sourceComponent = statusAppCommunityView
|
||||
demoApp.setActiveItem(model.sectionId)
|
||||
}
|
||||
}
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
@@ -108,48 +174,14 @@ Rectangle {
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Leave Community")
|
||||
icon.name: "arrow-right"
|
||||
icon.width: 14
|
||||
iconRotation: 180
|
||||
icon.name: "arrow-left"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
navBarTabButtons: [
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "wallet"
|
||||
tooltip.text: "Wallet"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "browser"
|
||||
tooltip.text: "Browser"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "status-update"
|
||||
tooltip.text: "Timeline"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
id: profileNavButton
|
||||
icon.name: "profile"
|
||||
badge.visible: true
|
||||
badge.anchors.rightMargin: 4
|
||||
badge.anchors.topMargin: 5
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusAppNavBar.backgroundColor
|
||||
badge.border.width: 2
|
||||
|
||||
tooltip.text: "Profile"
|
||||
|
||||
checked: appView.sourceComponent == statusAppProfileSettingsView
|
||||
onClicked: {
|
||||
appView.sourceComponent = statusAppProfileSettingsView
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
appView: Loader {
|
||||
rightPanel: Loader {
|
||||
id: appView
|
||||
anchors.fill: parent
|
||||
sourceComponent: statusAppChatView
|
||||
@@ -158,713 +190,36 @@ Rectangle {
|
||||
|
||||
Component {
|
||||
id: statusAppChatView
|
||||
|
||||
StatusAppTwoPanelLayout {
|
||||
|
||||
leftPanel: Item {
|
||||
anchors.fill: parent
|
||||
|
||||
StatusNavigationPanelHeadline {
|
||||
id: headline
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 16
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: "Chat"
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.top: headline.bottom
|
||||
anchors.topMargin: 16
|
||||
width: parent.width
|
||||
spacing: 8
|
||||
|
||||
StatusContactRequestsIndicatorListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
title: "Contact requests"
|
||||
requestsCount: 3
|
||||
sensor.onClicked: demoContactRequestsModal.open()
|
||||
}
|
||||
|
||||
StatusChatList {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
chatListItems.model: demoChatListItems
|
||||
selectedChatId: "0"
|
||||
onChatItemSelected: selectedChatId = id
|
||||
onChatItemUnmuted: {
|
||||
for (var i = 0; i < demoChatListItems.count; i++) {
|
||||
let item = demoChatListItems.get(i);
|
||||
if (item.chatId === id) {
|
||||
demoChatListItems.setProperty(i, "muted", false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
|
||||
property string chatId
|
||||
|
||||
openHandler: function (id) {
|
||||
chatId = id
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "View Profile"
|
||||
icon.name: "group-chat"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mute chat"
|
||||
icon.name: "notification"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mark as Read"
|
||||
icon.name: "checkmark-circle"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Clear history"
|
||||
icon.name: "close-circle"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Delete chat"
|
||||
icon.name: "delete"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rightPanel: Item {
|
||||
anchors.fill: parent
|
||||
|
||||
StatusChatToolBar {
|
||||
anchors.top: parent.top
|
||||
width: parent.width
|
||||
|
||||
chatInfoButton.title: "Amazing Funny Squirrel"
|
||||
chatInfoButton.subTitle: "Contact"
|
||||
chatInfoButton.icon.color: Theme.palette.miscColor7
|
||||
chatInfoButton.type: StatusChatInfoButton.Type.OneToOneChat
|
||||
chatInfoButton.pinnedMessagesCount: 1
|
||||
|
||||
notificationCount: 1
|
||||
|
||||
onNotificationButtonClicked: notificationCount = 0
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
id: contextMenu
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mute Chat"
|
||||
icon.name: "notification"
|
||||
}
|
||||
StatusMenuItem {
|
||||
text: "Mark as Read"
|
||||
icon.name: "checkmark-circle"
|
||||
}
|
||||
StatusMenuItem {
|
||||
text: "Clear History"
|
||||
icon.name: "close-circle"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Leave Chat"
|
||||
icon.name: "arrow-right"
|
||||
icon.width: 14
|
||||
iconRotation: 180
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
StatusAppChatView { }
|
||||
}
|
||||
|
||||
Component {
|
||||
id: statusAppCommunityView
|
||||
|
||||
StatusAppTwoPanelLayout {
|
||||
|
||||
leftPanel: Item {
|
||||
id: leftPanel
|
||||
anchors.fill: parent
|
||||
|
||||
StatusChatInfoToolBar {
|
||||
id: statusChatInfoToolBar
|
||||
|
||||
anchors.top: parent.top
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
chatInfoButton.title: "CryptoKitties"
|
||||
chatInfoButton.subTitle: "128 Members"
|
||||
chatInfoButton.image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
chatInfoButton.icon.color: Theme.palette.miscColor6
|
||||
chatInfoButton.onClicked: demoCommunityDetailModal.open()
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Create channel"
|
||||
icon.name: "channel"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Create category"
|
||||
icon.name: "channel-category"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Invite people"
|
||||
icon.name: "share-ios"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
ScrollView {
|
||||
id: scrollView
|
||||
|
||||
anchors.top: statusChatInfoToolBar.bottom
|
||||
anchors.topMargin: 8
|
||||
anchors.bottom: parent.bottom
|
||||
width: leftPanel.width
|
||||
|
||||
contentHeight: communityCategories.height
|
||||
clip: true
|
||||
|
||||
StatusChatListAndCategories {
|
||||
id: communityCategories
|
||||
height: implicitHeight > (leftPanel.height - 64) ? implicitHeight + 8 : leftPanel.height - 64
|
||||
width: leftPanel.width
|
||||
|
||||
chatList.model: demoCommunityChatListItems
|
||||
categoryList.model: demoCommunityCategoryItems
|
||||
|
||||
showCategoryActionButtons: true
|
||||
onChatItemSelected: selectedChatId = id
|
||||
|
||||
categoryPopupMenu: StatusPopupMenu {
|
||||
|
||||
property string categoryId
|
||||
|
||||
openHandler: function (id) {
|
||||
categoryId = id
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mute Category"
|
||||
icon.name: "notification"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mark as Read"
|
||||
icon.name: "checkmark-circle"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Edit Category"
|
||||
icon.name: "edit"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Delete Category"
|
||||
icon.name: "delete"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
|
||||
chatListPopupMenu: StatusPopupMenu {
|
||||
|
||||
property string chatId
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mute chat"
|
||||
icon.name: "notification"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mark as Read"
|
||||
icon.name: "checkmark-circle"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Clear history"
|
||||
icon.name: "close-circle"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Delete chat"
|
||||
icon.name: "delete"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
StatusMenuItem {
|
||||
text: "Create channel"
|
||||
icon.name: "channel"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Create category"
|
||||
icon.name: "channel-category"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Invite people"
|
||||
icon.name: "share-ios"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rightPanel: Item {
|
||||
anchors.fill: parent
|
||||
|
||||
StatusChatToolBar {
|
||||
anchors.top: parent.top
|
||||
width: parent.width
|
||||
|
||||
chatInfoButton.title: "general"
|
||||
chatInfoButton.subTitle: "Community Chat"
|
||||
chatInfoButton.icon.color: Theme.palette.miscColor6
|
||||
chatInfoButton.type: StatusChatInfoButton.Type.CommunityChat
|
||||
}
|
||||
StatusAppCommunityView {
|
||||
communityDetailModalTitle: demoCommunityDetailModal.header.title
|
||||
communityDetailModalImage: demoCommunityDetailModal.header.asset.name
|
||||
onChatInfoButtonClicked: {
|
||||
demoCommunityDetailModal.open();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: statusAppProfileSettingsView
|
||||
|
||||
StatusAppTwoPanelLayout {
|
||||
|
||||
leftPanel: Item {
|
||||
anchors.fill: parent
|
||||
|
||||
StatusNavigationPanelHeadline {
|
||||
id: profileHeadline
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 16
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: "Profile"
|
||||
}
|
||||
|
||||
ScrollView {
|
||||
anchors.top: profileHeadline.bottom
|
||||
anchors.topMargin: 16
|
||||
anchors.bottom: parent.bottom
|
||||
width: parent.width
|
||||
|
||||
contentHeight: profileMenuItems.height + 8
|
||||
contentWidth: parent.width
|
||||
clip: true
|
||||
|
||||
Column {
|
||||
id: profileMenuItems
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
spacing: 4
|
||||
|
||||
Repeater {
|
||||
model: demoProfileGeneralMenuItems
|
||||
delegate: StatusNavigationListItem {
|
||||
title: model.title
|
||||
icon.name: model.icon
|
||||
}
|
||||
}
|
||||
|
||||
StatusListSectionHeadline { text: "Settings" }
|
||||
|
||||
Repeater {
|
||||
model: demoProfileSettingsMenuItems
|
||||
delegate: StatusNavigationListItem {
|
||||
title: model.title
|
||||
icon.name: model.icon
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: invisibleSeparator
|
||||
height: 16
|
||||
width: parent.width
|
||||
}
|
||||
|
||||
Repeater {
|
||||
model: demoProfileOtherMenuItems
|
||||
delegate: StatusNavigationListItem {
|
||||
title: model.title
|
||||
icon.name: model.icon
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rightPanel: Item {
|
||||
anchors.fill: parent
|
||||
}
|
||||
}
|
||||
StatusAppProfileSettingsView { }
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
Component {
|
||||
id: statusCommunityPortalView
|
||||
StatusAppCommunitiesPortalView { }
|
||||
}
|
||||
|
||||
DemoContactRequestsModal {
|
||||
id: demoContactRequestsModal
|
||||
anchors.centerIn: parent
|
||||
|
||||
header.title: "Contact Requests"
|
||||
headerActionButton: StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 32
|
||||
height: 32
|
||||
|
||||
icon.width: 20
|
||||
icon.height: 20
|
||||
icon.name: "notification"
|
||||
}
|
||||
|
||||
content: StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Contact request will be shown here"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Decline all"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
onClicked: demoContactRequestsModal.close()
|
||||
},
|
||||
StatusButton {
|
||||
text: "Accept all"
|
||||
onClicked: demoContactRequestsModal.close()
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
DemoCommunityDetailModal {
|
||||
id: demoCommunityDetailModal
|
||||
|
||||
anchors.centerIn: parent
|
||||
|
||||
header.title: "Cryptokitties"
|
||||
header.subTitle: "Public Community"
|
||||
header.image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
|
||||
content: Column {
|
||||
width: demoCommunityDetailModal.width
|
||||
|
||||
StatusModalDivider {
|
||||
bottomPadding: 8
|
||||
}
|
||||
|
||||
StatusBaseText {
|
||||
text: "A community of cat lovers, meow!"
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pixelSize: 15
|
||||
height: 46
|
||||
color: Theme.palette.directColor1
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.leftMargin: 16
|
||||
anchors.rightMargin: 16
|
||||
}
|
||||
|
||||
StatusModalDivider {
|
||||
topPadding: 8
|
||||
bottomPadding: 8
|
||||
}
|
||||
|
||||
StatusDescriptionListItem {
|
||||
title: "Share community"
|
||||
subTitle: "https://join.status.im/u/0x04...45f19"
|
||||
tooltip.text: "Copy to clipboard"
|
||||
icon.name: "copy"
|
||||
iconButton.onClicked: tooltip.visible = !tooltip.visible
|
||||
width: parent.width
|
||||
}
|
||||
|
||||
StatusModalDivider {
|
||||
topPadding: 8
|
||||
bottomPadding: 8
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Members"
|
||||
icon.name: "group-chat"
|
||||
label: "184"
|
||||
components: [
|
||||
StatusIcon {
|
||||
icon: "chevron-down"
|
||||
rotation: 270
|
||||
color: Theme.palette.baseColor1
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Notifications"
|
||||
icon.name: "notification"
|
||||
components: [
|
||||
StatusSwitch {}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModalDivider {
|
||||
topPadding: 8
|
||||
bottomPadding: 8
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Edit community"
|
||||
icon.name: "edit"
|
||||
type: StatusListItem.Type.Secondary
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Transfer ownership"
|
||||
icon.name: "exchange"
|
||||
type: StatusListItem.Type.Secondary
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Leave community"
|
||||
icon.name: "arrow-right"
|
||||
icon.rotation: 180
|
||||
type: StatusListItem.Type.Secondary
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: demoChatListItems
|
||||
ListElement {
|
||||
chatId: "0"
|
||||
name: "#status"
|
||||
chatType: StatusChatListItem.Type.PublicChat
|
||||
muted: false
|
||||
hasUnreadMessages: false
|
||||
hasMention: false
|
||||
unreadMessagesCount: 0
|
||||
color: "blue"
|
||||
}
|
||||
ListElement {
|
||||
chatId: "1"
|
||||
name: "status-desktop"
|
||||
chatType: StatusChatListItem.Type.PublicChat
|
||||
muted: false
|
||||
hasUnreadMessages: true
|
||||
color: "red"
|
||||
unreadMessagesCount: 1
|
||||
}
|
||||
ListElement {
|
||||
chatId: "2"
|
||||
name: "Amazing Funny Squirrel"
|
||||
chatType: StatusChatListItem.Type.OneToOneChat
|
||||
muted: false
|
||||
hasUnreadMessages: false
|
||||
color: "green"
|
||||
identicon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0Bh
|
||||
CExPynn1gWf9bx498P7/nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
||||
unreadMessagesCount: 0
|
||||
}
|
||||
ListElement {
|
||||
chatId: "3"
|
||||
name: "Black Ops"
|
||||
chatType: StatusChatListItem.Type.GroupChat
|
||||
muted: false
|
||||
hasUnreadMessages: false
|
||||
color: "purple"
|
||||
unreadMessagesCount: 0
|
||||
}
|
||||
ListElement {
|
||||
chatId: "4"
|
||||
name: "Spectacular Growing Otter"
|
||||
chatType: StatusChatListItem.Type.OneToOneChat
|
||||
muted: true
|
||||
hasUnreadMessages: false
|
||||
color: "Orange"
|
||||
unreadMessagesCount: 0
|
||||
}
|
||||
ListElement {
|
||||
chatId: "5"
|
||||
name: "channel-with-a-super-duper-long-name"
|
||||
chatType: StatusChatListItem.Type.PublicChat
|
||||
muted: false
|
||||
hasUnreadMessages: false
|
||||
color: "green"
|
||||
unreadMessagesCount: 0
|
||||
}
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: demoCommunityChatListItems
|
||||
ListElement {
|
||||
chatId: "0"
|
||||
name: "general"
|
||||
chatType: StatusChatListItem.Type.CommunityChat
|
||||
muted: false
|
||||
hasUnreadMessages: false
|
||||
hasMention: false
|
||||
unreadMessagesCount: 0
|
||||
color: "orange"
|
||||
}
|
||||
ListElement {
|
||||
chatId: "1"
|
||||
name: "random"
|
||||
chatType: StatusChatListItem.Type.CommunityChat
|
||||
muted: false
|
||||
hasUnreadMessages: false
|
||||
hasMention: false
|
||||
unreadMessagesCount: 0
|
||||
color: "orange"
|
||||
categoryId: "public"
|
||||
}
|
||||
ListElement {
|
||||
chatId: "2"
|
||||
name: "watercooler"
|
||||
chatType: StatusChatListItem.Type.CommunityChat
|
||||
muted: false
|
||||
hasUnreadMessages: false
|
||||
hasMention: false
|
||||
unreadMessagesCount: 0
|
||||
color: "orange"
|
||||
categoryId: "public"
|
||||
}
|
||||
ListElement {
|
||||
chatId: "3"
|
||||
name: "language-design"
|
||||
chatType: StatusChatListItem.Type.CommunityChat
|
||||
muted: false
|
||||
hasUnreadMessages: false
|
||||
hasMention: false
|
||||
unreadMessagesCount: 0
|
||||
color: "orange"
|
||||
categoryId: "dev"
|
||||
}
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: demoCommunityCategoryItems
|
||||
ListElement {
|
||||
categoryId: "public"
|
||||
name: "Public"
|
||||
}
|
||||
ListElement {
|
||||
categoryId: "dev"
|
||||
name: "Development"
|
||||
}
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: demoProfileGeneralMenuItems
|
||||
|
||||
ListElement {
|
||||
title: "My Profile"
|
||||
icon: "profile"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "Contacts"
|
||||
icon: "contact"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "ENS Usernames"
|
||||
icon: "username"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: demoProfileSettingsMenuItems
|
||||
|
||||
ListElement {
|
||||
title: "Privacy & Security"
|
||||
icon: "security"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "Appearance"
|
||||
icon: "appearance"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "Browser"
|
||||
icon: "browser"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "Sounds"
|
||||
icon: "sound"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "Language"
|
||||
icon: "language"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "Notifications"
|
||||
icon: "notification"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "Sync settings"
|
||||
icon: "mobile"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "Advanced"
|
||||
icon: "settings"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: demoProfileOtherMenuItems
|
||||
|
||||
ListElement {
|
||||
title: "Need help?"
|
||||
icon: "help"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "About"
|
||||
icon: "info"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
title: "Sign out & Quit"
|
||||
icon: "logout"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,295 +0,0 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Controls 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Layout 0.1
|
||||
|
||||
Column {
|
||||
spacing: 5
|
||||
|
||||
StatusChatToolBar {
|
||||
chatInfoButton.title: "Some contact"
|
||||
chatInfoButton.subTitle: "Contact"
|
||||
chatInfoButton.icon.color: Theme.palette.miscColor7
|
||||
chatInfoButton.type: StatusChatInfoButton.Type.OneToOneChat
|
||||
}
|
||||
|
||||
StatusChatToolBar {
|
||||
chatInfoButton.title: "Some contact"
|
||||
chatInfoButton.subTitle: "Contact"
|
||||
chatInfoButton.icon.color: Theme.palette.miscColor7
|
||||
chatInfoButton.type: StatusChatInfoButton.Type.PublicChat
|
||||
chatInfoButton.pinnedMessagesCount: 1
|
||||
chatInfoButton.muted: true
|
||||
}
|
||||
|
||||
StatusChatToolBar {
|
||||
chatInfoButton.title: "Some contact"
|
||||
chatInfoButton.subTitle: "Contact"
|
||||
chatInfoButton.icon.color: Theme.palette.miscColor7
|
||||
chatInfoButton.type: StatusChatInfoButton.Type.OneToOneChat
|
||||
chatInfoButton.pinnedMessagesCount: 1
|
||||
notificationCount: 1
|
||||
}
|
||||
|
||||
Row {
|
||||
spacing: 5
|
||||
Button {
|
||||
id: btn
|
||||
text: "Append"
|
||||
onClicked: {
|
||||
buttons.append({
|
||||
name: "Test community",
|
||||
tooltipText: "Test Community"
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
StatusAppNavBar {
|
||||
navBarChatButton: StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
badge.value: 33
|
||||
badge.visible: true
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
tooltip.text: "Chat"
|
||||
}
|
||||
}
|
||||
|
||||
StatusAppNavBar {
|
||||
navBarChatButton: StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
badge.value: 33
|
||||
badge.visible: true
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
tooltip.text: "Chat"
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.model: ListModel {
|
||||
id: buttons
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.delegate: StatusNavBarTabButton {
|
||||
name: model.name
|
||||
tooltip.text: model.name
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
navBarTabButtons: [
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "wallet"
|
||||
tooltip.text: "Wallet"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "browser"
|
||||
tooltip.text: "Browser"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "status-update"
|
||||
tooltip.text: "Timeline"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "profile"
|
||||
badge.visible: true
|
||||
badge.anchors.rightMargin: 4
|
||||
badge.anchors.topMargin: 5
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
|
||||
tooltip.text: "Profile"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusAppNavBar {
|
||||
navBarChatButton: StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
badge.value: 33
|
||||
badge.visible: true
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
tooltip.text: "Chat"
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.model: ListModel {
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.delegate: StatusNavBarTabButton {
|
||||
name: model.name
|
||||
tooltip.text: model.name
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
navBarTabButtons: [
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "wallet"
|
||||
tooltip.text: "Wallet"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "browser"
|
||||
tooltip.text: "Browser"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusAppNavBar {
|
||||
navBarChatButton: StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
badge.value: 33
|
||||
badge.visible: true
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
tooltip.text: "Chat"
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.model: ListModel {
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.delegate: StatusNavBarTabButton {
|
||||
name: model.name
|
||||
tooltip.text: model.name
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
navBarTabButtons: [
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "wallet"
|
||||
tooltip.text: "Wallet"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "browser"
|
||||
tooltip.text: "Browser"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "status-update"
|
||||
tooltip.text: "Timeline"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "profile"
|
||||
badge.visible: true
|
||||
badge.anchors.rightMargin: 4
|
||||
badge.anchors.topMargin: 5
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
|
||||
tooltip.text: "Profile"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusAppNavBar {
|
||||
id: test
|
||||
navBarChatButton: StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
badge.value: 33
|
||||
badge.visible: true
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
tooltip.text: "Chat"
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.model: ListModel {
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
ListElement {
|
||||
name: "Test community"
|
||||
tooltipText: "Test Community"
|
||||
}
|
||||
}
|
||||
|
||||
navBarCommunityTabButtons.delegate: StatusNavBarTabButton {
|
||||
name: model.name
|
||||
tooltip.text: model.name
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
navBarTabButtons: [
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "wallet"
|
||||
tooltip.text: "Wallet"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "browser"
|
||||
tooltip.text: "Browser"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "status-update"
|
||||
tooltip.text: "Timeline"
|
||||
},
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "profile"
|
||||
badge.visible: true
|
||||
badge.anchors.rightMargin: 4
|
||||
badge.anchors.topMargin: 5
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
|
||||
tooltip.text: "Profile"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,250 +0,0 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Components 0.1
|
||||
|
||||
GridLayout {
|
||||
columns: 1
|
||||
columnSpacing: 5
|
||||
rowSpacing: 5
|
||||
|
||||
StatusNavigationListItem {
|
||||
title: "Menu Item"
|
||||
}
|
||||
|
||||
StatusNavigationListItem {
|
||||
title: "Menu Item"
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusNavigationListItem {
|
||||
title: "Menu Item"
|
||||
icon.name: "info"
|
||||
badge.value: 1
|
||||
}
|
||||
StatusNavigationListItem {
|
||||
title: "Menu Item (selected)"
|
||||
selected: true
|
||||
icon.name: "info"
|
||||
badge.value: 1
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
id: test
|
||||
name: "public-channel"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
}
|
||||
|
||||
StatusChatListCategoryItem {
|
||||
title: "Chat list category"
|
||||
opened: false
|
||||
showActionButtons: true
|
||||
}
|
||||
|
||||
StatusChatListCategoryItem {
|
||||
title: "Chat list category (opened)"
|
||||
opened: true
|
||||
showActionButtons: true
|
||||
}
|
||||
|
||||
StatusChatListCategoryItem {
|
||||
title: "Chat list category (no buttons)"
|
||||
opened: true
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "group-chat"
|
||||
type: StatusChatListItem.Type.GroupChat
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "community-channel"
|
||||
type: StatusChatListItem.Type.CommunityChat
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "community-channel-with-image"
|
||||
image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
type: StatusChatListItem.Type.CommunityChat
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "Weird Crazy Otter"
|
||||
image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
type: StatusChatListItem.Type.OneToOneChat
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "has-unread-messages"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
hasUnreadMessages: true
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "has-mentions"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
badge.value: 1
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "is-muted"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
muted: true
|
||||
onUnmute: muted = false
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "selected-channel"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
selected: true
|
||||
}
|
||||
StatusChatListItem {
|
||||
name: "selected-muted-channel"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
selected: true
|
||||
muted: true
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
components: [StatusButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
components: [StatusSwitch {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
components: [StatusRadioButton {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
components: [StatusCheckBox {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
label: "Text"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
label: "Text"
|
||||
components: [
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
label: "Text"
|
||||
components: [StatusSwitch {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
label: "Text"
|
||||
components: [
|
||||
StatusRadioButton {}
|
||||
]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
label: "Text"
|
||||
components: [StatusCheckBox {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
icon.name: "info"
|
||||
label: "Text"
|
||||
components: [
|
||||
StatusBadge {
|
||||
value: 1
|
||||
},
|
||||
StatusIcon {
|
||||
icon: "info"
|
||||
color: Theme.palette.baseColor1
|
||||
width: 20
|
||||
height: 20
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
icon.name: "info"
|
||||
type: StatusListItem.Type.Secondary
|
||||
}
|
||||
|
||||
StatusDescriptionListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
}
|
||||
|
||||
StatusDescriptionListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
tooltip.text: "Tooltip"
|
||||
icon.name: "info"
|
||||
iconButton.onClicked: tooltip.visible = !tooltip.visible
|
||||
}
|
||||
|
||||
StatusContactRequestsIndicatorListItem {
|
||||
title: "Contact requests"
|
||||
requestsCount: 3
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Components 0.1
|
||||
|
||||
GridLayout {
|
||||
columns: 6
|
||||
columnSpacing: 5
|
||||
rowSpacing: 5
|
||||
|
||||
StatusLoadingIndicator {
|
||||
color: Theme.palette.directColor4
|
||||
}
|
||||
|
||||
StatusLetterIdenticon {
|
||||
name: "#status"
|
||||
}
|
||||
|
||||
StatusRoundedImage {
|
||||
image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
}
|
||||
|
||||
StatusBadge {}
|
||||
|
||||
StatusBadge {
|
||||
value: 1
|
||||
}
|
||||
|
||||
StatusBadge {
|
||||
value: 10
|
||||
}
|
||||
|
||||
StatusBadge {
|
||||
value: 100
|
||||
}
|
||||
|
||||
StatusRoundIcon {
|
||||
icon.name: "info"
|
||||
}
|
||||
}
|
||||
@@ -1,174 +0,0 @@
|
||||
import QtQuick 2.14
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
|
||||
Column {
|
||||
spacing: 20
|
||||
|
||||
StatusButton {
|
||||
text: "Simple modal"
|
||||
onClicked: simpleModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with header image"
|
||||
onClicked: headerImageModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with footer buttons"
|
||||
onClicked: footerButtonsModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with header action button"
|
||||
onClicked: headerActionButtonModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with content"
|
||||
onClicked: modalExample.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with changable content"
|
||||
onClicked: modalWithContentAccess.open()
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: simpleModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some Title"
|
||||
header.subTitle: "Subtitle"
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: headerImageModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some Title"
|
||||
header.subTitle: "Subtitle"
|
||||
header.image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: footerButtonsModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some Title"
|
||||
header.subTitle: "Subtitle"
|
||||
header.image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
leftButtons: [
|
||||
StatusRoundButton {
|
||||
icon.name: "arrow-right"
|
||||
rotation: 180
|
||||
}
|
||||
]
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
},
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: headerActionButtonModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some Title"
|
||||
header.subTitle: "Subtitle"
|
||||
header.image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
|
||||
headerActionButton: StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 32
|
||||
height: 32
|
||||
|
||||
icon.width: 20
|
||||
icon.height: 20
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
leftButtons: [
|
||||
StatusRoundButton {
|
||||
icon.name: "arrow-right"
|
||||
rotation: 180
|
||||
}
|
||||
]
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
},
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: modalExample
|
||||
anchors.centerIn: parent
|
||||
header.image.source: "https://pbs.twimg.com/profile_images/1369221718338895873/T_5fny6o_400x400.jpg"
|
||||
header.title: "Header"
|
||||
header.subTitle: "SubTitle"
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
},
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
}
|
||||
]
|
||||
|
||||
leftButtons: [
|
||||
StatusRoundButton {
|
||||
icon.name: "arrow-right"
|
||||
rotation: 180
|
||||
}
|
||||
]
|
||||
|
||||
content: StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Some text content"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
headerActionButton: StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 32
|
||||
height: 32
|
||||
|
||||
icon.width: 20
|
||||
icon.height: 20
|
||||
icon.name: "info"
|
||||
}
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: modalWithContentAccess
|
||||
anchors.centerIn: parent
|
||||
header.title: "Header"
|
||||
header.subTitle: "SubTitle"
|
||||
|
||||
content: StatusBaseText {
|
||||
id: text
|
||||
anchors.centerIn: parent
|
||||
text: "Some text content"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Change text"
|
||||
onClicked: {
|
||||
modalWithContentAccess.contentComponent.text = "Changed!"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
import QtQuick.Controls 2.13
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
|
||||
GridLayout {
|
||||
columns: 1
|
||||
columnSpacing: 5
|
||||
rowSpacing: 5
|
||||
|
||||
StatusButton {
|
||||
text: "Simple"
|
||||
onClicked: simpleMenu.popup()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Complex"
|
||||
onClicked: complexMenu.popup()
|
||||
}
|
||||
|
||||
StatusPopupMenu {
|
||||
id: simpleMenu
|
||||
StatusMenuItem {
|
||||
text: "One"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Two"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Three"
|
||||
}
|
||||
}
|
||||
|
||||
StatusPopupMenu {
|
||||
id: complexMenu
|
||||
subMenuItemIcons: ['info']
|
||||
StatusMenuItem {
|
||||
text: "One"
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Two"
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Three"
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusPopupMenu {
|
||||
title: "Four"
|
||||
StatusMenuItem {
|
||||
text: "One"
|
||||
icon.name: "info"
|
||||
}
|
||||
StatusMenuItem {
|
||||
text: "Three"
|
||||
icon.name: "info"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,8 @@ Item {
|
||||
id: themeSwitchWrapper
|
||||
signal checkedChanged()
|
||||
|
||||
property alias lightThemeEnabled: switchControl.checked
|
||||
|
||||
width: themeSwitch.width
|
||||
height: themeSwitch.height
|
||||
|
||||
@@ -26,6 +28,7 @@ Item {
|
||||
}
|
||||
|
||||
StatusSwitch {
|
||||
id: switchControl
|
||||
onCheckedChanged: themeSwitchWrapper.checkedChanged()
|
||||
|
||||
StatusToolTip {
|
||||
|
||||
@@ -0,0 +1,432 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
import QtQuick.Dialogs 1.3
|
||||
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
Column {
|
||||
spacing: 10
|
||||
Grid {
|
||||
id: buttonGridWidth
|
||||
columns: 3
|
||||
columnSpacing: 38
|
||||
rowSpacing: 10
|
||||
|
||||
horizontalItemAlignment: Grid.AlignHCenter
|
||||
|
||||
// Primary
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Primary
|
||||
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Look I'm a tooltip on a button!"
|
||||
}
|
||||
onClicked: console.warn("Primary button clicked")
|
||||
onPressed: console.warn("Primary button pressed")
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
type: StatusBaseButton.Type.Primary
|
||||
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Tooltip on a disabled button, should not be visible!"
|
||||
}
|
||||
onClicked: console.warn("Primary disabled button clicked, this should not happen !!!")
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
loading: true
|
||||
type: StatusBaseButton.Type.Primary
|
||||
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Look I'm a tooltip on a loading button!"
|
||||
}
|
||||
onClicked: console.warn("Primary loading button clicked, this should not happen !!!")
|
||||
}
|
||||
|
||||
// Large
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Large + Icon
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
loading: true
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
// Danger
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
loading: true
|
||||
type: StatusBaseButton.Type.Danger
|
||||
}
|
||||
|
||||
// Flat
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Flat + Danger
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Small
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Small + danger
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
size: StatusBaseButton.Size.Small
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
size: StatusBaseButton.Size.Small
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Flat + small
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
text: "Button"
|
||||
enabled: false
|
||||
size: StatusBaseButton.Size.Small
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Icon buttons
|
||||
|
||||
// blue
|
||||
|
||||
StatusRoundButton {
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
icon.name: "info"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
icon.name: "info"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// black
|
||||
|
||||
StatusRoundButton {
|
||||
type: StatusRoundButton.Type.Secondary
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
type: StatusRoundButton.Type.Secondary
|
||||
icon.name: "info"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
type: StatusRoundButton.Type.Secondary
|
||||
icon.name: "info"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// transparent
|
||||
|
||||
StatusRoundButton {
|
||||
type: StatusRoundButton.Type.Tertiary
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
type: StatusRoundButton.Type.Tertiary
|
||||
icon.name: "info"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusRoundButton {
|
||||
type: StatusRoundButton.Type.Tertiary
|
||||
icon.name: "info"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Rounded blue
|
||||
|
||||
StatusFlatRoundButton {
|
||||
width: 44
|
||||
height: 44
|
||||
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
width: 44
|
||||
height: 44
|
||||
icon.name: "info"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
width: 44
|
||||
height: 44
|
||||
icon.name: "info"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Rounded white
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 44
|
||||
height: 44
|
||||
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 44
|
||||
height: 44
|
||||
icon.name: "info"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 44
|
||||
height: 44
|
||||
icon.name: "info"
|
||||
loading: true
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
icon.name: "info"
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
StatusFlatButton {
|
||||
icon.name: "info"
|
||||
text: "Button"
|
||||
enabled: false
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
StatusFlatButton {
|
||||
icon.name: "info"
|
||||
text: "Button"
|
||||
loading: true
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
|
||||
// Tertiary
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
icon.name: "gif"
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
icon.name: "gif"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
icon.name: "gif"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// No background Tertiary
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
color: "transparent"
|
||||
icon.name: "gif"
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
icon.name: "gif"
|
||||
color: "transparent"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
icon.name: "gif"
|
||||
color: "transparent"
|
||||
loading: true
|
||||
}
|
||||
|
||||
// Quartenery
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Quaternary
|
||||
icon.name: "gif"
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Quaternary
|
||||
icon.name: "gif"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Quaternary
|
||||
icon.name: "gif"
|
||||
loading: true
|
||||
}
|
||||
}
|
||||
|
||||
StatusPickerButton {
|
||||
width: buttonGridWidth.width
|
||||
bgColor: colorDialog.colorSelected ? colorDialog.color : Theme.palette.baseColor2
|
||||
contentColor: colorDialog.colorSelected ? Theme.palette.indirectColor1 : Theme.palette.baseColor1
|
||||
text: colorDialog.colorSelected ? colorDialog.color.toString().toUpperCase() : "Pick a color"
|
||||
onClicked: {
|
||||
colorDialog.open();
|
||||
}
|
||||
}
|
||||
|
||||
StatusColorDialog {
|
||||
id: colorDialog
|
||||
anchors.centerIn: parent
|
||||
property bool colorSelected: false
|
||||
onAccepted: {
|
||||
colorSelected = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Button with emoji
|
||||
StatusButton {
|
||||
text: "Button with Emoji"
|
||||
asset.emoji: "🖼️️"
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
width: parent.width
|
||||
text: "wide"
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
|
||||
StatusIconTextButton {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
spacing: 0
|
||||
statusIcon: "next"
|
||||
icon.width: 24
|
||||
icon.height: 24
|
||||
iconRotation: 180
|
||||
text: "Previous page"
|
||||
font.pixelSize: 15
|
||||
onClicked: testText.visible = !testText.visible
|
||||
}
|
||||
StatusBaseText {
|
||||
id: testText
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
text: "Click and hide!"
|
||||
font.pixelSize: 15
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,241 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Controls 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
|
||||
import Sandbox 0.1
|
||||
|
||||
GridLayout {
|
||||
columns: 1
|
||||
columnSpacing: 5
|
||||
rowSpacing: 5
|
||||
|
||||
StatusSelectableText {
|
||||
color: Theme.palette.baseColor1
|
||||
text: "This is a multiline paragraph that can be selected and copied. A paragraph is a group of words put together to form a group that is usually longer than a sentence. Paragraphs are often made up of several sentences. There are usually between three and eight sentences. Paragraphs can begin with an indentation (about five spaces), or by missing a line out, and then starting again."
|
||||
font.pixelSize: 15
|
||||
width: 300
|
||||
multiline: true
|
||||
}
|
||||
|
||||
StatusSelectableText {
|
||||
color: Theme.palette.baseColor1
|
||||
text: "<p>This is a selectable link in rich text format to test <a href='www.google.com'>www.google.com</a></p>"
|
||||
font.pixelSize: 15
|
||||
width: 200
|
||||
}
|
||||
|
||||
StatusIconTabButton {
|
||||
icon.name: "chat"
|
||||
}
|
||||
|
||||
StatusIconTabButton {
|
||||
icon.source: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
}
|
||||
|
||||
StatusIconTabButton {
|
||||
icon.color: Theme.palette.miscColor9
|
||||
// This icon source is flawed and demonstrates the fallback case
|
||||
// when the image source can't be loaded
|
||||
icon.source: "https://httpstat.us/404"
|
||||
name: "Pascal"
|
||||
}
|
||||
|
||||
StatusIconTabButton {
|
||||
name: "#status"
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Hover me!"
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Top"
|
||||
}
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Right"
|
||||
orientation: StatusToolTip.Orientation.Right
|
||||
x: parent.width + 16
|
||||
y: parent.height / 2 - height / 2 + 4
|
||||
}
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Bottom"
|
||||
orientation: StatusToolTip.Orientation.Bottom
|
||||
y: parent.height + 12
|
||||
}
|
||||
StatusToolTip {
|
||||
visible: parent.hovered
|
||||
text: "Left"
|
||||
orientation: StatusToolTip.Orientation.Left
|
||||
x: -parent.width /2 -8
|
||||
y: parent.height / 2 - height / 2 + 4
|
||||
}
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
tooltip.text: "Chat"
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
name: "#status"
|
||||
tooltip.text: "Some Channel"
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.source: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
tooltip.text: "Some Community"
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "profile"
|
||||
tooltip.text: "Profile"
|
||||
badge.value: 0
|
||||
badge.visible: true
|
||||
badge.anchors.leftMargin:-16
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
tooltip.text: "Chat"
|
||||
badge.value: 35
|
||||
}
|
||||
|
||||
StatusNavBarTabButton {
|
||||
icon.name: "chat"
|
||||
tooltip.text: "Chat"
|
||||
badge.value: 100
|
||||
}
|
||||
|
||||
StatusSwitch {
|
||||
|
||||
}
|
||||
StatusSwitch {
|
||||
text: "Switch with text"
|
||||
}
|
||||
|
||||
StatusRadioButton {
|
||||
text: "Radio button 1"
|
||||
checked: true
|
||||
}
|
||||
StatusRadioButton {
|
||||
text: "Radio button 2 (clicking on this text will uncheck the above)"
|
||||
}
|
||||
StatusRadioButton {
|
||||
LayoutMirroring.enabled : true
|
||||
text: "Radio button 3 (forced right-to-left)"
|
||||
}
|
||||
|
||||
StatusCheckBox {}
|
||||
StatusCheckBox { checkState: Qt.Checked}
|
||||
StatusCheckBox { text: "Check me on left side"}
|
||||
StatusCheckBox { text: "Check me on right side"; leftSide: false}
|
||||
|
||||
StatusChatInfoButton {
|
||||
title: "Iuri Matias"
|
||||
subTitle: "Contact"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
asset.isImage: true
|
||||
asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
type: StatusChatInfoButton.Type.OneToOneChat
|
||||
muted: true
|
||||
pinnedMessagesCount: 1
|
||||
}
|
||||
|
||||
Item {
|
||||
implicitWidth: 100
|
||||
implicitHeight: 48
|
||||
StatusChatInfoButton {
|
||||
title: "Iuri Matias elided"
|
||||
subTitle: "Very long subtitle should elide as well"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
asset.isImage: true
|
||||
asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
type: StatusChatInfoButton.Type.OneToOneChat
|
||||
muted: true
|
||||
pinnedMessagesCount: 10
|
||||
width: 100
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
implicitWidth: 100
|
||||
implicitHeight: 48
|
||||
StatusChatInfoButton {
|
||||
title: "Iuri Matias big not elided"
|
||||
subTitle: "Contact"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
asset.isImage: true
|
||||
asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
type: StatusChatInfoButton.Type.OneToOneChat
|
||||
muted: true
|
||||
pinnedMessagesCount: 1
|
||||
width: 400
|
||||
}
|
||||
}
|
||||
|
||||
StatusChatInfoButton {
|
||||
title: "group"
|
||||
subTitle: "Group Chat"
|
||||
pinnedMessagesCount: 1
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.GroupChat
|
||||
}
|
||||
|
||||
StatusChatInfoButton {
|
||||
title: "public-chat"
|
||||
subTitle: "Public Chat"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.PublicChat
|
||||
}
|
||||
|
||||
StatusChatInfoButton {
|
||||
title: "community-channel"
|
||||
subTitle: "Community Chat"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.CommunityChat
|
||||
}
|
||||
|
||||
StatusChatInfoButton {
|
||||
title: "community-channel"
|
||||
subTitle: "Some very long description text to see how the whole item wraps or elides"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.CommunityChat
|
||||
pinnedMessagesCount: 3
|
||||
}
|
||||
|
||||
StatusSlider {
|
||||
width: 360
|
||||
from: 0
|
||||
to: 100
|
||||
value: 40
|
||||
}
|
||||
|
||||
StatusLabeledSlider {
|
||||
width: 360
|
||||
model: [ qsTr("XS"), qsTr("S"), qsTr("M"), qsTr("L"), qsTr("XL"), qsTr("XXL")]
|
||||
}
|
||||
|
||||
StatusLabeledSlider {
|
||||
width: 360
|
||||
model: [ qsTr("50%"), qsTr("100%"), qsTr("150%"), qsTr("200%")]
|
||||
}
|
||||
|
||||
StatusBanner {
|
||||
id: banner
|
||||
width: 360
|
||||
topPadding: 20
|
||||
type: StatusBanner.Type.Danger
|
||||
statusText: "Banner"
|
||||
}
|
||||
|
||||
StatusProgressBar {
|
||||
id: progressBar
|
||||
text: "Weak"
|
||||
value: 0.5
|
||||
fillColor : Theme.palette.pinColor1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,498 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Controls 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Layout 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
|
||||
Column {
|
||||
spacing: 10
|
||||
|
||||
StatusToolBar {
|
||||
width: 518
|
||||
headerContent: StatusChatInfoButton {
|
||||
width: Math.min(implicitWidth, parent.width)
|
||||
title: "Some contact"
|
||||
subTitle: "Contact"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.OneToOneChat
|
||||
}
|
||||
}
|
||||
|
||||
StatusToolBar {
|
||||
width: 518
|
||||
|
||||
headerContent: StatusChatInfoButton {
|
||||
width: Math.min(implicitWidth, parent.width)
|
||||
title: "Muted public chat"
|
||||
subTitle: "Some subtitle"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.PublicChat
|
||||
pinnedMessagesCount: 1
|
||||
muted: true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
StatusToolBar {
|
||||
notificationCount: 1
|
||||
width: 518
|
||||
|
||||
headerContent: StatusChatInfoButton {
|
||||
width: Math.min(implicitWidth, parent.width)
|
||||
title: "Group chat"
|
||||
subTitle: "Group chat subtitle"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.GroupChat
|
||||
pinnedMessagesCount: 1
|
||||
}
|
||||
}
|
||||
|
||||
StatusToolBar {
|
||||
width: 518
|
||||
|
||||
headerContent: StatusChatInfoButton {
|
||||
title: "Community chat"
|
||||
subTitle: "Some very long description text to see how the whole item wraps or ellides"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.CommunityChat
|
||||
pinnedMessagesCount: 3
|
||||
}
|
||||
}
|
||||
|
||||
StatusToolBar {
|
||||
headerContent: StatusChatInfoButton {
|
||||
title: "Very long chat name"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.CommunityChat
|
||||
pinnedMessagesCount: 1234567891
|
||||
}
|
||||
}
|
||||
|
||||
StatusToolBar {
|
||||
notificationCount: 1
|
||||
width: 518
|
||||
|
||||
StatusTagSelector {
|
||||
namesModel: ListModel {
|
||||
ListElement {
|
||||
publicId: "0x0"
|
||||
name: "Maria"
|
||||
icon: ""
|
||||
isIdenticon: false
|
||||
onlineStatus: 3
|
||||
isReadonly: true
|
||||
tagIcon: "crown"
|
||||
}
|
||||
ListElement {
|
||||
publicId: "0x1"
|
||||
name: "James"
|
||||
icon: ""
|
||||
isIdenticon: false
|
||||
onlineStatus: 1
|
||||
isReadonly: false
|
||||
tagIcon: ""
|
||||
}
|
||||
}
|
||||
toLabelText: qsTr("To: ")
|
||||
warningText: qsTr("USER LIMIT REACHED")
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
spacing: 5
|
||||
Button {
|
||||
id: btn
|
||||
text: "Append"
|
||||
onClicked: {
|
||||
buttons.append({
|
||||
name: "Test community",
|
||||
tooltipText: "Test Community"
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
QtObject {
|
||||
id: appSectionType
|
||||
readonly property int chat: 0
|
||||
readonly property int community: 1
|
||||
readonly property int wallet: 2
|
||||
readonly property int browser: 3
|
||||
readonly property int nodeManagement: 4
|
||||
readonly property int profileSettings: 5
|
||||
}
|
||||
|
||||
StatusAppNavBar {
|
||||
|
||||
sectionModel: ListModel {
|
||||
ListElement {sectionId: "chat"; sectionType: 0; name: "Chat"; active: true; image: ""; icon: "chat"; color: ""; hasNotification: true; notificationsCount: 12}
|
||||
}
|
||||
|
||||
regularNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
}
|
||||
}
|
||||
|
||||
StatusAppNavBar {
|
||||
|
||||
communityTypeRole: "sectionType"
|
||||
communityTypeValue: appSectionType.community
|
||||
sectionModel: ListModel {
|
||||
ListElement {sectionId: "chat"; sectionType: 0; name: "Chat"; active: true; image: ""; icon: "chat"; color: ""; hasNotification: true; notificationsCount: 12}
|
||||
ListElement {sectionId: "0x0001"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 12}
|
||||
ListElement {sectionId: "wallet"; sectionType: 2; name: "Wallet"; active: false; image: ""; icon: "wallet"; color: ""; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "browser"; sectionType: 3; name: "Browser"; active: false; image: ""; icon: "bigger/browser"; color: ""; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "profile"; sectionType: 5; name: "Profile"; active: false; image: ""; icon: "bigger/settings"; color: ""; hasNotification: true; notificationsCount: 0}
|
||||
}
|
||||
|
||||
property bool communityAdded: false
|
||||
|
||||
filterRegularItem: function(item) {
|
||||
if(item.sectionType === appSectionType.community)
|
||||
if(communityAdded)
|
||||
return false
|
||||
else
|
||||
communityAdded = true
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
filterCommunityItem: function(item) {
|
||||
return item.sectionType === appSectionType.community
|
||||
}
|
||||
|
||||
regularNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
}
|
||||
|
||||
communityNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Invite People")
|
||||
icon.name: "share-ios"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("View Community")
|
||||
icon.name: "group"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Edit Community")
|
||||
icon.name: "edit"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Leave Community")
|
||||
icon.name: "arrow-left"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StatusAppNavBar {
|
||||
|
||||
communityTypeRole: "sectionType"
|
||||
communityTypeValue: appSectionType.community
|
||||
sectionModel: ListModel {
|
||||
ListElement {sectionId: "chat"; sectionType: 0; name: "Chat"; active: true; image: ""; icon: "chat"; color: ""; hasNotification: true; notificationsCount: 12}
|
||||
ListElement {sectionId: "0x0001"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 12}
|
||||
ListElement {sectionId: "wallet"; sectionType: 2; name: "Wallet"; active: false; image: ""; icon: "wallet"; color: ""; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "browser"; sectionType: 3; name: "Browser"; active: false; image: ""; icon: "bigger/browser"; color: ""; hasNotification: false; notificationsCount: 0}
|
||||
}
|
||||
|
||||
property bool communityAdded: false
|
||||
|
||||
filterRegularItem: function(item) {
|
||||
if(item.sectionType === appSectionType.community)
|
||||
if(communityAdded)
|
||||
return false
|
||||
else
|
||||
communityAdded = true
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
filterCommunityItem: function(item) {
|
||||
return item.sectionType === appSectionType.community
|
||||
}
|
||||
|
||||
regularNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
}
|
||||
|
||||
communityNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Invite People")
|
||||
icon.name: "share-ios"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("View Community")
|
||||
icon.name: "group"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Edit Community")
|
||||
icon.name: "edit"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Leave Community")
|
||||
icon.name: "arrow-left"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
StatusAppNavBar {
|
||||
|
||||
communityTypeRole: "sectionType"
|
||||
communityTypeValue: appSectionType.community
|
||||
sectionModel: ListModel {
|
||||
ListElement {sectionId: "chat"; sectionType: 0; name: "Chat"; active: true; image: ""; icon: "chat"; color: ""; hasNotification: true; notificationsCount: 12}
|
||||
ListElement {sectionId: "0x0001"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "0x0002"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "0x0003"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "0x0004"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 0}
|
||||
ListElement {sectionId: "wallet"; sectionType: 2; name: "Wallet"; active: false; image: ""; icon: "wallet"; color: ""; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "browser"; sectionType: 3; name: "Browser"; active: false; image: ""; icon: "bigger/browser"; color: ""; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "profile"; sectionType: 5; name: "Profile"; active: false; image: ""; icon: "bigger/settings"; color: ""; hasNotification: false; notificationsCount: 0}
|
||||
}
|
||||
|
||||
property bool communityAdded: false
|
||||
|
||||
filterRegularItem: function(item) {
|
||||
if(item.sectionType === appSectionType.community)
|
||||
if(communityAdded)
|
||||
return false
|
||||
else
|
||||
communityAdded = true
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
filterCommunityItem: function(item) {
|
||||
return item.sectionType === appSectionType.community
|
||||
}
|
||||
|
||||
regularNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
}
|
||||
|
||||
communityNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Invite People")
|
||||
icon.name: "share-ios"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("View Community")
|
||||
icon.name: "group"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Edit Community")
|
||||
icon.name: "edit"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Leave Community")
|
||||
icon.name: "arrow-left"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StatusAppNavBar {
|
||||
|
||||
communityTypeRole: "sectionType"
|
||||
communityTypeValue: appSectionType.community
|
||||
sectionModel: ListModel {
|
||||
ListElement {sectionId: "chat"; sectionType: 0; name: "Chat"; active: true; image: ""; icon: "chat"; color: ""; hasNotification: true; notificationsCount: 12}
|
||||
ListElement {sectionId: "0x0001"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 12}
|
||||
ListElement {sectionId: "0x0002"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "0x0003"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 0}
|
||||
ListElement {sectionId: "0x0004"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 1}
|
||||
ListElement {sectionId: "0x0005"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "0x0006"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 3}
|
||||
ListElement {sectionId: "0x0007"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 5}
|
||||
ListElement {sectionId: "0x0008"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 0}
|
||||
ListElement {sectionId: "0x0009"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "0x0010"; sectionType: 1; name: "Test Community"; active: false; image: ""; icon: ""; color: "#00ff00"; hasNotification: true; notificationsCount: 11}
|
||||
ListElement {sectionId: "wallet"; sectionType: 2; name: "Wallet"; active: false; image: ""; icon: "wallet"; color: ""; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "browser"; sectionType: 3; name: "Browser"; active: false; image: ""; icon: "bigger/browser"; color: ""; hasNotification: false; notificationsCount: 0}
|
||||
ListElement {sectionId: "profile"; sectionType: 5; name: "Profile"; active: false; image: ""; icon: "bigger/settings"; color: ""; hasNotification: true; notificationsCount: 0}
|
||||
}
|
||||
|
||||
property bool communityAdded: false
|
||||
|
||||
filterRegularItem: function(item) {
|
||||
if(item.sectionType === appSectionType.community)
|
||||
if(communityAdded)
|
||||
return false
|
||||
else
|
||||
communityAdded = true
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
filterCommunityItem: function(item) {
|
||||
return item.sectionType === appSectionType.community
|
||||
}
|
||||
|
||||
regularNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
}
|
||||
|
||||
communityNavBarButton: StatusNavBarTabButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
name: model.icon.length > 0? "" : model.name
|
||||
icon.name: model.icon
|
||||
icon.source: model.image
|
||||
tooltip.text: model.name
|
||||
autoExclusive: true
|
||||
checked: model.active
|
||||
badge.value: model.notificationsCount
|
||||
badge.visible: model.hasNotification
|
||||
badge.border.color: hovered ? Theme.palette.statusBadge.hoverBorderColor : Theme.palette.statusBadge.borderColor
|
||||
badge.border.width: 2
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Invite People")
|
||||
icon.name: "share-ios"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("View Community")
|
||||
icon.name: "group"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Edit Community")
|
||||
icon.name: "edit"
|
||||
enabled: false
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: qsTr("Leave Community")
|
||||
icon.name: "arrow-left"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,617 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Controls 2.14
|
||||
import QtQml.Models 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Core.Utils 0.1
|
||||
|
||||
ColumnLayout {
|
||||
spacing: 5
|
||||
|
||||
StatusNavigationListItem {
|
||||
title: "Menu Item"
|
||||
}
|
||||
|
||||
StatusNavigationListItem {
|
||||
title: "Menu Item"
|
||||
asset.name: "info"
|
||||
}
|
||||
|
||||
StatusNavigationListItem {
|
||||
title: "Menu Item"
|
||||
asset.name: "info"
|
||||
badge.value: 1
|
||||
}
|
||||
StatusNavigationListItem {
|
||||
title: "Menu Item (selected) with very long text"
|
||||
selected: true
|
||||
asset.name: "info"
|
||||
badge.value: 1
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
id: test
|
||||
name: "public-channel"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
}
|
||||
|
||||
StatusChatListCategoryItem {
|
||||
title: "Chat list category"
|
||||
opened: false
|
||||
showActionButtons: true
|
||||
}
|
||||
|
||||
StatusChatListCategoryItem {
|
||||
title: "Chat list category (opened)"
|
||||
opened: true
|
||||
showActionButtons: true
|
||||
}
|
||||
|
||||
StatusChatListCategoryItem {
|
||||
title: "Chat list category (no buttons)"
|
||||
opened: true
|
||||
}
|
||||
|
||||
StatusChatListCategoryItem {
|
||||
id: categoryItemInteractive
|
||||
title: "Chat category interactive"
|
||||
showActionButtons: true
|
||||
onAddButtonClicked: testEventsList.eventTriggered("Add button clicked")
|
||||
onMenuButtonClicked: testEventsList.eventTriggered("Menu button clicked")
|
||||
onToggleButtonClicked: {
|
||||
opened = !opened
|
||||
testEventsList.eventTriggered("Toggle button clicked")
|
||||
}
|
||||
onTitleClicked: {
|
||||
testEventsList.eventTriggered("Title clicked")
|
||||
}
|
||||
onClicked: {
|
||||
opened = !opened
|
||||
testEventsList.eventTriggered("Item clicked", itemId)
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: testEventsList
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: categoryItemInteractive.opened ? 20 * count : 0
|
||||
|
||||
clip: true
|
||||
|
||||
function eventTriggered(message) {
|
||||
let obj = eventDelegateComponent.createObject()
|
||||
obj.text = message
|
||||
model.insert(0, obj)
|
||||
}
|
||||
|
||||
Component {
|
||||
id: eventDelegateComponent
|
||||
|
||||
ItemDelegate {
|
||||
implicitHeight: 20
|
||||
|
||||
property int index: ObjectModel.index
|
||||
|
||||
Timer {
|
||||
interval: 5000; running: true
|
||||
onTriggered: testObjectModel.remove(index)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
model: ObjectModel {
|
||||
id: testObjectModel
|
||||
}
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "group-chat"
|
||||
type: StatusChatListItem.Type.GroupChat
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "community-channel"
|
||||
type: StatusChatListItem.Type.CommunityChat
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "community-channel-emoji"
|
||||
type: StatusChatListItem.Type.CommunityChat
|
||||
asset.emoji: "😁"
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "community-channel-with-image"
|
||||
asset.isImage: true
|
||||
asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
type: StatusChatListItem.Type.CommunityChat
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "Weird Crazy Otter"
|
||||
asset.isImage: true
|
||||
asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
type: StatusChatListItem.Type.OneToOneChat
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "has-unread-messages"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
hasUnreadMessages: true
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "has-mentions"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
hasUnreadMessages: true
|
||||
notificationsCount: 1
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "is-muted"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
muted: true
|
||||
onUnmute: muted = false
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "muted-with-mentions"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
muted: true
|
||||
hasUnreadMessages: true
|
||||
notificationsCount: 1
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "selected-channel"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
selected: true
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "selected-muted-channel"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
selected: true
|
||||
muted: true
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "selected-muted-channel-with-unread-messages"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
selected: true
|
||||
muted: true
|
||||
hasUnreadMessages: true
|
||||
}
|
||||
|
||||
StatusChatListItem {
|
||||
name: "selected-muted-with-mentions"
|
||||
type: StatusChatListItem.Type.PublicChat
|
||||
selected: true
|
||||
muted: true
|
||||
hasUnreadMessages: true
|
||||
notificationsCount: 1
|
||||
}
|
||||
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
tertiaryTitle: "Tertiary title"
|
||||
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
statusListItemTitle.font.weight: Font.Bold
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Super long description that causes a multiline paragraph and makes the size of the component grow. Let's see how it behaves."
|
||||
tertiaryTitle: "Tertiary title"
|
||||
asset.name: "info"
|
||||
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
statusListItemTitle.font.weight: Font.Bold
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.isImage: true
|
||||
asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.isImage: true
|
||||
asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
||||
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
||||
asset.imgIsIdenticon: true
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
components: [StatusButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
components: [StatusSwitch {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
components: [StatusRadioButton {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
components: [StatusCheckBox {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
label: "Text"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
label: "Text"
|
||||
components: [
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
size: StatusBaseButton.Size.Small
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
label: "Text"
|
||||
components: [StatusSwitch {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
label: "Text"
|
||||
components: [
|
||||
StatusRadioButton {}
|
||||
]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
label: "Text"
|
||||
components: [StatusCheckBox {}]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
asset.name: "info"
|
||||
label: "Text"
|
||||
components: [
|
||||
StatusBadge {
|
||||
value: 1
|
||||
},
|
||||
StatusIcon {
|
||||
icon: "info"
|
||||
color: Theme.palette.baseColor1
|
||||
width: 20
|
||||
height: 20
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
asset.name: "info"
|
||||
type: StatusListItem.Type.Secondary
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
asset.isLetterIdenticon: true
|
||||
asset.color: "orange"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
titleAsideText: "test"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Title"
|
||||
asset.name: "delete"
|
||||
type: StatusListItem.Type.Danger
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "List Item with Badge"
|
||||
subTitle: "Subtitle"
|
||||
asset.isImage: true
|
||||
asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
||||
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
||||
asset.imgIsIdenticon: true
|
||||
badge.asset.isImage: true
|
||||
badge.asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
badge.primaryText: "CryptoKitties"
|
||||
badge.secondaryText: "#test"
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "List Item with Badge 2"
|
||||
subTitle: "Subtitle"
|
||||
asset.isLetterIdenticon: true
|
||||
badge.primaryText: "CryptoKitties"
|
||||
badge.secondaryText: "#test"
|
||||
badge.asset.color: "orange"
|
||||
badge.asset.isLetterIdenticon: true
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "List Item with Tags"
|
||||
asset.isLetterIdenticon: true
|
||||
bottomModel: 3
|
||||
bottomDelegate: StatusListItemTag {
|
||||
title: "tag"
|
||||
asset.isLetterIdenticon: true
|
||||
}
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "List Item with Inline Tags"
|
||||
asset.isLetterIdenticon: true
|
||||
tagsModel: ListModel{
|
||||
ListElement {
|
||||
name: "helloworld.eth"
|
||||
emoji: "😁"
|
||||
}
|
||||
ListElement {
|
||||
name: "account1"
|
||||
emoji: "😁"
|
||||
}
|
||||
ListElement {
|
||||
name: "account2"
|
||||
emoji: "😁"
|
||||
}
|
||||
ListElement {
|
||||
name: "account3"
|
||||
emoji: "😁"
|
||||
}
|
||||
ListElement {
|
||||
name: "account4"
|
||||
emoji: "😁"
|
||||
}
|
||||
}
|
||||
tagsDelegate: StatusListItemTag {
|
||||
color: "blue"
|
||||
height: 24
|
||||
radius: 6
|
||||
closeButtonVisible: false
|
||||
asset.emoji: model.emoji
|
||||
asset.emojiSize: Emoji.size.verySmall
|
||||
asset.isLetterIdenticon: true
|
||||
title: model.name
|
||||
titleText.font.pixelSize: 12
|
||||
titleText.color: Theme.palette.indirectColor1
|
||||
}
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "List Item with Emoji"
|
||||
subTitle: "Emoji"
|
||||
asset.emoji: "😁"
|
||||
asset.color: "yellow"
|
||||
asset.letterSize: 14
|
||||
asset.isLetterIdenticon: true
|
||||
}
|
||||
|
||||
StatusDescriptionListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
}
|
||||
|
||||
StatusDescriptionListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
value: "None"
|
||||
sensor.enabled: true
|
||||
}
|
||||
|
||||
StatusDescriptionListItem {
|
||||
title: "Title"
|
||||
subTitle: "Subtitle"
|
||||
tooltip.text: "Tooltip"
|
||||
asset.name: "info"
|
||||
iconButton.onClicked: tooltip.visible = !tooltip.visible
|
||||
}
|
||||
|
||||
StatusContactRequestsIndicatorListItem {
|
||||
title: "Contact requests"
|
||||
requestsCount: 3
|
||||
}
|
||||
|
||||
StatusMemberListItem {
|
||||
nickName: "This is an example"
|
||||
userName: "annabelle"
|
||||
pubKey: "0x043a7ed0e8752236a4688563652fd0296453cef00a5dcddbe252dc74f72cc1caa97a2b65e4a1a52d9c30a84c9966beaaaf6b333d659cbdd2e486b443ed1012cf04"
|
||||
isVerified: true
|
||||
isContact: true
|
||||
asset.isImage: true
|
||||
asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
||||
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
||||
asset.imgIsIdenticon: true
|
||||
status: 1 // FIXME: use enum
|
||||
ringSettings.ringSpecModel:
|
||||
ListModel {
|
||||
ListElement {colorId: 13; segmentLength: 5}
|
||||
ListElement {colorId: 31; segmentLength: 5}
|
||||
ListElement {colorId: 10; segmentLength: 1}
|
||||
ListElement {colorId: 2; segmentLength: 5}
|
||||
ListElement {colorId: 26; segmentLength: 2}
|
||||
ListElement {colorId: 19; segmentLength: 4}
|
||||
ListElement {colorId: 28; segmentLength: 3}
|
||||
}
|
||||
ringSettings.distinctiveColors: Theme.palette.identiconRingColors
|
||||
}
|
||||
|
||||
StatusMemberListItem {
|
||||
nickName: "carmen.eth"
|
||||
isUntrustworthy: true
|
||||
asset.isLetterIdenticon: true
|
||||
}
|
||||
|
||||
StatusMemberListItem {
|
||||
nickName: "very-long-annoying-nickname.eth"
|
||||
isUntrustworthy: true
|
||||
asset.isLetterIdenticon: true
|
||||
}
|
||||
|
||||
StatusMemberListItem {
|
||||
nickName: "untrusted-admin.eth"
|
||||
asset.isLetterIdenticon: true
|
||||
isUntrustworthy: true
|
||||
isAdmin: true
|
||||
isContact: true
|
||||
}
|
||||
|
||||
StatusMemberListItem {
|
||||
nickName: "This girl I know from work"
|
||||
userName: "annabelle"
|
||||
asset.isLetterIdenticon: true
|
||||
status: 1 // FIXME: use enum
|
||||
}
|
||||
|
||||
StatusMemberListItem {
|
||||
nickName: "Mark Cuban"
|
||||
userName: "annabelle"
|
||||
pubKey: "0x043a7ed0e8752236a4688563652fd0296453cef00a5dcddbe252dc74f72cc1caa97a2b65e4a1a52d9c30a84c9966beaaaf6b333d659cbdd2e486b443ed1012cf04"
|
||||
isContact: true
|
||||
asset.isImage: true
|
||||
asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
||||
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
||||
asset.imgIsIdenticon: true
|
||||
}
|
||||
|
||||
StatusMemberListItem {
|
||||
nickName: "admin.guy"
|
||||
userName: "adguy"
|
||||
isAdmin: true
|
||||
asset.isLetterIdenticon: true
|
||||
isUntrustworthy: true
|
||||
Component.onCompleted: {
|
||||
print(asset.name, asset.isImage, asset.isLetterIdenticon)
|
||||
}
|
||||
}
|
||||
|
||||
StatusBaseText {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: 16
|
||||
text: "Loading features:"
|
||||
font.pixelSize: 17
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Nokia 3310"
|
||||
subTitle: "Incoming device"
|
||||
label: "loading: true"
|
||||
asset.width: 40
|
||||
asset.height: 40
|
||||
asset.emoji: "😁"
|
||||
asset.color: "hotpink"
|
||||
asset.letterSize: 14
|
||||
asset.isLetterIdenticon: true
|
||||
loading: true
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
title: "Nokia 3310"
|
||||
subTitle: "Device"
|
||||
label: "loadingFailed: true"
|
||||
asset.width: 40
|
||||
asset.height: 40
|
||||
asset.emoji: "😁"
|
||||
asset.color: "hotpink"
|
||||
asset.letterSize: 14
|
||||
asset.isLetterIdenticon: true
|
||||
loadingFailed: true
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
implicitWidth: 600
|
||||
title: "List Item with Tags"
|
||||
subTitle: "03:32"
|
||||
asset.isLetterIdenticon: true
|
||||
inlineTagModel: 6
|
||||
inlineTagDelegate: StatusListItemTag {
|
||||
height: 24
|
||||
title: "tag"
|
||||
asset.isLetterIdenticon: true
|
||||
}
|
||||
components: [
|
||||
ColumnLayout {
|
||||
Row {
|
||||
Layout.alignment: Qt.AlignRight
|
||||
spacing: 4
|
||||
StatusIcon {
|
||||
color: Theme.palette.successColor1
|
||||
icon: "arrow-up"
|
||||
rotation: 135
|
||||
height: 18
|
||||
}
|
||||
StatusBaseText {
|
||||
text: "0.0000015 ETH"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
}
|
||||
StatusBaseText {
|
||||
Layout.alignment: Qt.AlignRight
|
||||
text: "1201.10 USD"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.baseColor1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
import QtQuick 2.14
|
||||
import QtQuick.Layouts 1.14
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Components 0.1
|
||||
|
||||
ColumnLayout {
|
||||
GridLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
columns: 6
|
||||
columnSpacing: 5
|
||||
rowSpacing: 5
|
||||
|
||||
StatusLoadingIndicator {
|
||||
color: Theme.palette.directColor4
|
||||
}
|
||||
|
||||
StatusLetterIdenticon {
|
||||
name: "#status"
|
||||
}
|
||||
|
||||
StatusRoundedImage {
|
||||
image.source: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
}
|
||||
|
||||
StatusBadge {}
|
||||
|
||||
StatusBadge {
|
||||
value: 1
|
||||
}
|
||||
|
||||
StatusBadge {
|
||||
value: 10
|
||||
}
|
||||
|
||||
StatusBadge {
|
||||
value: 100
|
||||
}
|
||||
|
||||
StatusRoundIcon {
|
||||
asset.name: "info"
|
||||
}
|
||||
}
|
||||
|
||||
Flow {
|
||||
Layout.fillWidth: true
|
||||
spacing: 4
|
||||
|
||||
Repeater {
|
||||
model: 12
|
||||
StatusLetterIdenticon {
|
||||
name: "A"
|
||||
color: Theme.palette.userCustomizationColors[index]
|
||||
letterSize: 16
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StatusDatePicker {
|
||||
label: "Select date"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,459 @@
|
||||
import QtQuick 2.14
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Core.Utils 0.1
|
||||
|
||||
Column {
|
||||
spacing: 20
|
||||
|
||||
StatusButton {
|
||||
text: "Simple modal"
|
||||
onClicked: simpleModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Simple title modal"
|
||||
onClicked: simpleTitleModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with header image"
|
||||
onClicked: headerImageModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with footer buttons"
|
||||
onClicked: footerButtonsModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with header action button"
|
||||
onClicked: headerActionButtonModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with content"
|
||||
onClicked: modalExample.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with changable content"
|
||||
onClicked: modalWithContentAccess.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with letter identicon"
|
||||
onClicked: modalWithLetterIdenticon.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with identicon"
|
||||
onClicked: modalWithIdenticon.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with editable identicon"
|
||||
onClicked: modalWithEditableIdenticon.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with long titles"
|
||||
onClicked: modalWithLongTitles.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with Header Popup Menu"
|
||||
onClicked: modalWithHeaderPopupMenu.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Spellchecking menu"
|
||||
onClicked: spellMenu.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with Editable Title"
|
||||
onClicked: editTitleModal.open()
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with Advanced Header/Footer"
|
||||
onClicked: advancedHeaderFooterModal.open()
|
||||
}
|
||||
|
||||
|
||||
StatusButton {
|
||||
text: "Modal with Floating header Buttons"
|
||||
onClicked: floatingHeaderModal.open()
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: simpleModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some Title"
|
||||
header.subTitle: "Subtitle"
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: simpleTitleModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some Title"
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: headerImageModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some Title"
|
||||
header.subTitle: "Subtitle"
|
||||
header.asset.isImage: true
|
||||
header.asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: footerButtonsModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some Title"
|
||||
header.subTitle: "Subtitle"
|
||||
header.asset.isImage: true
|
||||
header.asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
leftButtons: [
|
||||
StatusBackButton { }
|
||||
]
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
},
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: headerActionButtonModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some Title"
|
||||
header.subTitle: "Subtitle"
|
||||
header.asset.isImage: true
|
||||
header.asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
|
||||
headerActionButton: StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 32
|
||||
height: 32
|
||||
|
||||
icon.width: 20
|
||||
icon.height: 20
|
||||
icon.name: "info"
|
||||
}
|
||||
|
||||
leftButtons: [
|
||||
StatusBackButton { }
|
||||
]
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
},
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: modalExample
|
||||
anchors.centerIn: parent
|
||||
header.asset.isImage: true
|
||||
header.asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
header.title: "Header"
|
||||
header.subTitle: "SubTitle"
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
},
|
||||
StatusButton {
|
||||
text: "Button"
|
||||
}
|
||||
]
|
||||
|
||||
leftButtons: [
|
||||
StatusBackButton { }
|
||||
]
|
||||
|
||||
contentItem: StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Some text content"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
headerActionButton: StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 32
|
||||
height: 32
|
||||
|
||||
icon.width: 20
|
||||
icon.height: 20
|
||||
icon.name: "info"
|
||||
}
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: modalWithContentAccess
|
||||
anchors.centerIn: parent
|
||||
header.title: "Header"
|
||||
header.subTitle: "SubTitle"
|
||||
|
||||
contentItem: StatusBaseText {
|
||||
id: text
|
||||
anchors.centerIn: parent
|
||||
text: "Some text content"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Change text"
|
||||
onClicked: {
|
||||
modalWithContentAccess.contentItem.text = "Changed!"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: modalWithLetterIdenticon
|
||||
anchors.centerIn: parent
|
||||
header.title: "Header"
|
||||
header.subTitle: "SubTitle"
|
||||
header.asset.isLetterIdenticon: true
|
||||
header.asset.bgColor: "red"
|
||||
|
||||
contentItem: StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Some text content"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Change text"
|
||||
onClicked: {
|
||||
modalWithLetterIdenticon.contentItem.text = "Changed!"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: modalWithIdenticon
|
||||
anchors.centerIn: parent
|
||||
header.title: "Header"
|
||||
header.subTitle: "SubTitle"
|
||||
header.asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
||||
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
||||
header.asset.imgIsIdenticon: true
|
||||
|
||||
contentItem: StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Some text content"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Change text"
|
||||
onClicked: {
|
||||
modalWithIdenticon.contentItem.text = "Changed!"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: modalWithEditableIdenticon
|
||||
anchors.centerIn: parent
|
||||
header.title: "Header"
|
||||
header.subTitle: "SubTitle"
|
||||
header.headerImageEditable: true
|
||||
header.asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
||||
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
||||
header.asset.imgIsIdenticon: true
|
||||
|
||||
contentItem: StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Some text content"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Change text"
|
||||
onClicked: {
|
||||
modalWithIdenticon.contentItem.text = "Changed!"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: modalWithLongTitles
|
||||
anchors.centerIn: parent
|
||||
header.title: "Some super long text here that exceeds the available space"
|
||||
header.subTitle: "Some super long text here that exceeds the available space"
|
||||
header.subTitleElide: Text.ElideMiddle
|
||||
header.asset.name: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/
|
||||
nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC"
|
||||
header.asset.imgIsIdenticon: true
|
||||
|
||||
contentItem: StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Some text content"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Change text"
|
||||
onClicked: {
|
||||
modalWithLongTitles.contentItem.text = "Changed!"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: modalWithHeaderPopupMenu
|
||||
anchors.centerIn: parent
|
||||
header.title: "helloworld.eth"
|
||||
header.subTitle: "Basic address"
|
||||
header.popupMenu: StatusPopupMenu {
|
||||
id: popupMenu
|
||||
Repeater {
|
||||
model: dummyAccountsModel
|
||||
delegate: Loader {
|
||||
sourceComponent: popupMenu.delegate
|
||||
onLoaded: {
|
||||
item.action.text = model.name
|
||||
item.action.assetSettings.name = model.iconName
|
||||
}
|
||||
}
|
||||
}
|
||||
onMenuItemClicked: {
|
||||
popupMenu.dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: editTitleModal
|
||||
anchors.centerIn: parent
|
||||
header.title: "This title can be edited"
|
||||
header.editable: true
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: advancedHeaderFooterModal
|
||||
anchors.centerIn: parent
|
||||
showHeader: false
|
||||
showFooter: false
|
||||
showAdvancedHeader: true
|
||||
showAdvancedFooter: true
|
||||
height: 200
|
||||
advancedHeaderComponent: Rectangle {
|
||||
width: parent.width
|
||||
height: 50
|
||||
color: Theme.palette.baseColor1
|
||||
border.width: 1
|
||||
StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Add any header here"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
}
|
||||
advancedFooterComponent: Rectangle {
|
||||
width: parent.width
|
||||
height: 50
|
||||
color: Theme.palette.baseColor1
|
||||
border.width: 1
|
||||
StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Add any footer here"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
StatusModal {
|
||||
id: floatingHeaderModal
|
||||
anchors.centerIn: parent
|
||||
height: 200
|
||||
showHeader: false
|
||||
showFooter: false
|
||||
showAdvancedHeader: true
|
||||
hasFloatingButtons: true
|
||||
advancedHeaderComponent: StatusFloatingButtonsSelector {
|
||||
id: floatingHeader
|
||||
model: dummyAccountsModel
|
||||
delegate: Rectangle {
|
||||
width: button.width
|
||||
height: button.height
|
||||
radius: 8
|
||||
visible: visibleIndices.includes(index)
|
||||
color: Theme.palette.statusAppLayout.backgroundColor
|
||||
StatusButton {
|
||||
id: button
|
||||
topPadding: 8
|
||||
bottomPadding: 0
|
||||
implicitHeight: 32
|
||||
leftPadding: 4
|
||||
text: name
|
||||
asset.emoji: !!emoji ? emoji: ""
|
||||
asset.emojiSize: Emoji.size.middle
|
||||
asset.name: !emoji ? "filled-account": ""
|
||||
normalColor: "transparent"
|
||||
highlighted: index === floatingHeader.currentIndex
|
||||
onClicked: {
|
||||
floatingHeader.currentIndex = index
|
||||
}
|
||||
}
|
||||
}
|
||||
popupMenuDelegate: StatusListItem {
|
||||
implicitWidth: 272
|
||||
title: name
|
||||
onClicked: floatingHeader.itemSelected(index)
|
||||
visible: !visibleIndices.includes(index)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: dummyAccountsModel
|
||||
ListElement{name: "Account 1"; iconName: "filled-account"; emoji: "🥑"}
|
||||
ListElement{name: "Account 2"; iconName: "filled-account"}
|
||||
ListElement{name: "Account 3"; iconName: "filled-account"}
|
||||
ListElement{name: "Account 4"; iconName: "filled-account"}
|
||||
ListElement{name: "Account 5"; iconName: "filled-account"}
|
||||
ListElement{name: "Account 6"; iconName: "filled-account"}
|
||||
ListElement{name: "Account 7"; iconName: "filled-account"}
|
||||
}
|
||||
|
||||
StatusSpellcheckingMenuItems {
|
||||
id: spellMenu
|
||||
anchors.centerIn: parent
|
||||
suggestions: ["suggestion1", "suggestion2", "suggestion3", "suggestion4"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12
|
||||
import QtQuick.Layouts 1.12
|
||||
import QtQml.Models 2.2
|
||||
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
ListView {
|
||||
id: messageList
|
||||
anchors.fill: parent
|
||||
anchors.margins: 15
|
||||
clip: true
|
||||
|
||||
delegate: StatusMessage {
|
||||
id: delegate
|
||||
width: ListView.view.width
|
||||
|
||||
audioMessageInfoText: "Audio Message"
|
||||
cancelButtonText: "Cancel"
|
||||
saveButtonText: "Save"
|
||||
loadingImageText: "Loading image..."
|
||||
errorLoadingImageText: "Error loading the image"
|
||||
resendText: "Resend"
|
||||
pinnedMsgInfoText: "Pinned by"
|
||||
|
||||
timestamp: model.timestamp
|
||||
isAReply: model.isReply
|
||||
hasMention: model.hasMention
|
||||
isPinned: model.isPinned
|
||||
pinnedBy: model.pinnedBy
|
||||
hasExpired: model.hasExpired
|
||||
reactionsModel: model.reactions || []
|
||||
|
||||
messageDetails: StatusMessageDetails {
|
||||
contentType: model.contentType
|
||||
messageContent: model.messageContent
|
||||
amISender: model.amIsender
|
||||
sender.id: model.senderId
|
||||
sender.displayName: model.senderDisplayName
|
||||
sender.secondaryName: model.senderOptionalName
|
||||
sender.isContact: model.isContact
|
||||
sender.trustIndicator: model.trustIndicator
|
||||
sender.profileImage: StatusProfileImageSettings {
|
||||
width: 40
|
||||
height: 40
|
||||
pubkey: model.senderId
|
||||
name: model.profileImage || ""
|
||||
colorId: 1
|
||||
colorHash: ListModel {
|
||||
ListElement { colorId: 13; segmentLength: 5 }
|
||||
ListElement { colorId: 31; segmentLength: 5 }
|
||||
ListElement { colorId: 10; segmentLength: 1 }
|
||||
ListElement { colorId: 2; segmentLength: 5 }
|
||||
ListElement { colorId: 26; segmentLength: 2 }
|
||||
ListElement { colorId: 19; segmentLength: 4 }
|
||||
ListElement { colorId: 28; segmentLength: 3 }
|
||||
}
|
||||
}
|
||||
|
||||
messageText: model.message
|
||||
}
|
||||
|
||||
replyDetails: StatusMessageDetails {
|
||||
amISender: model.isReply && model.replyAmISender
|
||||
sender.id: model.replySenderId || ""
|
||||
sender.displayName: model.isReply ? model.replySenderName: ""
|
||||
sender.secondaryName: model.isReply ? model.replySenderEnsName : ""
|
||||
sender.profileImage: StatusProfileImageSettings {
|
||||
width: 20
|
||||
height: 20
|
||||
name: model.isReply ? model.replyProfileImage: ""
|
||||
pubkey: model.replySenderId
|
||||
colorId: 1
|
||||
colorHash: ListModel {
|
||||
ListElement { colorId: 13; segmentLength: 5 }
|
||||
ListElement { colorId: 31; segmentLength: 5 }
|
||||
ListElement { colorId: 10; segmentLength: 1 }
|
||||
ListElement { colorId: 2; segmentLength: 5 }
|
||||
ListElement { colorId: 26; segmentLength: 2 }
|
||||
ListElement { colorId: 19; segmentLength: 4 }
|
||||
ListElement { colorId: 28; segmentLength: 3 }
|
||||
}
|
||||
}
|
||||
messageText: model.isReply ? model.replyMessageText: ""
|
||||
contentType: model.replyContentType
|
||||
messageContent: model.replyMessageContent
|
||||
}
|
||||
|
||||
quickActions: [
|
||||
StatusFlatRoundButton {
|
||||
id: emojiBtn
|
||||
width: 32
|
||||
height: 32
|
||||
icon.name: "reaction-b"
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
tooltip.text: "Add reaction"
|
||||
},
|
||||
StatusFlatRoundButton {
|
||||
id: replyBtn
|
||||
width: 32
|
||||
height: 32
|
||||
icon.name: "reply"
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
tooltip.text: "Reply"
|
||||
},
|
||||
StatusFlatRoundButton {
|
||||
width: 32
|
||||
height: 32
|
||||
icon.name: "tiny/edit"
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
tooltip.text: "Edit"
|
||||
onClicked: {
|
||||
delegate.editMode = !delegate.editMode
|
||||
}
|
||||
},
|
||||
StatusFlatRoundButton {
|
||||
id: otherBtn
|
||||
width: 32
|
||||
height: 32
|
||||
icon.name: "more"
|
||||
type: StatusFlatRoundButton.Type.Tertiary
|
||||
tooltip.text: "More"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.12
|
||||
import QtQuick.Layouts 1.12
|
||||
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
Page {
|
||||
id: root
|
||||
anchors.fill: parent
|
||||
anchors.margins: 16
|
||||
property ListModel contactsModel: null
|
||||
background: null
|
||||
|
||||
header: RowLayout {
|
||||
id: headerRow
|
||||
width: parent.width
|
||||
height: tagSelector.height
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 8
|
||||
spacing: 16
|
||||
|
||||
StatusTagSelector {
|
||||
id: tagSelector
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
||||
Layout.leftMargin: 17
|
||||
maxHeight: root.height
|
||||
toLabelText: qsTr("To: ")
|
||||
warningText: qsTr("USER LIMIT REACHED")
|
||||
listLabel: qsTr("Contacts")
|
||||
ringSpecModelGetter: function(pubKey) {
|
||||
//for simulation purposes only, in real app
|
||||
//this would be Utils.getColorHashAsJson(pubKey)
|
||||
var index = -1;
|
||||
if (!!contactsModel) {
|
||||
for (var i = 0; i < contactsModel.count; i++) {
|
||||
if (contactsModel.get(i).pubKey === pubKey) {
|
||||
index = i;
|
||||
}
|
||||
}
|
||||
return contactsModel.get(index).ringSpecModel;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
compressedKeyGetter: function(pubKey) {
|
||||
//for simulation purposes only, in real app
|
||||
//this would be Utils.getCompressedPk(pubKey);
|
||||
var possibleCharacters = pubKey.split('');
|
||||
var randomStringLength = 12; // assuming you want random strings of 12 characters
|
||||
var randomString = [];
|
||||
for (var i=0; i<randomStringLength; ++i) {
|
||||
var index = (Math.random() * possibleCharacters.length).toFixed(0);
|
||||
var nextChar = possibleCharacters[index];
|
||||
randomString.push(nextChar);
|
||||
}
|
||||
return randomString.join().toString().replace(/,/g, '');
|
||||
}
|
||||
colorIdForPubkeyGetter: function (pubKey) {
|
||||
//for simulation purposes only, in real app
|
||||
//this would be Utils.colorIdForPubkey(pubKey);
|
||||
return Math.floor(Math.random() * 10);
|
||||
}
|
||||
onTextChanged: {
|
||||
sortModel(root.contactsModel);
|
||||
}
|
||||
Component.onCompleted: {
|
||||
textEdit.forceActiveFocus();
|
||||
sortModel(root.contactsModel);
|
||||
}
|
||||
}
|
||||
|
||||
StatusButton {
|
||||
implicitWidth: 106
|
||||
implicitHeight: 44
|
||||
Layout.alignment: Qt.AlignTop
|
||||
enabled: (tagSelector.namesModel.count > 0)
|
||||
text: "Confirm"
|
||||
}
|
||||
|
||||
Item {
|
||||
implicitHeight: 32
|
||||
implicitWidth: 32
|
||||
Layout.alignment: Qt.AlignTop
|
||||
|
||||
StatusActivityCenterButton {
|
||||
id: notificationButton
|
||||
anchors.right: parent.right
|
||||
unreadNotificationsCount: 3
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
anchors.fill: parent
|
||||
|
||||
StatusBaseText {
|
||||
width: Math.min(553, parent.width - 32)
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.verticalCenterOffset: -(headerRow.height/2)
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
visible: contactsModel.count === 0
|
||||
wrapMode: Text.WordWrap
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.baseColor1
|
||||
text: qsTr("You can only send direct messages to your Contacts.\n
|
||||
Send a contact request to the person you would like to chat with, you will be able to chat with them once they have accepted your contact request.")
|
||||
Component.onCompleted: {
|
||||
if (visible) {
|
||||
tagSelector.enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
import QtQuick 2.12
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
|
||||
StatusModal {
|
||||
id: root
|
||||
|
||||
anchors.centerIn: parent
|
||||
|
||||
header.title: "Cryptokitties"
|
||||
header.subTitle: "Public Community"
|
||||
header.asset.isImage: true
|
||||
header.asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
|
||||
contentItem: Column {
|
||||
width: root.width
|
||||
|
||||
StatusModalDivider {
|
||||
bottomPadding: 8
|
||||
}
|
||||
|
||||
StatusBaseText {
|
||||
text: "A community of cat lovers, meow!"
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pixelSize: 15
|
||||
height: 46
|
||||
color: Theme.palette.directColor1
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.leftMargin: 16
|
||||
anchors.rightMargin: 16
|
||||
}
|
||||
|
||||
StatusModalDivider {
|
||||
topPadding: 8
|
||||
bottomPadding: 8
|
||||
}
|
||||
|
||||
StatusDescriptionListItem {
|
||||
title: "Share community"
|
||||
subTitle: "https://join.status.im/u/0x04...45f19"
|
||||
tooltip.text: "Copy to clipboard"
|
||||
asset.name: "copy"
|
||||
iconButton.onClicked: tooltip.visible = !tooltip.visible
|
||||
width: parent.width
|
||||
}
|
||||
|
||||
StatusModalDivider {
|
||||
topPadding: 8
|
||||
bottomPadding: 8
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Members"
|
||||
asset.name: "group-chat"
|
||||
label: "184"
|
||||
components: [
|
||||
StatusIcon {
|
||||
icon: "chevron-down"
|
||||
rotation: 270
|
||||
color: Theme.palette.baseColor1
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Notifications"
|
||||
asset.name: "notification"
|
||||
components: [
|
||||
StatusSwitch {}
|
||||
]
|
||||
}
|
||||
|
||||
StatusModalDivider {
|
||||
topPadding: 8
|
||||
bottomPadding: 8
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Edit community"
|
||||
asset.name: "edit"
|
||||
type: StatusListItem.Type.Secondary
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Transfer ownership"
|
||||
asset.name: "exchange"
|
||||
type: StatusListItem.Type.Secondary
|
||||
}
|
||||
|
||||
StatusListItem {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
statusListItemTitle.font.pixelSize: 17
|
||||
title: "Leave community"
|
||||
asset.name: "arrow-left"
|
||||
type: StatusListItem.Type.Secondary
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
import QtQuick 2.12
|
||||
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
StatusModal {
|
||||
id: root
|
||||
|
||||
header.title: "Contact Requests"
|
||||
headerActionButton: StatusFlatRoundButton {
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
width: 32
|
||||
height: 32
|
||||
|
||||
icon.width: 20
|
||||
icon.height: 20
|
||||
icon.name: "notification"
|
||||
}
|
||||
|
||||
contentItem: StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
text: "Contact request will be shown here"
|
||||
font.pixelSize: 15
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
rightButtons: [
|
||||
StatusButton {
|
||||
text: "Decline all"
|
||||
type: StatusBaseButton.Type.Danger
|
||||
onClicked: root.close()
|
||||
},
|
||||
StatusButton {
|
||||
text: "Accept all"
|
||||
onClicked: root.close()
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,272 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Layouts 1.12
|
||||
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Layout 0.1
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
import "data" 1.0
|
||||
|
||||
StatusSectionLayout {
|
||||
id: root
|
||||
property bool createChat: false
|
||||
|
||||
notificationCount: 1
|
||||
onNotificationButtonClicked: { notificationCount = 0; }
|
||||
showHeader: !root.createChat
|
||||
|
||||
headerContent: RowLayout {
|
||||
id: chatHeader
|
||||
|
||||
signal chatInfoButtonClicked()
|
||||
signal menuButtonClicked()
|
||||
signal membersButtonClicked()
|
||||
signal searchButtonClicked()
|
||||
|
||||
StatusChatInfoButton {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
Layout.leftMargin: padding
|
||||
title: "Amazing Funny Squirrel"
|
||||
subTitle: "Contact"
|
||||
asset.color: Theme.palette.miscColor7
|
||||
type: StatusChatInfoButton.Type.OneToOneChat
|
||||
pinnedMessagesCount: 1
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
id: actionButtons
|
||||
Layout.alignment: Qt.AlignRight
|
||||
Layout.rightMargin: padding
|
||||
spacing: 8
|
||||
|
||||
StatusFlatRoundButton {
|
||||
id: menuButton
|
||||
objectName: "chatToolbarMoreOptionsButton"
|
||||
width: 32
|
||||
height: 32
|
||||
icon.name: "more"
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
|
||||
// initializing the tooltip
|
||||
tooltip.visible: !!tooltip.text && menuButton.hovered && !contextMenu.open
|
||||
tooltip.text: qsTr("More")
|
||||
tooltip.orientation: StatusToolTip.Orientation.Bottom
|
||||
tooltip.y: parent.height + 12
|
||||
|
||||
property bool showMoreMenu: false
|
||||
onClicked: {
|
||||
menuButton.highlighted = true
|
||||
|
||||
let originalOpenHandler = contextMenu.openHandler
|
||||
let originalCloseHandler = contextMenu.closeHandler
|
||||
|
||||
contextMenu.openHandler = function () {
|
||||
if (!!originalOpenHandler) {
|
||||
originalOpenHandler()
|
||||
}
|
||||
}
|
||||
|
||||
contextMenu.closeHandler = function () {
|
||||
menuButton.highlighted = false
|
||||
if (!!originalCloseHandler) {
|
||||
originalCloseHandler()
|
||||
}
|
||||
}
|
||||
|
||||
contextMenu.openHandler = originalOpenHandler
|
||||
contextMenu.popup(-contextMenu.width + menuButton.width, menuButton.height + 4)
|
||||
}
|
||||
StatusPopupMenu {
|
||||
id: contextMenu
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mute Chat"
|
||||
icon.name: "notification"
|
||||
}
|
||||
StatusMenuItem {
|
||||
text: "Mark as Read"
|
||||
icon.name: "checkmark-circle"
|
||||
}
|
||||
StatusMenuItem {
|
||||
text: "Clear History"
|
||||
icon.name: "close-circle"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Leave Chat"
|
||||
icon.name: "arrow-left"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 1
|
||||
height: 24
|
||||
color: Theme.palette.directColor7
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
visible: (notificationButton.visible && menuButton.visible)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
leftPanel: Item {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 16
|
||||
RowLayout {
|
||||
id: searchInputWrapper
|
||||
width: parent.width
|
||||
|
||||
StatusNavigationPanelHeadline {
|
||||
id: headline
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
text: "Chat"
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
|
||||
StatusRoundButton {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
icon.name: "public-chat"
|
||||
icon.color: Theme.palette.directColor1
|
||||
icon.height: editBtn.icon.height
|
||||
icon.width: editBtn.icon.width
|
||||
implicitWidth: editBtn.implicitWidth
|
||||
implicitHeight: editBtn.implicitHeight
|
||||
type: StatusRoundButton.Type.Tertiary
|
||||
StatusToolTip {
|
||||
text: qsTr("Join public chats")
|
||||
visible: parent.hovered
|
||||
orientation: StatusToolTip.Orientation.Bottom
|
||||
y: parent.height + 12
|
||||
}
|
||||
}
|
||||
|
||||
StatusIconTabButton {
|
||||
id: editBtn
|
||||
icon.name: "edit"
|
||||
icon.color: Theme.palette.directColor1
|
||||
checked: root.createChat
|
||||
highlighted: checked
|
||||
onClicked: {
|
||||
root.createChat = !root.createChat;
|
||||
}
|
||||
StatusToolTip {
|
||||
text: qsTr("Start chat")
|
||||
visible: parent.hovered
|
||||
orientation: StatusToolTip.Orientation.Bottom
|
||||
y: parent.height + 12
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StatusInput {
|
||||
id: searchInput
|
||||
anchors.top: searchInputWrapper.bottom
|
||||
anchors.topMargin: 16
|
||||
width: parent.width
|
||||
maximumHeight: 36
|
||||
topPadding: 8
|
||||
bottomPadding: 8
|
||||
placeholderText: "Search"
|
||||
input.asset.name: "search"
|
||||
}
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
anchors.top: searchInput.bottom
|
||||
anchors.topMargin: 16
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
spacing: 8
|
||||
|
||||
StatusContactRequestsIndicatorListItem {
|
||||
width: parent.width
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
title: "Contact requests"
|
||||
requestsCount: 3
|
||||
onClicked: demoContactRequestsModal.open()
|
||||
}
|
||||
|
||||
StatusChatList {
|
||||
width: parent.width
|
||||
model: Models.demoChatListItems
|
||||
highlightItem: !root.createChat
|
||||
onChatItemUnmuted: {
|
||||
for (var i = 0; i < Models.demoChatListItems.count; i++) {
|
||||
let item = Models.demoChatListItems.get(i);
|
||||
if (item.chatId === id) {
|
||||
Models.demoChatListItems.setProperty(i, "muted", false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
|
||||
property string chatId
|
||||
|
||||
openHandler: function (id) {
|
||||
chatId = id
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "View Profile"
|
||||
icon.name: "group-chat"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mute chat"
|
||||
icon.name: "notification"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mark as Read"
|
||||
icon.name: "checkmark-circle"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Clear history"
|
||||
icon.name: "close-circle"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Delete chat"
|
||||
icon.name: "delete"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
centerPanel: Loader {
|
||||
anchors.fill: parent
|
||||
sourceComponent: root.createChat ? createChatView : chatChannelView
|
||||
Component {
|
||||
id: createChatView
|
||||
CreateChatView {
|
||||
contactsModel: Models.membersListModel
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: chatChannelView
|
||||
ChatChannelView {
|
||||
model: Models.chatMessagesModel
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
import QtQuick 2.13
|
||||
import QtQuick.Controls 2.13
|
||||
import QtQuick.Layouts 1.13
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Layout 0.1
|
||||
import StatusQ.Components 0.1
|
||||
|
||||
import "../demoapp/data" 1.0
|
||||
|
||||
StatusSectionLayout {
|
||||
id: root
|
||||
|
||||
QtObject {
|
||||
id: d
|
||||
|
||||
property ListModel featuredCommunitiesModel: Models.featuredCommunitiesModel
|
||||
property ListModel popularCommunitiesModel: Models.curatedCommunitiesModel
|
||||
property ListModel tagsModel: Models.tagsModel
|
||||
|
||||
property string searchText: ""
|
||||
property int layoutVMargin: 70
|
||||
property int layoutHMargin: 64
|
||||
property int titlePixelSize: 28
|
||||
property int subtitlePixelSize: 17
|
||||
property int stylePadding: 16
|
||||
|
||||
function navigateToCommunity(communityId) {
|
||||
console.info("Clicked community ID: " + communityId)
|
||||
}
|
||||
}
|
||||
centerPanel: Item {
|
||||
anchors.fill: parent
|
||||
clip: true
|
||||
StatusScrollView {
|
||||
anchors.fill: parent
|
||||
contentHeight: column.height + d.layoutVMargin
|
||||
contentWidth: column.width + d.layoutHMargin
|
||||
|
||||
ColumnLayout {
|
||||
id: column
|
||||
spacing: 18
|
||||
|
||||
StatusBaseText {
|
||||
Layout.topMargin: d.layoutVMargin
|
||||
Layout.leftMargin: d.layoutHMargin
|
||||
text: qsTr("Find community")
|
||||
font.weight: Font.Bold
|
||||
font.pixelSize: d.titlePixelSize
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
// Tags definition - Now hidden - Out of scope
|
||||
// TODO: Replace by `StatusListItemTagRow`
|
||||
Row {
|
||||
visible: d.tagsModel.count > 0
|
||||
Layout.leftMargin: d.layoutHMargin
|
||||
Layout.rightMargin: d.layoutHMargin
|
||||
width: 1234 // by design
|
||||
spacing: d.stylePadding/2
|
||||
|
||||
Repeater {
|
||||
model: d.tagsModel
|
||||
delegate: StatusListItemTag {
|
||||
border.color: Theme.palette.baseColor2
|
||||
color: "transparent"
|
||||
height: 32
|
||||
radius: 36
|
||||
closeButtonVisible: false
|
||||
asset.emoji: model.emoji
|
||||
asset.height: 32
|
||||
asset.width: asset.height
|
||||
asset.color: "transparent"
|
||||
asset.isLetterIdenticon: true
|
||||
title: model.name
|
||||
titleText.font.pixelSize: 15
|
||||
titleText.color: Theme.palette.primaryColor1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StatusBaseText {
|
||||
Layout.leftMargin: d.layoutHMargin
|
||||
Layout.topMargin: 20
|
||||
text: qsTr("Featured")
|
||||
font.weight: Font.Bold
|
||||
font.pixelSize: d.subtitlePixelSize
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
GridLayout {
|
||||
id: featuredGrid
|
||||
Layout.leftMargin: d.layoutHMargin
|
||||
columns: 3
|
||||
columnSpacing: d.stylePadding
|
||||
rowSpacing: d.stylePadding
|
||||
|
||||
Repeater {
|
||||
model: d.featuredCommunitiesModel
|
||||
delegate: StatusCommunityCard {
|
||||
locale: "es"
|
||||
communityId: model.communityId
|
||||
loaded: model.available
|
||||
logo: model.logo
|
||||
name: model.name
|
||||
description: model.description
|
||||
members: model.members
|
||||
popularity: model.popularity
|
||||
communityColor: model.communityColor
|
||||
categories: ListModel {
|
||||
ListElement { name: "sport"; emoji: "🎾"}
|
||||
ListElement { name: "food"; emoji: "🥑"}
|
||||
ListElement { name: "privacy"; emoji: "👻"}
|
||||
}
|
||||
|
||||
onClicked: { d.navigateToCommunity(communityId) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StatusBaseText {
|
||||
Layout.leftMargin: d.layoutHMargin
|
||||
Layout.topMargin: 20
|
||||
text: qsTr("Popular")
|
||||
font.weight: Font.Bold
|
||||
font.pixelSize: d.subtitlePixelSize
|
||||
color: Theme.palette.directColor1
|
||||
}
|
||||
|
||||
GridLayout {
|
||||
Layout.leftMargin: d.layoutHMargin
|
||||
columns: 3
|
||||
columnSpacing: d.stylePadding
|
||||
rowSpacing: d.stylePadding
|
||||
|
||||
Repeater {
|
||||
model: d.popularCommunitiesModel
|
||||
delegate: StatusCommunityCard {
|
||||
locale: "es"
|
||||
communityId: model.communityId
|
||||
loaded: model.available
|
||||
logo: model.logo
|
||||
name: model.name
|
||||
description: model.description
|
||||
members: model.members
|
||||
activeUsers: model.activeUsers
|
||||
popularity: model.popularity
|
||||
tokenLogo: model.tokenLogo
|
||||
isPrivate: model.isPrivate
|
||||
banner: model.banner
|
||||
|
||||
onClicked: { d.navigateToCommunity(communityId) }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,313 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.14
|
||||
import QtQuick.Layouts 1.12
|
||||
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Popups 0.1
|
||||
import StatusQ.Controls 0.1
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Layout 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
import "data" 1.0
|
||||
|
||||
StatusSectionLayout {
|
||||
id: root
|
||||
|
||||
property string communityDetailModalTitle: ""
|
||||
property string communityDetailModalImage: ""
|
||||
signal chatInfoButtonClicked()
|
||||
|
||||
handle: Rectangle {
|
||||
implicitWidth: 5
|
||||
color: SplitHandle.pressed ? Theme.palette.baseColor2
|
||||
: (SplitHandle.hovered ? Qt.darker(Theme.palette.baseColor5, 1.1) : "transparent")
|
||||
}
|
||||
|
||||
headerContent: RowLayout {
|
||||
id: statusToolBar
|
||||
|
||||
StatusFlatRoundButton {
|
||||
id: searchButton
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
Layout.leftMargin: padding
|
||||
icon.name: "search"
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
// initializing the tooltip
|
||||
tooltip.text: qsTr("Search")
|
||||
tooltip.orientation: StatusToolTip.Orientation.Bottom
|
||||
tooltip.y: parent.height + 12
|
||||
onClicked: {
|
||||
searchButton.highlighted = !searchButton.highlighted;
|
||||
searchPopup.setSearchSelection(communityDetailModalTitle,
|
||||
"",
|
||||
communityDetailModalImage);
|
||||
searchPopup.open();
|
||||
}
|
||||
}
|
||||
|
||||
StatusChatInfoButton {
|
||||
Layout.preferredWidth: Math.min(implicitWidth, parent.width)
|
||||
Layout.fillHeight: true
|
||||
title: "general"
|
||||
subTitle: "Community Chat"
|
||||
asset.color: Theme.palette.miscColor6
|
||||
type: StatusChatInfoButton.Type.CommunityChat
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
StatusFlatRoundButton {
|
||||
id: membersButton
|
||||
icon.name: "group-chat"
|
||||
type: StatusFlatRoundButton.Type.Secondary
|
||||
// initializing the tooltip
|
||||
tooltip.text: qsTr("Members")
|
||||
tooltip.orientation: StatusToolTip.Orientation.Bottom
|
||||
tooltip.y: parent.height + 12
|
||||
onClicked: {
|
||||
membersButton.highlighted = !membersButton.highlighted;
|
||||
root.showRightPanel = !root.showRightPanel;
|
||||
}
|
||||
}
|
||||
|
||||
StatusSearchPopup {
|
||||
id: searchPopup
|
||||
searchOptionsPopupMenu: searchPopupMenu
|
||||
onAboutToHide: {
|
||||
if (searchPopupMenu.visible) {
|
||||
searchPopupMenu.close();
|
||||
}
|
||||
//clear menu
|
||||
for (var i = 2; i < searchPopupMenu.count; i++) {
|
||||
searchPopupMenu.removeItem(searchPopupMenu.takeItem(i));
|
||||
}
|
||||
}
|
||||
onClosed: {
|
||||
statusToolBar.searchButton.highlighted = false
|
||||
searchPopupMenu.dismiss();
|
||||
}
|
||||
onSearchTextChanged: {
|
||||
if (searchPopup.searchText !== "") {
|
||||
searchPopup.loading = true;
|
||||
searchModelSimTimer.start();
|
||||
} else {
|
||||
searchPopup.searchResults = [];
|
||||
searchModelSimTimer.stop();
|
||||
}
|
||||
}
|
||||
Timer {
|
||||
id: searchModelSimTimer
|
||||
interval: 500
|
||||
onTriggered: {
|
||||
if (searchPopup.searchText.startsWith("c")) {
|
||||
searchPopup.searchResults = Models.searchResultsA;
|
||||
} else {
|
||||
searchPopup.searchResults = Models.searchResultsB;
|
||||
}
|
||||
searchPopup.loading = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
StatusSearchLocationMenu {
|
||||
id: searchPopupMenu
|
||||
searchPopup: searchPopup
|
||||
locationModel: Models.optionsModel
|
||||
}
|
||||
}
|
||||
|
||||
leftPanel: Item {
|
||||
id: leftPanel
|
||||
|
||||
StatusChatInfoToolBar {
|
||||
id: statusChatInfoToolBar
|
||||
|
||||
anchors.top: parent.top
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
chatInfoButton.title: "CryptoKitties"
|
||||
chatInfoButton.subTitle: "128 Members"
|
||||
chatInfoButton.asset.isImage: true
|
||||
chatInfoButton.asset.name: "qrc:/demoapp/data/profile-image-1.jpeg"
|
||||
chatInfoButton.asset.color: Theme.palette.miscColor6
|
||||
chatInfoButton.onClicked: { chatInfoButtonClicked(); }
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Create channel"
|
||||
icon.name: "channel"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Create category"
|
||||
icon.name: "channel-category"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Invite people"
|
||||
icon.name: "share-ios"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
StatusScrollView {
|
||||
id: scrollView
|
||||
|
||||
anchors.top: statusChatInfoToolBar.bottom
|
||||
anchors.topMargin: 8
|
||||
anchors.bottom: parent.bottom
|
||||
width: leftPanel.width
|
||||
|
||||
contentHeight: communityCategories.height
|
||||
clip: true
|
||||
|
||||
StatusChatListAndCategories {
|
||||
id: communityCategories
|
||||
width: leftPanel.width
|
||||
height: implicitHeight > (leftPanel.height - 64) ? implicitHeight + 8 : leftPanel.height - 64
|
||||
|
||||
draggableItems: true
|
||||
draggableCategories: false
|
||||
model: Models.demoCommunityChatListItems
|
||||
|
||||
showCategoryActionButtons: true
|
||||
|
||||
categoryPopupMenu: StatusPopupMenu {
|
||||
|
||||
property string categoryId
|
||||
|
||||
openHandler: function (id) {
|
||||
categoryId = id
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mute Category"
|
||||
icon.name: "notification"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mark as Read"
|
||||
icon.name: "checkmark-circle"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Edit Category"
|
||||
icon.name: "edit"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Delete Category"
|
||||
icon.name: "delete"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
|
||||
chatListPopupMenu: StatusPopupMenu {
|
||||
|
||||
property string chatId
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mute chat"
|
||||
icon.name: "notification"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Mark as Read"
|
||||
icon.name: "checkmark-circle"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Clear history"
|
||||
icon.name: "close-circle"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Delete chat"
|
||||
icon.name: "delete"
|
||||
type: StatusMenuItem.Type.Danger
|
||||
}
|
||||
}
|
||||
|
||||
popupMenu: StatusPopupMenu {
|
||||
StatusMenuItem {
|
||||
text: "Create channel"
|
||||
icon.name: "channel"
|
||||
}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Create category"
|
||||
icon.name: "channel-category"
|
||||
}
|
||||
|
||||
StatusMenuSeparator {}
|
||||
|
||||
StatusMenuItem {
|
||||
text: "Invite people"
|
||||
icon.name: "share-ios"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
centerPanel: Item {
|
||||
anchors.fill: parent
|
||||
StatusBaseText {
|
||||
anchors.centerIn: parent
|
||||
font.pixelSize: 15
|
||||
text: qsTr("Community content here")
|
||||
}
|
||||
}
|
||||
|
||||
rightPanel: Item {
|
||||
id: rightPanel
|
||||
StatusBaseText {
|
||||
id: titleText
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin:16
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 16
|
||||
opacity: (rightPanel.width > 50) ? 1.0 : 0.0
|
||||
visible: (opacity > 0.1)
|
||||
font.pixelSize: 15
|
||||
text: qsTr("Members")
|
||||
}
|
||||
|
||||
ListView {
|
||||
anchors.top: titleText.bottom
|
||||
anchors.topMargin: 16
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 8
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 8
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: 16
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
model: Models.membersListModel
|
||||
delegate: StatusMemberListItem {
|
||||
implicitWidth: parent.width
|
||||
nickName: model.localNickname
|
||||
userName: model.displayName
|
||||
pubKey: model.pubKey
|
||||
isVerified: model.isVerified
|
||||
isUntrustworthy: model.isUntrustworthy
|
||||
isContact: model.isContact
|
||||
asset.name: model.icon
|
||||
asset.isImage: (asset.name !== "")
|
||||
asset.isLetterIdenticon: (asset.name === "")
|
||||
asset.imgIsIdenticon: false
|
||||
status: model.onlineStatus
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
import QtQuick 2.12
|
||||
import QtQuick.Controls 2.14
|
||||
|
||||
import StatusQ.Components 0.1
|
||||
import StatusQ.Layout 0.1
|
||||
import StatusQ.Core 0.1
|
||||
import StatusQ.Core.Theme 0.1
|
||||
|
||||
import "data" 1.0
|
||||
|
||||
StatusSectionLayout {
|
||||
id: root
|
||||
|
||||
leftPanel: Item {
|
||||
anchors.fill: parent
|
||||
|
||||
StatusNavigationPanelHeadline {
|
||||
id: profileHeadline
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 16
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: "Profile"
|
||||
}
|
||||
|
||||
StatusScrollView {
|
||||
anchors.top: profileHeadline.bottom
|
||||
anchors.topMargin: 16
|
||||
anchors.bottom: parent.bottom
|
||||
width: parent.width
|
||||
|
||||
contentHeight: profileMenuItems.height + 8
|
||||
contentWidth: parent.width
|
||||
clip: true
|
||||
|
||||
Column {
|
||||
id: profileMenuItems
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
spacing: 4
|
||||
|
||||
Repeater {
|
||||
model: Models.demoProfileGeneralMenuItems
|
||||
delegate: StatusNavigationListItem {
|
||||
title: model.title
|
||||
asset.name: model.icon
|
||||
}
|
||||
}
|
||||
|
||||
StatusListSectionHeadline { text: "Settings" }
|
||||
|
||||
Repeater {
|
||||
model: Models.demoProfileSettingsMenuItems
|
||||
delegate: StatusNavigationListItem {
|
||||
title: model.title
|
||||
asset.name: model.icon
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: invisibleSeparator
|
||||
height: 16
|
||||
width: parent.width
|
||||
}
|
||||
|
||||
Repeater {
|
||||
model: Models.demoProfileOtherMenuItems
|
||||
delegate: StatusNavigationListItem {
|
||||
title: model.title
|
||||
asset.name: model.icon
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rightPanel: Item {
|
||||
anchors.fill: parent
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 190 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 28 KiB |
@@ -0,0 +1 @@
|
||||
singleton Models 1.0 Models.qml
|
||||
@@ -0,0 +1,68 @@
|
||||
Това е пакет за проверка на правописа за OpenOffice.org. Може
|
||||
да свалите OpenOffice.org от http://openoffice.org/.
|
||||
Пакетът е продукт на проекта bgOffice. За повече
|
||||
информация, прочетете файла README.bgOffice, който идва с
|
||||
този пакет или посетете страницата на проекта на адрес:
|
||||
http://bgoffice.sourceforge.net.
|
||||
|
||||
|
||||
Указания за инсталиране и настройка
|
||||
|
||||
|
||||
1. Копирате файловете bg_BG.dic и bg_BG.aff в директорията:
|
||||
|
||||
..\OpenOffice.org\share\dict\ooo
|
||||
|
||||
Ако сте инсталирали проверка на правописа на американски
|
||||
английски, то в тази директория трябва да се намират файловете
|
||||
en_US.aff, en_US.dic и dictionary.lst.
|
||||
|
||||
|
||||
2. Отваряте файла dictionary.lst с текстов редактор и добавяте
|
||||
следния ред на края му:
|
||||
|
||||
DICT bg BG bg_BG
|
||||
|
||||
|
||||
3. Стартирате OpenOffice и осъществявате следните настройки:
|
||||
- Избирате от менюто Tools/Options;
|
||||
- От менюто вляво на изскочилото диалогово прозорче избирате
|
||||
Language Settings/Writing Aids;
|
||||
- От диалога вдясно избирате
|
||||
Available language modules/OpenOffice MySpell SpellChecker;
|
||||
- Включвате опцията (ако не е включена);
|
||||
- Избирате бутона Edit вдясно от тази опция;
|
||||
- Избирате Language - Bulgarian;
|
||||
- В полето долу избирате Spelling/OpenOffice MySpell
|
||||
SpellChecker и включвате опцията;
|
||||
- Избирате бутона Close (за да затворите този диалогов
|
||||
прозорец);
|
||||
- Натискате бутона OK (за да потвърдите настройките).
|
||||
|
||||
|
||||
4. Ако текущият избран език не е български, то трябва да
|
||||
изпълните следните стъпки за да го изберете:
|
||||
- Избирате от менюто Tools/Options;
|
||||
- От менюто вляво на изскочилото диалогово прозорче избирате
|
||||
Language Settings/Languages;
|
||||
- Сега от същия диалог, но вдясно избирате
|
||||
Default languages for documents/Western/Bulgarian;
|
||||
- В този момент пред българския език (Bulgarian) трябва да
|
||||
виждате знака за проверка на правописа (малка икона с отметка
|
||||
на фона на буквите ABC). Това означава, че новите настройки са
|
||||
възприети;
|
||||
- Натискате бутона OK (за да потвърдите промените).
|
||||
|
||||
|
||||
5. В този момент проверката на правописа трябва да функционира.
|
||||
Ако имате проблеми, опитайте се да ги разрешите и да ми пишете.
|
||||
|
||||
|
||||
Всяка помощ е добра дошла. Търсят се доброволци да помагат.
|
||||
|
||||
|
||||
OOo-spell-bg
|
||||
Авторски права (C) 2001 Радостин Раднев <radnev@gmail.com>
|
||||
|
||||
OOo-spell-bg
|
||||
Copyright (C) 2001 Radostin Radnev <radnev@gmail.com>
|
||||
@@ -0,0 +1,584 @@
|
||||
# Copyright (c) 2001-2020 Korvigelloù An Drouizig
|
||||
#
|
||||
# Kit e darempred ganeomp : drouizig@drouizig.org - http://www.drouizig.org
|
||||
#
|
||||
# PEP GWIR MIRET STRIZH - KORVIGELLOÙ AN DROUIZIG
|
||||
|
||||
# po (part of speech) :
|
||||
# aa : adanv
|
||||
# b : anv benel
|
||||
# bev : bevezour
|
||||
# g : anv gourel
|
||||
# v : verb
|
||||
#
|
||||
# is (inflectional suffix(es)) :
|
||||
# pl : plural
|
||||
# comp : comparative
|
||||
# super : superlative
|
||||
# excl : exclamative
|
||||
#
|
||||
# ip (inflectional prefix(es)) :
|
||||
# dv : dre vlotaat
|
||||
# dg : dre galetaat
|
||||
# dc : dre c'hwezhañ
|
||||
# ke : kemmesket
|
||||
|
||||
SET UTF-8
|
||||
TRY esiaùnñrtolcdugmphbyfvkwzESIAÙNÑRTOLCDUGMPHBYFVKWZ'
|
||||
|
||||
WORDCHARS '
|
||||
|
||||
FLAG long
|
||||
|
||||
REP 6
|
||||
REP én ñ
|
||||
REP an añ
|
||||
REP en eñ
|
||||
REP in iñ
|
||||
REP on oñ
|
||||
REP un uñ
|
||||
|
||||
PFX a0 Y 10
|
||||
PFX a0 0 m' [aehiou]
|
||||
PFX a0 0 t' [aehiou]
|
||||
PFX a0 0 n' [aehiou]
|
||||
PFX a0 0 d' [aehiou]
|
||||
PFX a0 0 p' [aehiou]
|
||||
PFX a0 0 M' [aehiou]
|
||||
PFX a0 0 T' [aehiou]
|
||||
PFX a0 0 N' [aehiou]
|
||||
PFX a0 0 D' [aehiou]
|
||||
PFX a0 0 P' [aehiou]
|
||||
|
||||
# Kemmadurioù
|
||||
PFX m0 Y 30
|
||||
PFX m0 k g k
|
||||
PFX m0 K G K
|
||||
PFX m0 k c'h k
|
||||
PFX m0 K C'h K
|
||||
PFX m0 t d t
|
||||
PFX m0 T D T
|
||||
PFX m0 t z t
|
||||
PFX m0 T Z T
|
||||
PFX m0 p b p
|
||||
PFX m0 P B P
|
||||
PFX m0 p f p
|
||||
PFX m0 P F P
|
||||
PFX m0 G C'h G[^w]
|
||||
PFX m0 g c'h g[^w]
|
||||
PFX m0 G K G[^W]
|
||||
PFX m0 g k g[^w]
|
||||
PFX m0 gw w gw
|
||||
PFX m0 Gw W Gw
|
||||
PFX m0 Gw Kw Gw
|
||||
PFX m0 gw kw gw
|
||||
PFX m0 b v b
|
||||
PFX m0 B V B
|
||||
PFX m0 b p b
|
||||
PFX m0 B P B
|
||||
PFX m0 m v m
|
||||
PFX m0 M V M
|
||||
PFX m0 d z d
|
||||
PFX m0 D Z D
|
||||
PFX m0 d t d
|
||||
PFX m0 D T D
|
||||
|
||||
#Kemmadur ober (gra>ra)
|
||||
PFX m1 Y 1
|
||||
PFX m1 g 0 .
|
||||
|
||||
# Adanv
|
||||
SFX n1 Y 12
|
||||
SFX n1 0 añ [^hz] is:super
|
||||
SFX n1 0 at [^hz] is:excl
|
||||
SFX n1 0 oc'h [^hz] is:comp
|
||||
SFX n1 0 añ [^z]h is:super
|
||||
SFX n1 0 at [^z]h is:excl
|
||||
SFX n1 0 oc'h [^z]h is:comp
|
||||
SFX n1 z sañ z is:super
|
||||
SFX n1 z sat z is:excl
|
||||
SFX n1 z soc'h z is:comp
|
||||
SFX n1 zh shañ zh is:super
|
||||
SFX n1 zh shat zh is:excl
|
||||
SFX n1 zh shoc'h zh is:comp
|
||||
|
||||
# Liesterioù
|
||||
SFX p1 Y 1
|
||||
SFX p1 0 ed . is:pl
|
||||
|
||||
SFX p2 Y 1
|
||||
SFX p2 0 i . is:pl
|
||||
|
||||
SFX p3 Y 1
|
||||
SFX p3 0 ion . is:pl
|
||||
|
||||
SFX p4 Y 1
|
||||
SFX p4 0 ioù . is:pl
|
||||
|
||||
SFX p5 Y 1
|
||||
SFX p5 0 où . is:pl
|
||||
|
||||
SFX p6 Y 1
|
||||
SFX p6 0 ien . is:pl
|
||||
|
||||
SFX p7 Y 1
|
||||
SFX p7 où eier . is:pl
|
||||
|
||||
SFX p8 Y 1
|
||||
SFX p8 ad iz . is:pl
|
||||
|
||||
SFX p9 Y 1
|
||||
SFX p9 iad iz . is:pl
|
||||
|
||||
SFX p10 Y 1
|
||||
SFX p10 ad idi . is:pl
|
||||
|
||||
# Lostgerioù all
|
||||
SFX l4 Y 2
|
||||
SFX l4 0 ig .
|
||||
SFX l4 0 ioùigoù . is:pl
|
||||
|
||||
SFX l5 Y 2
|
||||
SFX l5 0 ig .
|
||||
SFX l5 0 oùigoù . is:pl
|
||||
|
||||
# Displegadurioù
|
||||
SFX a1 Y 42
|
||||
SFX a1 0 an .
|
||||
SFX a1 0 as .
|
||||
SFX a1 0 e .
|
||||
SFX a1 0 ec'h .
|
||||
SFX a1 0 ed .
|
||||
SFX a1 0 emp .
|
||||
SFX a1 0 en .
|
||||
SFX a1 0 ent .
|
||||
SFX a1 0 er .
|
||||
SFX a1 0 es .
|
||||
SFX a1 0 et .
|
||||
SFX a1 0 ez .
|
||||
SFX a1 0 fe .
|
||||
SFX a1 0 fec'h .
|
||||
SFX a1 0 fed .
|
||||
SFX a1 0 femp .
|
||||
SFX a1 0 fen .
|
||||
SFX a1 0 fent .
|
||||
SFX a1 0 fes .
|
||||
SFX a1 0 i .
|
||||
SFX a1 0 imp .
|
||||
SFX a1 0 in .
|
||||
SFX a1 0 int .
|
||||
SFX a1 0 is .
|
||||
SFX a1 0 it .
|
||||
SFX a1 0 je .
|
||||
SFX a1 0 jec'h .
|
||||
SFX a1 0 jed .
|
||||
SFX a1 0 jemp .
|
||||
SFX a1 0 jen .
|
||||
SFX a1 0 jent .
|
||||
SFX a1 0 jes .
|
||||
SFX a1 0 joc'h .
|
||||
SFX a1 0 jod .
|
||||
SFX a1 0 jomp .
|
||||
SFX a1 0 jont .
|
||||
SFX a1 0 jout .
|
||||
SFX a1 0 o .
|
||||
SFX a1 0 omp .
|
||||
SFX a1 0 ont .
|
||||
SFX a1 0 or .
|
||||
SFX a1 0 ot .
|
||||
|
||||
# Displegadurioù : verboù reizh
|
||||
SFX d1 Y 52
|
||||
SFX d1 0 0 . is:imp_p2_sg
|
||||
SFX d1 0 0 . is:pri_p3_sg
|
||||
SFX d1 0 an . is:pri_p1_sg
|
||||
SFX d1 0 as . is:past_p3_sg
|
||||
SFX d1 0 e . is:pii_p3_sg
|
||||
SFX d1 0 ec'h . is:pii_p2_pl
|
||||
SFX d1 0 ed . is:pii_impers_sp
|
||||
SFX d1 0 emp . is:pii_p1_pl
|
||||
SFX d1 0 en . is:pii_p1_sg
|
||||
SFX d1 0 ent . is:imp_p3_pl
|
||||
SFX d1 0 ent . is:pii_p3_pl
|
||||
SFX d1 0 er . is:pri_impers_sp
|
||||
SFX d1 0 es . is:pii_p2_sg
|
||||
SFX d1 0 et . is:imp_p3_sg
|
||||
SFX d1 0 et . is:pp
|
||||
SFX d1 0 etañ . is:sup
|
||||
SFX d1 0 etoc'h . is:comp
|
||||
SFX d1 0 ez . is:pri_p2_sg
|
||||
SFX d1 0 fe . is:cni_p3_sg
|
||||
SFX d1 0 fec'h . is:cni_p2_pl
|
||||
SFX d1 0 fed . is:cni_impers_sp
|
||||
SFX d1 0 femp . is:cni_p1_pl
|
||||
SFX d1 0 fen . is:cni_p1_sg
|
||||
SFX d1 0 fent . is:cni_p3_pl
|
||||
SFX d1 0 fes . is:cni_p2_sg
|
||||
SFX d1 0 i . is:fti_p2_sg
|
||||
SFX d1 0 imp . is:fti_p1_pl
|
||||
SFX d1 0 in . is:fti_p1_sg
|
||||
SFX d1 0 int . is:fti_p3_pl
|
||||
SFX d1 0 is . is:past_p1_sg
|
||||
SFX d1 0 it . is:imp_p2_pl
|
||||
SFX d1 0 it . is:pri_p2_pl
|
||||
SFX d1 0 je . is:cip_p3_sg
|
||||
SFX d1 0 jec'h . is:cip_p2_pl
|
||||
SFX d1 0 jed . is:cip_impers_sp
|
||||
SFX d1 0 jemp . is:cip_p1_pl
|
||||
SFX d1 0 jen . is:cip_p1_sg
|
||||
SFX d1 0 jent . is:cip_p3_pl
|
||||
SFX d1 0 jes . is:cip_p2_sg
|
||||
SFX d1 0 joc'h . is:past_p2_pl
|
||||
SFX d1 0 jod . is:past_impers_sp
|
||||
SFX d1 0 jomp . is:past_p1_pl
|
||||
SFX d1 0 jon . is:past_p1_sg
|
||||
SFX d1 0 jont . is:past_p3_pl
|
||||
SFX d1 0 jout . is:past_p2_sg
|
||||
SFX d1 0 o . is:fti_p3_sg
|
||||
SFX d1 0 oc'h . is:fti_p2_pl
|
||||
SFX d1 0 omp . is:imp_p1_pl
|
||||
SFX d1 0 omp . is:pri_p1_pl
|
||||
SFX d1 0 ont . is:pri_p3_pl
|
||||
SFX d1 0 or . is:fti_impers_sp
|
||||
SFX d1 0 ot . is:fti_p2_pl
|
||||
|
||||
# Displegadurioù : verboù reizh gant ur bennrann dre -a, -o et -eu
|
||||
# kuitaat : kuita-
|
||||
# pesketa : pesketa-
|
||||
SFX d2 Y 53
|
||||
SFX d2 0 0 . is:pri_p3_sg
|
||||
SFX d2 0 0 . is:imp_p2_sg
|
||||
SFX d2 0 an . is:pri_p1_sg
|
||||
SFX d2 0 as . is:past_p3_sg
|
||||
SFX d2 0 e . is:pii_p3_sg
|
||||
SFX d2 0 ec'h . is:pii_p2_pl
|
||||
SFX d2 0 ed . is:pii_impers_sp
|
||||
SFX d2 0 emp . is:pii_p1_pl
|
||||
SFX d2 0 en . is:pii_p1_sg
|
||||
SFX d2 0 ent . is:pii_p3_pl
|
||||
SFX d2 0 ent . is:imp_p3_pl
|
||||
SFX d2 0 er . is:pri_impers_sp
|
||||
SFX d2 0 es . is:pii_p2_sg
|
||||
SFX d2 0 et . is:pp
|
||||
SFX d2 0 et . is:imp_p3_sg
|
||||
SFX d2 0 etañ . is:sup
|
||||
SFX d2 0 etoc'h . is:comp
|
||||
SFX d2 0 ez . is:pri_p2_sg
|
||||
SFX d2 0 fe . is:cni_p3_sg
|
||||
SFX d2 0 fec'h . is:cni_p2_pl
|
||||
SFX d2 0 fed . is:cni_impers_sp
|
||||
SFX d2 0 femp . is:cni_p1_pl
|
||||
SFX d2 0 fen . is:cni_p1_sg
|
||||
SFX d2 0 fent . is:cni_p3_pl
|
||||
SFX d2 0 fes . is:cni_p2_sg
|
||||
SFX d2 0 i . is:fti_p2_sg
|
||||
SFX d2 0 imp . is:fti_p1_pl
|
||||
SFX d2 0 in . is:fti_p1_sg
|
||||
SFX d2 0 int . is:fti_p3_pl
|
||||
SFX d2 0 io . is:fti_p3_sg
|
||||
SFX d2 0 is . is:past_p1_sg
|
||||
SFX d2 0 it . is:pri_p2_pl
|
||||
SFX d2 0 it . is:imp_p2_pl
|
||||
SFX d2 0 je . is:cip_p3_sg
|
||||
SFX d2 0 jec'h . is:cip_p2_pl
|
||||
SFX d2 0 jed . is:cip_impers_sp
|
||||
SFX d2 0 jemp . is:cip_p1_pl
|
||||
SFX d2 0 jen . is:cip_p1_sg
|
||||
SFX d2 0 jent . is:cip_p3_pl
|
||||
SFX d2 0 jes . is:cip_p2_sg
|
||||
SFX d2 0 joc'h . is:past_p2_pl
|
||||
SFX d2 0 jod . is:past_impers_sp
|
||||
SFX d2 0 jomp . is:past_p1_pl
|
||||
SFX d2 0 jon . is:past_p1_sg
|
||||
SFX d2 0 jont . is:past_p3_pl
|
||||
SFX d2 0 jout . is:past_p2_sg
|
||||
SFX d2 0 oc'h . is:fti_p2_pl
|
||||
SFX d2 0 omp . is:pri_p1_pl
|
||||
SFX d2 0 omp . is:imp_p1_pl
|
||||
SFX d2 0 ont . is:pri_p3_pl
|
||||
SFX d2 0 or . is:fti_impers_sp
|
||||
SFX d2 0 ot . is:fti_p2_pl
|
||||
SFX d2 0 y . is:fti_p3_sg
|
||||
|
||||
# Displegadurioù : displegadur dazeilel ar verboù dre -a (pesketa, boueta, ...)
|
||||
# pesketa : pesketa-
|
||||
SFX d3 Y 53
|
||||
SFX d3 0 0/d2 .
|
||||
SFX d3 0 0 . is:imp_p2_sg
|
||||
SFX d3 0 0 . is:pri_p3_sg
|
||||
SFX d3 0 n . is:pri_p1_sg
|
||||
SFX d3 0 s . is:past_p3_sg
|
||||
SFX d3 a e . is:pii_p3_sg
|
||||
SFX d3 a ec'h . is:pii_p2_pl
|
||||
SFX d3 a ed . is:pii_impers_sp
|
||||
SFX d3 a emp . is:pii_p1_pl
|
||||
SFX d3 a en . is:pii_p1_sg
|
||||
SFX d3 a ent . is:imp_p3_pl
|
||||
SFX d3 a ent . is:pii_p3_pl
|
||||
SFX d3 a er . is:pri_impers_sp
|
||||
SFX d3 a es . is:pii_p2_sg
|
||||
SFX d3 a et . is:imp_p3_sg
|
||||
SFX d3 a et . is:pp
|
||||
SFX d3 a etañ . is:sup
|
||||
SFX d3 a etoc'h . is:comp
|
||||
SFX d3 a ez . is:pri_p2_sg
|
||||
SFX d3 a fe . is:cni_p3_sg
|
||||
SFX d3 a fec'h . is:cni_p2_pl
|
||||
SFX d3 a fed . is:cni_impers_sp
|
||||
SFX d3 a femp . is:cni_p1_pl
|
||||
SFX d3 a fen . is:cni_p1_sg
|
||||
SFX d3 a fent . is:cni_p3_pl
|
||||
SFX d3 a fes . is:cni_p2_sg
|
||||
SFX d3 a i . is:fti_p2_sg
|
||||
SFX d3 a imp . is:fti_p1_pl
|
||||
SFX d3 a in . is:fti_p1_sg
|
||||
SFX d3 a int . is:fti_p3_pl
|
||||
SFX d3 a is . is:past_p1_sg
|
||||
SFX d3 a it . is:imp_p2_pl
|
||||
SFX d3 a it . is:pri_p2_pl
|
||||
SFX d3 a je . is:cip_p3_sg
|
||||
SFX d3 a jec'h . is:cip_p2_pl
|
||||
SFX d3 a jed . is:cip_impers_sp
|
||||
SFX d3 a jemp . is:cip_p1_pl
|
||||
SFX d3 a jen . is:cip_p1_sg
|
||||
SFX d3 a jent . is:cip_p3_pl
|
||||
SFX d3 a jes . is:cip_p2_sg
|
||||
SFX d3 a joc'h . is:past_p2_pl
|
||||
SFX d3 a jod . is:past_impers_sp
|
||||
SFX d3 a jomp . is:past_p1_pl
|
||||
SFX d3 a jon . is:past_p1_sg
|
||||
SFX d3 a jont . is:past_p3_pl
|
||||
SFX d3 a jout . is:past_p2_sg
|
||||
SFX d3 a o . is:fti_p3_sg
|
||||
SFX d3 a oc'h . is:fti_p2_pl
|
||||
SFX d3 a omp . is:imp_p1_pl
|
||||
SFX d3 a omp . is:pri_p1_pl
|
||||
SFX d3 a ont . is:pri_p3_pl
|
||||
SFX d3 a or . is:fti_impers_sp
|
||||
SFX d3 a ot . is:fti_p2_pl
|
||||
|
||||
# Verboù dre -iañ
|
||||
# glebiañ : gleb-
|
||||
SFX d4 Y 52
|
||||
SFX d4 0 0 . is:imp_p2_sg
|
||||
SFX d4 0 0 . is:pri_p3_sg
|
||||
SFX d4 0 fe . is:cni_p3_sg
|
||||
SFX d4 0 fec'h . is:cni_p2_pl
|
||||
SFX d4 0 fed . is:cni_impers_sp
|
||||
SFX d4 0 femp . is:cni_p1_pl
|
||||
SFX d4 0 fen . is:cni_p1_sg
|
||||
SFX d4 0 fent . is:cni_p3_pl
|
||||
SFX d4 0 fes . is:cni_p2_sg
|
||||
SFX d4 0 i . is:fti_p2_sg
|
||||
SFX d4 0 ian . is:pri_p1_sg
|
||||
SFX d4 0 ias . is:past_p3_sg
|
||||
SFX d4 0 ie . is:pii_p3_sg
|
||||
SFX d4 0 iec'h . is:pii_p2_pl
|
||||
SFX d4 0 ied . is:pii_impers_sp
|
||||
SFX d4 0 iemp . is:pii_p1_pl
|
||||
SFX d4 0 ien . is:pii_p1_sg
|
||||
SFX d4 0 ient . is:imp_p3_pl
|
||||
SFX d4 0 ient . is:pii_p3_pl
|
||||
SFX d4 0 ier . is:pri_impers_sp
|
||||
SFX d4 0 ies . is:pii_p2_sg
|
||||
SFX d4 0 iet . is:imp_p3_sg
|
||||
SFX d4 0 iet . is:pp
|
||||
SFX d4 0 ietañ . is:sup
|
||||
SFX d4 0 ietoc'h . is:comp
|
||||
SFX d4 0 iez . is:pri_p2_sg
|
||||
SFX d4 0 imp . is:fti_p1_pl
|
||||
SFX d4 0 in . is:fti_p1_sg
|
||||
SFX d4 0 int . is:fti_p3_pl
|
||||
SFX d4 0 io . is:fti_p3_sg
|
||||
SFX d4 0 ioc'h . is:fti_p2_pl
|
||||
SFX d4 0 iomp . is:imp_p1_pl
|
||||
SFX d4 0 iomp . is:pri_p1_pl
|
||||
SFX d4 0 iont . is:pri_p3_pl
|
||||
SFX d4 0 ior . is:fti_impers_sp
|
||||
SFX d4 0 iot . is:fti_p2_pl
|
||||
SFX d4 0 is . is:past_p1_sg
|
||||
SFX d4 0 it . is:imp_p2_pl
|
||||
SFX d4 0 it . is:pri_p2_pl
|
||||
SFX d4 0 je . is:cip_p3_sg
|
||||
SFX d4 0 jec'h . is:cip_p2_pl
|
||||
SFX d4 0 jed . is:cip_impers_sp
|
||||
SFX d4 0 jemp . is:cip_p1_pl
|
||||
SFX d4 0 jen . is:cip_p1_sg
|
||||
SFX d4 0 jent . is:cip_p3_pl
|
||||
SFX d4 0 jes . is:cip_p2_sg
|
||||
SFX d4 0 joc'h . is:past_p2_pl
|
||||
SFX d4 0 jod . is:past_impers_sp
|
||||
SFX d4 0 jomp . is:past_p1_pl
|
||||
SFX d4 0 jon . is:past_p1_sg
|
||||
SFX d4 0 jont . is:past_p3_pl
|
||||
SFX d4 0 jout . is:past_p2_sg
|
||||
|
||||
# Verboù dre -liañ
|
||||
# kuzuliañ : kuzuilh-
|
||||
SFX d5 Y 52
|
||||
SFX d5 0 0 . is:pri_p3_sg
|
||||
SFX d5 0 0 . is:imp_p2_sg
|
||||
SFX d5 0 fe . is:cni_p3_sg
|
||||
SFX d5 0 fec'h . is:cni_p2_pl
|
||||
SFX d5 0 fed . is:cni_impers_sp
|
||||
SFX d5 0 femp . is:cni_p1_pl
|
||||
SFX d5 0 fen . is:cni_p1_sg
|
||||
SFX d5 0 fent . is:cni_p3_pl
|
||||
SFX d5 0 fes . is:cni_p2_sg
|
||||
SFX d5 0 i . is:fti_p2_sg
|
||||
SFX d5 0 imp . is:fti_p1_pl
|
||||
SFX d5 0 in . is:fti_p1_sg
|
||||
SFX d5 0 int . is:fti_p3_pl
|
||||
SFX d5 0 is . is:past_p1_sg
|
||||
SFX d5 0 it . is:pri_p2_pl
|
||||
SFX d5 0 it . is:imp_p2_pl
|
||||
SFX d5 0 je . is:cip_p3_sg
|
||||
SFX d5 0 jec'h . is:cip_p2_pl
|
||||
SFX d5 0 jed . is:cip_impers_sp
|
||||
SFX d5 0 jemp . is:cip_p1_pl
|
||||
SFX d5 0 jen . is:cip_p1_sg
|
||||
SFX d5 0 jent . is:cip_p3_pl
|
||||
SFX d5 0 jes . is:cip_p2_sg
|
||||
SFX d5 0 joc'h . is:past_p2_pl
|
||||
SFX d5 0 jod . is:past_impers_sp
|
||||
SFX d5 0 jomp . is:past_p1_pl
|
||||
SFX d5 0 jon . is:past_p1_sg
|
||||
SFX d5 0 jont . is:past_p3_pl
|
||||
SFX d5 0 jout . is:past_p2_sg
|
||||
SFX d5 ilh lian . is:pri_p1_sg
|
||||
SFX d5 ilh lias . is:past_p3_sg
|
||||
SFX d5 ilh lie . is:pii_p3_sg
|
||||
SFX d5 ilh liec'h . is:pii_p2_pl
|
||||
SFX d5 ilh lied . is:pii_impers_sp
|
||||
SFX d5 ilh liemp . is:pii_p1_pl
|
||||
SFX d5 ilh lien . is:pii_p1_sg
|
||||
SFX d5 ilh lient . is:pii_p3_pl
|
||||
SFX d5 ilh lient . is:imp_p3_pl
|
||||
SFX d5 ilh lier . is:pri_impers_sp
|
||||
SFX d5 ilh lies . is:pii_p2_sg
|
||||
SFX d5 ilh liet . is:pp
|
||||
SFX d5 ilh liet . is:imp_p3_sg
|
||||
SFX d5 ilh lietañ . is:sup
|
||||
SFX d5 ilh lietoc'h . is:comp
|
||||
SFX d5 ilh liez . is:pri_p2_sg
|
||||
SFX d5 ilh lio . is:fti_p3_sg
|
||||
SFX d5 ilh lioc'h . is:fti_p2_pl
|
||||
SFX d5 ilh liomp . is:pri_p1_pl
|
||||
SFX d5 ilh liomp . is:imp_p1_pl
|
||||
SFX d5 ilh liont . is:pri_p3_pl
|
||||
SFX d5 ilh lior . is:fti_impers_sp
|
||||
SFX d5 ilh liot . is:fti_p2_pl
|
||||
|
||||
# Verboù dre -niañ
|
||||
# koaniañ : koagn-
|
||||
SFX d6 Y 52
|
||||
SFX d6 0 0 . is:imp_p2_sg
|
||||
SFX d6 0 0 . is:pri_p3_sg
|
||||
SFX d6 0 fe . is:cni_p3_sg
|
||||
SFX d6 0 fec'h . is:cni_p2_pl
|
||||
SFX d6 0 fed . is:cni_impers_sp
|
||||
SFX d6 0 femp . is:cni_p1_pl
|
||||
SFX d6 0 fen . is:cni_p1_sg
|
||||
SFX d6 0 fent . is:cni_p3_pl
|
||||
SFX d6 0 fes . is:cni_p2_sg
|
||||
SFX d6 0 i . is:fti_p2_sg
|
||||
SFX d6 0 imp . is:fti_p1_pl
|
||||
SFX d6 0 in . is:fti_p1_sg
|
||||
SFX d6 0 int . is:fti_p3_pl
|
||||
SFX d6 0 is . is:past_p1_sg
|
||||
SFX d6 0 it . is:imp_p2_pl
|
||||
SFX d6 0 it . is:pri_p2_pl
|
||||
SFX d6 0 je . is:cip_p3_sg
|
||||
SFX d6 0 jec'h . is:cip_p2_pl
|
||||
SFX d6 0 jed . is:cip_impers_sp
|
||||
SFX d6 0 jemp . is:cip_p1_pl
|
||||
SFX d6 0 jen . is:cip_p1_sg
|
||||
SFX d6 0 jent . is:cip_p3_pl
|
||||
SFX d6 0 jes . is:cip_p2_sg
|
||||
SFX d6 0 joc'h . is:past_p2_pl
|
||||
SFX d6 0 jod . is:past_impers_sp
|
||||
SFX d6 0 jomp . is:past_p1_pl
|
||||
SFX d6 0 jon . is:past_p1_sg
|
||||
SFX d6 0 jont . is:past_p3_pl
|
||||
SFX d6 0 jout . is:past_p2_sg
|
||||
SFX d6 gn nian . is:pri_p1_sg
|
||||
SFX d6 gn nias . is:past_p3_sg
|
||||
SFX d6 gn nie . is:pii_p3_sg
|
||||
SFX d6 gn niec'h . is:pii_p2_pl
|
||||
SFX d6 gn nied . is:pii_impers_sp
|
||||
SFX d6 gn niemp . is:pii_p1_pl
|
||||
SFX d6 gn nien . is:pii_p1_sg
|
||||
SFX d6 gn nient . is:imp_p3_pl
|
||||
SFX d6 gn nient . is:pii_p3_pl
|
||||
SFX d6 gn nier . is:pri_impers_sp
|
||||
SFX d6 gn nies . is:pii_p2_sg
|
||||
SFX d6 gn niet . is:imp_p3_sg
|
||||
SFX d6 gn niet . is:pp
|
||||
SFX d6 gn nietañ . is:sup
|
||||
SFX d6 gn nietoc'h . is:comp
|
||||
SFX d6 gn niez . is:pri_p2_sg
|
||||
SFX d6 gn nio . is:fti_p3_sg
|
||||
SFX d6 gn nioc'h . is:fti_p2_pl
|
||||
SFX d6 gn niomp . is:imp_p1_pl
|
||||
SFX d6 gn niomp . is:pri_p1_pl
|
||||
SFX d6 gn niont . is:pri_p3_pl
|
||||
SFX d6 gn nior . is:fti_impers_sp
|
||||
SFX d6 gn niot . is:fti_p2_pl
|
||||
|
||||
# Displegadurioù : ober
|
||||
SFX d7 Y 54
|
||||
SFX d7 0 0 . is:pri_p3_sg
|
||||
SFX d7 0 0 . is:imp_p2_sg
|
||||
SFX d7 0 e . is:pii_p3_sg
|
||||
SFX d7 0 ec'h . is:pii_p2_pl
|
||||
SFX d7 0 ed . is:pii_impers_sp
|
||||
SFX d7 0 emp . is:pii_p1_pl
|
||||
SFX d7 0 en . is:pii_p1_sg
|
||||
SFX d7 0 ent . is:pii_p3_pl
|
||||
SFX d7 0 ent . is:imp_p3_pl
|
||||
SFX d7 0 es . is:pii_p2_sg
|
||||
SFX d7 0 et . is:imp_p3_sg
|
||||
SFX d7 0 et . is:pp
|
||||
SFX d7 0 etañ . is:sup
|
||||
SFX d7 0 etoc'h . is:comp
|
||||
SFX d7 0 fe . is:cni_p3_sg
|
||||
SFX d7 0 fec'h . is:cni_p2_pl
|
||||
SFX d7 0 fed . is:cni_impers_sp
|
||||
SFX d7 0 femp . is:cni_p1_pl
|
||||
SFX d7 0 fen . is:cni_p1_sg
|
||||
SFX d7 0 fent . is:cni_p3_pl
|
||||
SFX d7 0 fes . is:cni_p2_sg
|
||||
SFX d7 0 imp . is:fti_p1_pl
|
||||
SFX d7 0 int . is:fti_p3_pl
|
||||
SFX d7 0 io . is:fti_p3_sg
|
||||
SFX d7 0 je . is:cip_p3_sg
|
||||
SFX d7 0 jec'h . is:cip_p2_pl
|
||||
SFX d7 0 jed . is:cip_impers_sp
|
||||
SFX d7 0 jemp . is:cip_p1_pl
|
||||
SFX d7 0 jen . is:cip_p1_sg
|
||||
SFX d7 0 jent . is:cip_p3_pl
|
||||
SFX d7 0 jes . is:cip_p2_sg
|
||||
SFX d7 0 n . is:pri_p1_sg
|
||||
SFX d7 0 y . is:fti_p3_sg
|
||||
SFX d7 a eas . is:past_p3_sg
|
||||
SFX d7 a eer . is:pri_impers_sp
|
||||
SFX d7 a ejoc'h . is:past_p2_pl
|
||||
SFX d7 a ejod . is:past_impers_sp
|
||||
SFX d7 a ejomp . is:past_p1_pl
|
||||
SFX d7 a ejon . is:past_p1_sg
|
||||
SFX d7 a ejont . is:past_p3_pl
|
||||
SFX d7 a ejout . is:past_p2_sg
|
||||
SFX d7 a eoc'h . is:fti_p2_pl
|
||||
SFX d7 a eomp . is:pri_p1_pl
|
||||
SFX d7 a eomp . is:imp_p1_pl
|
||||
SFX d7 a eont . is:pri_p3_pl
|
||||
SFX d7 a eor . is:fti_impers_sp
|
||||
SFX d7 a eot . is:fti_p2_pl
|
||||
SFX d7 a ez . is:pri_p2_sg
|
||||
SFX d7 a i . is:fti_p2_sg
|
||||
SFX d7 a imp . is:fti_p1_pl
|
||||
SFX d7 a in . is:fti_p1_sg
|
||||
SFX d7 a is . is:past_p1_sg
|
||||
SFX d7 a it . is:pri_p2_pl
|
||||
SFX d7 a it . is:imp_p2_pl
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
Hunspell Breton (br_FR) dictionary
|
||||
Copyright (c) 2001-2018 Korvigelloù An Drouizig
|
||||
drouizig@drouizig.org - http://www.drouizig.org
|
||||
|
||||
Version 0.16 - release date: 2018-12-16
|
||||
--
|
||||
This dictionary is based on the original Breton
|
||||
word list created by Philippe Basciano-Le Gall for
|
||||
Korvigelloù an Drouizig. It is covered by the LGPL,
|
||||
MPL and GPL licenses. The affix file has been heavily
|
||||
modified by Michel "Boulc'hurun" Nedeleg.
|
||||
|
||||
Thanks to both authors for their wonderful work !
|
||||
|
||||
2020-06-06 Denis Arnaud (still on progress...)
|
||||
* Uppercases added in m0 mutations rule.
|
||||
* Plural rules ad>iz (p8), iad>iz (p9) and ad>idi (p10)
|
||||
|
||||
2018-12-16 Denis Arnaud
|
||||
* Review of the verbs list (still on progress)
|
||||
* new flags (m1 and d7) for some verbs (ober, gouzout...)
|
||||
* new replacement rules (én>ñ, en>eñ, un>uñ...)
|
||||
* In dictionary file, words not found in reference dictionaries have been marked by "kkeg" comment, mutation from g- to -h have been marked by "g>h" comment, mutation from gw- to -c'hw have been marked by "c'hw" comment, mutation from gou- to ou- have been marked by "g>o" comment, d3 conjugation applied to -aat verbs have been marked by "d3evaat". The reference dictionaries are Roparz Hemon-Ronan Huon, Favereau, devri.bzh, preder.net and termofis.
|
||||
* Words added (ejiptologour, daer, daerenn, adlabourat, adasavadenn)
|
||||
|
||||
2018-01-15 Denis Arnaud
|
||||
* Words added (anlennet, aodio, pennbajenn, kevanek, skript, proksi, daouglik, daouglikañ, kelennskrid, makro, frammlun, spisverk, spisverkan, stlenngrafer). Review of -niañ verbs list (flag d6).
|
||||
@@ -0,0 +1,8 @@
|
||||
Dual license:
|
||||
|
||||
* GNU General Public License, version 2 or later
|
||||
https://www.gnu.org/licenses/gpl-2.0.txt
|
||||
|
||||
* GNU Lesser General Public License, version 2.1 or later
|
||||
https://www.gnu.org/licenses/lgpl-2.1.txt
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
Dual license:
|
||||
|
||||
* GNU General Public License, version 2 or later
|
||||
https://www.gnu.org/licenses/gpl-2.0.txt
|
||||
|
||||
* GNU Lesser General Public License, version 2.1 or later
|
||||
https://www.gnu.org/licenses/lgpl-2.1.txt
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
The pack contains current versions of all OpenOffice.org Czech dictionares as of 2008-05-18.
|
||||
|
||||
Spellchecker
|
||||
------------
|
||||
|
||||
This dictionary for spell-checking Czech texts is licensed under GPL license.
|
||||
|
||||
The dictionary is based on Czech ispell dictionary created by Petr Kolar
|
||||
and numerous contributors.
|
||||
|
||||
Thesaurus
|
||||
----------
|
||||
|
||||
Copyright (c) 1994,2008 Karel Pala, Jan Všianský
|
||||
pala@fi.muni.cz
|
||||
|
||||
You can freely use the thesaurus in OpenOffice.org (or its derivatives).
|
||||
You can not modify it or use for commercial purposes without the author's
|
||||
approval.
|
||||
|
||||
Hyphenation dictionary
|
||||
----------------------
|
||||
|
||||
Language: Czech (Czech Republic) (cs CZ).
|
||||
Origin: Based on the TeX hyphenation tables
|
||||
License: GPL license, 2003
|
||||
Author: Pavel@Janik.cz (Pavel Janík)
|
||||
|
||||
HYPH cs CZ hyph_cs
|
||||
|
||||
These patterns were converted from TeX hyphenation patterns by the package
|
||||
lingucomponent-tools
|
||||
(http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/oo-cs/lingucomponent-tools/).
|
||||
|
||||
The license of original files is GNU GPL (they are both parts of csTeX). My
|
||||
work on them was to only run the scripts from lingucomponent-tools package
|
||||
(dual LGPL/SISSL license so it can be integrated).
|
||||
--
|
||||
Pavel Janík
|
||||
2003
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
Stavekontrolden - Danish dictionary files for Hunspell and thesaurus files for MyThes
|
||||
Version 2.5.129 - 11-07-2020
|
||||
da_DK.dic, da_DK.aff, th_da_DK.dat, th_da_DK.idx: © 2020 Foreningen for frit tilgængelige sprogværktøjer - http://www.stavekontrolden.dk
|
||||
These files are published under the following open source licenses:
|
||||
|
||||
GNU GPL version 2.0 - https://www.gnu.org/licenses/gpl-2.0.html
|
||||
GNU LGPL version 2.1 - https://www.gnu.org/licenses/lgpl-2.1.html
|
||||
Mozilla MPL version 1.1 - https://www.mozilla.org/en-US/MPL/1.1/
|
||||
|
||||
This dictionary is based on data from Det Danske Sprog- og Litteraturselskab
|
||||
(The Danish Society for Language and Literature), https://dsl.dk.
|
||||
Thanks to Lyngby-Taarbæk Kommune, Gribskov Kommune and Region Midtjylland for financial support to the thesaurus project.
|
||||
@@ -0,0 +1,729 @@
|
||||
# this is the affix file of the de_AT Hunspell dictionary
|
||||
# derived from the igerman98 dictionary
|
||||
#
|
||||
# Version: 20161207
|
||||
#
|
||||
# Copyright (C) 1998-2015 Bjoern Jacke <bjoern@j3e.de>
|
||||
#
|
||||
# License: GPLv2, GPLv3
|
||||
# There should be a copy of both of this licenses included
|
||||
# with every distribution of this dictionary. Modified
|
||||
# versions using the GPL may only include the GPL
|
||||
|
||||
SET UTF-8
|
||||
TRY esijanrtolcdugmphbyfvkwqxzäüößáéêàâñESIJANRTOLCDUGMPHBYFVKWQXZÄÜÖÉ-.
|
||||
|
||||
PFX U Y 1
|
||||
PFX U 0 un .
|
||||
|
||||
PFX V Y 1
|
||||
PFX V 0 ver .
|
||||
|
||||
SFX F Y 35
|
||||
SFX F 0 nen in
|
||||
SFX F e in e
|
||||
SFX F e innen e
|
||||
SFX F 0 in [^i]n
|
||||
SFX F 0 innen [^i]n
|
||||
SFX F 0 in [^enr]
|
||||
SFX F 0 innen [^enr]
|
||||
SFX F 0 in [^e]r
|
||||
SFX F 0 innen [^e]r
|
||||
SFX F 0 in [^r]er
|
||||
SFX F 0 innen [^r]er
|
||||
SFX F 0 in [^e]rer
|
||||
SFX F 0 innen [^e]rer
|
||||
SFX F 0 in ierer
|
||||
SFX F 0 innen ierer
|
||||
SFX F er in [^i]erer
|
||||
SFX F er innen [^i]erer
|
||||
SFX F in In in
|
||||
SFX F in Innen in
|
||||
SFX F e In e
|
||||
SFX F e Innen e
|
||||
SFX F 0 In [^i]n
|
||||
SFX F 0 Innen [^i]n
|
||||
SFX F 0 In [^en]
|
||||
SFX F 0 Innen [^en]
|
||||
SFX F 0 In [^e]r
|
||||
SFX F 0 Innen [^e]r
|
||||
SFX F 0 In [^r]er
|
||||
SFX F 0 Innen [^r]er
|
||||
SFX F 0 In [^e]rer
|
||||
SFX F 0 Innen [^e]rer
|
||||
SFX F 0 In ierer
|
||||
SFX F 0 Innen ierer
|
||||
SFX F er In [^i]erer
|
||||
SFX F er Innen [^i]erer
|
||||
#SFX F en innen en
|
||||
#SFX F en Innen en
|
||||
|
||||
|
||||
SFX L N 12
|
||||
SFX L 0 tlich n
|
||||
SFX L 0 tliche n
|
||||
SFX L 0 tlicher n
|
||||
SFX L 0 tliches n
|
||||
SFX L 0 tlichem n
|
||||
SFX L 0 tlichen n
|
||||
SFX L 0 lich [^n]
|
||||
SFX L 0 liche [^n]
|
||||
SFX L 0 licher [^n]
|
||||
SFX L 0 liches [^n]
|
||||
SFX L 0 lichem [^n]
|
||||
SFX L 0 lichen [^n]
|
||||
|
||||
|
||||
#SFX H N 2
|
||||
#SFX H 0 heit .
|
||||
#SFX H 0 heiten .
|
||||
|
||||
|
||||
#SFX K N 2
|
||||
#SFX K 0 keit .
|
||||
#SFX K 0 keiten .
|
||||
|
||||
|
||||
SFX M N 10
|
||||
SFX M 0 chen [^se]
|
||||
SFX M 0 chens [^se]
|
||||
SFX M ass ässchen ass
|
||||
SFX M ass ässchens ass
|
||||
SFX M oss össchen oss
|
||||
SFX M oss össchens oss
|
||||
SFX M uss üsschen uss
|
||||
SFX M uss üsschens uss
|
||||
SFX M e chen e
|
||||
SFX M e chens e
|
||||
|
||||
|
||||
SFX A Y 46
|
||||
SFX A 0 r e
|
||||
SFX A 0 n e
|
||||
SFX A 0 m e
|
||||
SFX A 0 s e
|
||||
SFX A 0 e [^elr]
|
||||
SFX A 0 er [^elr]
|
||||
SFX A 0 en [^elr]
|
||||
SFX A 0 em [^elr]
|
||||
SFX A 0 es [^elr]
|
||||
SFX A 0 e [^e][rl]
|
||||
SFX A 0 er [^e][rl]
|
||||
SFX A 0 en [^e][rl]
|
||||
SFX A 0 em [^e][rl]
|
||||
SFX A 0 es [^e][rl]
|
||||
SFX A 0 e [^u]er
|
||||
SFX A 0 er [^u]er
|
||||
SFX A 0 en [^u]er
|
||||
SFX A 0 em [^u]er
|
||||
SFX A 0 es [^u]er
|
||||
SFX A er re uer
|
||||
SFX A er rer uer
|
||||
SFX A er ren uer
|
||||
SFX A er rem uer
|
||||
SFX A er res uer
|
||||
SFX A 0 e [eil]el
|
||||
SFX A 0 er [eil]el
|
||||
SFX A 0 en [eil]el
|
||||
SFX A 0 em [eil]el
|
||||
SFX A 0 es [eil]el
|
||||
SFX A el le [^eil]el
|
||||
SFX A el ler [^eil]el
|
||||
SFX A el len [^eil]el
|
||||
SFX A el lem [^eil]el
|
||||
SFX A el les [^eil]el
|
||||
SFX A lig elig [^aeiouhlräüö]lig
|
||||
SFX A lig elige [^aeiouhlräüö]lig
|
||||
SFX A lig eliger [^aeiouhlräüö]lig
|
||||
SFX A lig eligen [^aeiouhlräüö]lig
|
||||
SFX A lig eligem [^aeiouhlräüö]lig
|
||||
SFX A lig eliges [^aeiouhlräüö]lig
|
||||
SFX A erig rig [^hi]erig
|
||||
SFX A erig rige [^hi]erig
|
||||
SFX A erig riger [^hi]erig
|
||||
SFX A erig rigen [^hi]erig
|
||||
SFX A erig rigem [^hi]erig
|
||||
SFX A erig riges [^hi]erig
|
||||
|
||||
|
||||
SFX C Y 100
|
||||
SFX C 0 ere [^elr]
|
||||
SFX C 0 erer [^elr]
|
||||
SFX C 0 eren [^elr]
|
||||
SFX C 0 erem [^elr]
|
||||
SFX C 0 eres [^elr]
|
||||
SFX C 0 re e
|
||||
SFX C 0 rer e
|
||||
SFX C 0 ren e
|
||||
SFX C 0 rem e
|
||||
SFX C 0 res e
|
||||
SFX C 0 ere [^e][lr]
|
||||
SFX C 0 erer [^e][lr]
|
||||
SFX C 0 eren [^e][lr]
|
||||
SFX C 0 erem [^e][lr]
|
||||
SFX C 0 eres [^e][lr]
|
||||
SFX C el lere el
|
||||
SFX C el lerer el
|
||||
SFX C el leren el
|
||||
SFX C el lerem el
|
||||
SFX C el leres el
|
||||
SFX C er rere uer
|
||||
SFX C er rerer uer
|
||||
SFX C er reren uer
|
||||
SFX C er rerem uer
|
||||
SFX C er reres uer
|
||||
SFX C 0 ere [^u]er
|
||||
SFX C 0 erer [^u]er
|
||||
SFX C 0 eren [^u]er
|
||||
SFX C 0 erem [^u]er
|
||||
SFX C 0 eres [^u]er
|
||||
SFX C lig eligere [^aeiouhlräüö]lig
|
||||
SFX C lig eligerer [^aeiouhlräüö]lig
|
||||
SFX C lig eligeren [^aeiouhlräüö]lig
|
||||
SFX C lig eligerem [^aeiouhlräüö]lig
|
||||
SFX C lig eligeres [^aeiouhlräüö]lig
|
||||
SFX C erig rigere [^hi]erig
|
||||
SFX C erig rigerer [^hi]erig
|
||||
SFX C erig rigeren [^hi]erig
|
||||
SFX C erig rigerem [^hi]erig
|
||||
SFX C erig rigeres [^hi]erig
|
||||
SFX C 0 est [kßsuxz]
|
||||
SFX C 0 este [kßsuxz]
|
||||
SFX C 0 ester [kßsuxz]
|
||||
SFX C 0 esten [kßsuxz]
|
||||
SFX C 0 estem [kßsuxz]
|
||||
SFX C 0 estes [kßsuxz]
|
||||
SFX C 0 st et
|
||||
SFX C 0 ste et
|
||||
SFX C 0 ster et
|
||||
SFX C 0 sten et
|
||||
SFX C 0 stem et
|
||||
SFX C 0 stes et
|
||||
SFX C 0 st igt
|
||||
SFX C 0 ste igt
|
||||
SFX C 0 ster igt
|
||||
SFX C 0 sten igt
|
||||
SFX C 0 stem igt
|
||||
SFX C 0 stes igt
|
||||
SFX C 0 est [^i]gt
|
||||
SFX C 0 este [^i]gt
|
||||
SFX C 0 ester [^i]gt
|
||||
SFX C 0 esten [^i]gt
|
||||
SFX C 0 estem [^i]gt
|
||||
SFX C 0 estes [^i]gt
|
||||
SFX C 0 est [^eg]t
|
||||
SFX C 0 este [^eg]t
|
||||
SFX C 0 ester [^eg]t
|
||||
SFX C 0 esten [^eg]t
|
||||
SFX C 0 estem [^eg]t
|
||||
SFX C 0 estes [^eg]t
|
||||
SFX C 0 st [^kßstxz]
|
||||
SFX C 0 ste [^kßstxz]
|
||||
SFX C 0 ster [^kßstxz]
|
||||
SFX C 0 sten [^kßstxz]
|
||||
SFX C 0 stem [^kßstxz]
|
||||
SFX C 0 stes [^kßstxz]
|
||||
SFX C 0 st nd
|
||||
SFX C 0 ste nd
|
||||
SFX C 0 ster nd
|
||||
SFX C 0 sten nd
|
||||
SFX C 0 stem nd
|
||||
SFX C 0 stes nd
|
||||
SFX C 0 est [^n]d
|
||||
SFX C 0 este [^n]d
|
||||
SFX C 0 ester [^n]d
|
||||
SFX C 0 esten [^n]d
|
||||
SFX C 0 estem [^n]d
|
||||
SFX C 0 estes [^n]d
|
||||
SFX C lig eligst [^aeiouhlräüö]lig
|
||||
SFX C lig eligste [^aeiouhlräüö]lig
|
||||
SFX C lig eligster [^aeiouhlräüö]lig
|
||||
SFX C lig eligsten [^aeiouhlräüö]lig
|
||||
SFX C lig eligstem [^aeiouhlräüö]lig
|
||||
SFX C lig eligstes [^aeiouhlräüö]lig
|
||||
SFX C erig rigst [^hi]erig
|
||||
SFX C erig rigste [^hi]erig
|
||||
SFX C erig rigster [^hi]erig
|
||||
SFX C erig rigsten [^hi]erig
|
||||
SFX C erig rigstem [^hi]erig
|
||||
SFX C erig rigstes [^hi]erig
|
||||
|
||||
|
||||
SFX E Y 1
|
||||
SFX E 0 e .
|
||||
|
||||
|
||||
SFX f Y 4
|
||||
SFX f ph f ph
|
||||
SFX f ph fen ph
|
||||
SFX f phie fie phie
|
||||
SFX f phie fien phie
|
||||
|
||||
|
||||
SFX N Y 1
|
||||
SFX N 0 n .
|
||||
|
||||
|
||||
SFX P Y 1
|
||||
SFX P 0 en .
|
||||
|
||||
|
||||
SFX p Y 26
|
||||
SFX p auf äufe auf
|
||||
SFX p auf äufen auf
|
||||
SFX p aus äuser [hH]aus
|
||||
SFX p aus äusern [hH]aus
|
||||
SFX p arkt ärkte [mM]arkt
|
||||
SFX p arkt ärkten [mM]arkt
|
||||
SFX p ang änge ang
|
||||
SFX p ang ängen ang
|
||||
SFX p uß üße uß
|
||||
SFX p uß üßen uß
|
||||
SFX p oß öße oß
|
||||
SFX p oß ößen oß
|
||||
SFX p aum äume aum
|
||||
SFX p aum äumen aum
|
||||
SFX p ag äge ag
|
||||
SFX p ag ägen ag
|
||||
SFX p ug üge ug
|
||||
SFX p ug ügen ug
|
||||
SFX p all älle all
|
||||
SFX p all ällen all
|
||||
SFX p ass ässe ass
|
||||
SFX p ass ässen ass
|
||||
SFX p uss üsse uss
|
||||
SFX p uss üssen uss
|
||||
SFX p oss össe oss
|
||||
SFX p oss össen oss
|
||||
# last ...oss rules are for swiss de_CH only - but do not affect de_DE
|
||||
|
||||
|
||||
SFX R Y 3
|
||||
SFX R 0 er [^e]
|
||||
SFX R 0 ern [^e]
|
||||
SFX R 0 r e
|
||||
|
||||
|
||||
SFX S Y 1
|
||||
SFX S 0 s .
|
||||
|
||||
|
||||
SFX q Y 2
|
||||
SFX q 0 se s
|
||||
SFX q 0 sen s
|
||||
|
||||
|
||||
SFX Q Y 1
|
||||
SFX Q 0 ses s
|
||||
#SFX Q 0 se s
|
||||
#SFX Q 0 sen s
|
||||
|
||||
|
||||
SFX T Y 1
|
||||
SFX T 0 es .
|
||||
|
||||
|
||||
SFX J Y 12
|
||||
SFX J n ung [bgkpßsz]eln
|
||||
SFX J n ungen [bgkpßsz]eln
|
||||
SFX J eln lung eln
|
||||
SFX J n ung ern
|
||||
SFX J en ung en
|
||||
SFX J eln lungen eln
|
||||
SFX J n ungen ern
|
||||
SFX J en ungen en
|
||||
SFX J 0 ung [^n]
|
||||
SFX J 0 ungen [^n]
|
||||
SFX J el lung el
|
||||
SFX J el lungen el
|
||||
|
||||
|
||||
SFX B N 12
|
||||
SFX B n bar e[lr]n
|
||||
SFX B n bare e[lr]n
|
||||
SFX B n baren e[lr]n
|
||||
SFX B n barer e[lr]n
|
||||
SFX B n bares e[lr]n
|
||||
SFX B n barem e[lr]n
|
||||
SFX B en bar en
|
||||
SFX B en bare en
|
||||
SFX B en baren en
|
||||
SFX B en barer en
|
||||
SFX B en bares en
|
||||
SFX B en barem en
|
||||
|
||||
|
||||
SFX D Y 6
|
||||
SFX D 0 d n
|
||||
SFX D 0 de n
|
||||
SFX D 0 den n
|
||||
SFX D 0 der n
|
||||
SFX D 0 des n
|
||||
SFX D 0 dem n
|
||||
|
||||
|
||||
|
||||
SFX W Y 5
|
||||
SFX W en 0 en
|
||||
SFX W n 0 [^e]n
|
||||
SFX W st 0 [^s]st
|
||||
SFX W t 0 sst
|
||||
SFX W t 0 [^s]t
|
||||
|
||||
|
||||
SFX I Y 16
|
||||
SFX I n 0 en
|
||||
SFX I eln le eln
|
||||
SFX I n e eln
|
||||
SFX I ern re ern
|
||||
SFX I n e ern
|
||||
SFX I n t e[lr]n
|
||||
SFX I n t [dt]en
|
||||
SFX I en t [^dimnt]en
|
||||
SFX I en t eien
|
||||
SFX I n t [^e]ien
|
||||
SFX I n t chnen
|
||||
SFX I en t [^c]h[mn]en
|
||||
SFX I n t [^aäehilmnoöuür][mn]en
|
||||
SFX I en t [aäeilmnoöuür][mn]en
|
||||
SFX I n e un
|
||||
SFX I n t un
|
||||
|
||||
|
||||
SFX X Y 26
|
||||
SFX X n t e[lr]n
|
||||
SFX X n t [dtw]en
|
||||
SFX X en t eien
|
||||
SFX X n t [^e]ien
|
||||
SFX X en t [^ditmnw]en
|
||||
SFX X n t chnen
|
||||
SFX X en t [^c]h[mn]en
|
||||
SFX X n t [^aäehilmnoöuür][mn]en
|
||||
SFX X en t [aäeilmnoöuür][mn]en
|
||||
SFX X n t un
|
||||
SFX X st 0 tst
|
||||
SFX X n st e[lr]n
|
||||
SFX X n st [dtw]en
|
||||
SFX X en st [^dimnßstwzx]en
|
||||
SFX X en st eien
|
||||
SFX X n st [^e]ien
|
||||
SFX X n st chnen
|
||||
SFX X en st [^c]h[mn]en
|
||||
SFX X n st [^aäehilmnoöuür][mn]en
|
||||
SFX X en st [aäeilmnoöuür][mn]en
|
||||
SFX X n st un
|
||||
SFX X n st [ßsxz]en
|
||||
SFX X n st ssen
|
||||
SFX X n st schen
|
||||
SFX X t st [^sz]t
|
||||
SFX X t est zt
|
||||
|
||||
|
||||
SFX Y Y 36
|
||||
SFX Y n te e[lr]n
|
||||
SFX Y n te [dtw]en
|
||||
SFX Y en te [^dimntw]en
|
||||
SFX Y en te eien
|
||||
SFX Y n te [^e]ien
|
||||
SFX Y n te chnen
|
||||
SFX Y en te [^c]h[mn]en
|
||||
SFX Y n te [^aäehilmnoöuür][mn]en
|
||||
SFX Y en te [aäeilmnoöuür][mn]en
|
||||
SFX Y n test e[lr]n
|
||||
SFX Y n test [dtw]en
|
||||
SFX Y en test [^dimntw]en
|
||||
SFX Y en test eien
|
||||
SFX Y n test [^e]ien
|
||||
SFX Y n test chnen
|
||||
SFX Y en test [^c]h[mn]en
|
||||
SFX Y n test [^aäehilmnoöuür][mn]en
|
||||
SFX Y en test [aäeilmnoöuür][mn]en
|
||||
SFX Y n tet e[lr]n
|
||||
SFX Y n tet [dtw]en
|
||||
SFX Y en tet [^dimntw]en
|
||||
SFX Y en tet eien
|
||||
SFX Y n tet [^e]ien
|
||||
SFX Y n tet chnen
|
||||
SFX Y en tet [^c]h[mn]en
|
||||
SFX Y n tet [^aäehilmnoöuür][mn]en
|
||||
SFX Y en tet [aäeilmnoöuür][mn]en
|
||||
SFX Y n ten e[lr]n
|
||||
SFX Y n ten [dtw]en
|
||||
SFX Y en ten [^dimntw]en
|
||||
SFX Y en ten eien
|
||||
SFX Y n ten [^e]ien
|
||||
SFX Y n ten chnen
|
||||
SFX Y en ten [^c]h[mn]en
|
||||
SFX Y n ten [^aäehilmnoöuür][mn]en
|
||||
SFX Y en ten [aäeilmnoöuür][mn]en
|
||||
|
||||
|
||||
SFX Z Y 15
|
||||
SFX Z 0 st [^hßsz]
|
||||
SFX Z 0 st [^c]h
|
||||
SFX Z 0 st [^s]ch
|
||||
SFX Z 0 est [dfkstz]
|
||||
SFX Z 0 est ch
|
||||
SFX Z 0 est [au]ß
|
||||
SFX Z 0 est ieß
|
||||
SFX Z 0 est [io]ss
|
||||
SFX Z 0 t [^dt]
|
||||
SFX Z 0 et [dt]
|
||||
SFX Z 0 n e
|
||||
SFX Z 0 en ie
|
||||
SFX Z 0 en [^e]
|
||||
SFX Z 0 est iess
|
||||
SFX Z 0 est [au]ss
|
||||
# last two ...ss rules only used for swiss de_CH - but de_DE is unaffected
|
||||
|
||||
|
||||
SFX O Y 21
|
||||
SFX O n tes e[lr]n
|
||||
SFX O n tes [dtw]en
|
||||
SFX O en tes [^dmntw]en
|
||||
SFX O n tes chnen
|
||||
SFX O en tes [^c]h[mn]en
|
||||
SFX O n tes [^aäehilmnoöuür][mn]en
|
||||
SFX O en tes [aäeilmnoöuür][mn]en
|
||||
SFX O n ter e[lr]n
|
||||
SFX O n ter [dtw]en
|
||||
SFX O en ter [^dmntw]en
|
||||
SFX O n ter chnen
|
||||
SFX O en ter [^c]h[mn]en
|
||||
SFX O n ter [^aäehilmnoöuür][mn]en
|
||||
SFX O en ter [aäeilmnoöuür][mn]en
|
||||
SFX O n tem e[lr]n
|
||||
SFX O n tem [dtw]en
|
||||
SFX O en tem [^dmntw]en
|
||||
SFX O n tem chnen
|
||||
SFX O en tem [^c]h[mn]en
|
||||
SFX O n tem [^aäehilmnoöuür][mn]en
|
||||
SFX O en tem [aäeilmnoöuür][mn]en
|
||||
|
||||
REP 28
|
||||
REP f ph
|
||||
REP ph f
|
||||
REP ß ss
|
||||
REP ss ß
|
||||
REP s ss
|
||||
REP ss s
|
||||
REP i ie
|
||||
REP ie i
|
||||
REP ee e
|
||||
REP o oh
|
||||
REP oh o
|
||||
REP a ah
|
||||
REP ah a
|
||||
REP e eh
|
||||
REP eh e
|
||||
REP ae ä
|
||||
REP oe ö
|
||||
REP ue ü
|
||||
REP Ae Ä
|
||||
REP Oe Ö
|
||||
REP Ue Ü
|
||||
REP d t
|
||||
REP t d
|
||||
REP th t
|
||||
REP t th
|
||||
REP r rh
|
||||
REP ch k
|
||||
REP k ch
|
||||
#REP eee ee-E
|
||||
|
||||
|
||||
# this one will allow "-Eltern" - Hunspell 1.1.5 bug, but CHECKSHARPS obsoletes LANG de_DE
|
||||
#LANG de_DE
|
||||
CHECKSHARPS
|
||||
|
||||
|
||||
COMPOUNDBEGIN x
|
||||
COMPOUNDMIDDLE y
|
||||
COMPOUNDEND z
|
||||
FORBIDDENWORD d
|
||||
|
||||
# Prefixes are allowed at the beginning of compounds,
|
||||
# suffixes are allowed at the end of compounds by default:
|
||||
# (prefix)?(root)+(affix)?
|
||||
# Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
|
||||
COMPOUNDPERMITFLAG c
|
||||
|
||||
ONLYINCOMPOUND o
|
||||
|
||||
# my PSEUDOROOT h(elper) flag
|
||||
NEEDAFFIX h
|
||||
|
||||
# forbid uppercase characters at compound word bounds
|
||||
# BUT I want to take care about it myself ;-)
|
||||
# CHECKCOMPOUNDCASE
|
||||
KEEPCASE w
|
||||
|
||||
# Affixes signed with CIRCUMFIX flag may be on a word when this word also has a prefix with CIRCUMFIX flag and vice versa.
|
||||
# for decapitalizing nouns with fogemorphemes
|
||||
CIRCUMFIX f
|
||||
|
||||
# this one would make a separate dict entry "Denkmalsschutz" invalidate the
|
||||
# compound of "Denkmal"+"schutz". We do not want this feature here...
|
||||
# CHECKCOMPOUNDREP
|
||||
|
||||
# make not all possible suggestions for typos of Flicken or some rare words
|
||||
NOSUGGEST n
|
||||
|
||||
WORDCHARS ß-.
|
||||
|
||||
# - setting this to 2 decreases performance by 1/10 but is needed for "öl" and "ei"
|
||||
# - setting this to 1 for handling Fuge-elements with dashes (Arbeits-) dash will
|
||||
# be a special word but - is handled as a affix now
|
||||
COMPOUNDMIN 2
|
||||
|
||||
# this ones are for Duden R36 (old orthography)
|
||||
#CHECKCOMPOUNDPATTERN 2 #oldspell
|
||||
#CHECKCOMPOUNDPATTERN ee e #oldspell
|
||||
#CHECKCOMPOUNDPATTERN oo o #oldspell
|
||||
# also need oo o
|
||||
|
||||
# this one needs to be flagable to be used for old orthography
|
||||
#CHECKCOMPOUNDTRIPLE
|
||||
|
||||
|
||||
PFX i Y 1
|
||||
PFX i 0 -/coyf .
|
||||
|
||||
SFX j Y 3
|
||||
SFX j 0 0/xoc .
|
||||
SFX j 0 -/zocf .
|
||||
SFX j 0 -/cz .
|
||||
|
||||
# Female forms for compound/Compound words:
|
||||
# attention: [^e][^n] does also filter out "...er" !
|
||||
SFX g Y 12
|
||||
SFX g 0 innen/xyoc [^n]
|
||||
SFX g en innen/xyoc en
|
||||
SFX g 0 Innen/xyoc [^n]
|
||||
SFX g en Innen/xyoc en
|
||||
SFX g 0 innen/xyocf [^n]
|
||||
SFX g en innen/xyocf en
|
||||
SFX g 0 Innen/xyocf [^n]
|
||||
SFX g en Innen/xyocf en
|
||||
SFX g 0 innen-/cz [^n]
|
||||
SFX g en innen-/cz en
|
||||
SFX g 0 Innen-/cz [^n]
|
||||
SFX g en Innen-/cz en
|
||||
|
||||
|
||||
PFX k Y 2
|
||||
PFX k 0 -/coxf .
|
||||
PFX k 0 0/coy .
|
||||
|
||||
SFX e Y 2
|
||||
SFX e 0 0/yoc .
|
||||
SFX e 0 -/zc .
|
||||
|
||||
# for Uppercased end-words to prepend - and lowercase: (Tier/EPSm) (EX: Bettbezüge und *-laken*)
|
||||
# AND
|
||||
# for lowercased end-words to prepend - and re-uppercase : (tier/EPSozm) (EX: Arbeits*-Tier*)
|
||||
#PFX m A -a/co A
|
||||
#PFX m a -/ a
|
||||
PFX m Y 58
|
||||
PFX m A -a A
|
||||
PFX m B -b B
|
||||
PFX m C -c C
|
||||
PFX m D -d D
|
||||
PFX m E -e E
|
||||
PFX m F -f F
|
||||
PFX m G -g G
|
||||
PFX m H -h H
|
||||
PFX m I -i I
|
||||
PFX m J -j J
|
||||
PFX m K -k K
|
||||
PFX m L -l L
|
||||
PFX m M -m M
|
||||
PFX m N -n N
|
||||
PFX m O -o O
|
||||
PFX m P -p P
|
||||
PFX m Q -q Q
|
||||
PFX m R -r R
|
||||
PFX m S -s S
|
||||
PFX m T -t T
|
||||
PFX m U -u U
|
||||
PFX m V -v V
|
||||
PFX m W -w W
|
||||
PFX m X -x X
|
||||
PFX m Y -y Y
|
||||
PFX m Z -z Z
|
||||
PFX m Ä -ä Ä
|
||||
PFX m Ö -ö Ö
|
||||
PFX m Ü -ü Ü
|
||||
PFX m a -A/co a
|
||||
PFX m b -B/co b
|
||||
PFX m c -C/co c
|
||||
PFX m d -D/co d
|
||||
PFX m e -E/co e
|
||||
PFX m f -F/co f
|
||||
PFX m g -G/co g
|
||||
PFX m h -H/co h
|
||||
PFX m i -I/co i
|
||||
PFX m j -J/co j
|
||||
PFX m k -K/co k
|
||||
PFX m l -L/co l
|
||||
PFX m m -M/co m
|
||||
PFX m n -N/co n
|
||||
PFX m o -O/co o
|
||||
PFX m p -P/co p
|
||||
PFX m q -Q/co q
|
||||
PFX m r -R/co r
|
||||
PFX m s -S/co s
|
||||
PFX m t -T/co t
|
||||
PFX m u -U/co u
|
||||
PFX m v -V/co v
|
||||
PFX m w -W/co w
|
||||
PFX m x -X/co x
|
||||
PFX m y -Y/co y
|
||||
PFX m z -Z/co z
|
||||
PFX m ä -Ä/co ä
|
||||
PFX m ö -Ö/co ö
|
||||
PFX m ü -Ü/co ü
|
||||
|
||||
|
||||
# Decapitalizing: (not used ATM... )
|
||||
# /co(f) : compound permit, in coumpount only, (decapitalizing with fogemorphemes)
|
||||
#PFX l Y 29
|
||||
#PFX l A a/co A
|
||||
#PFX l Ä ä/co Ä
|
||||
#PFX l B b/co B
|
||||
#PFX l C c/co C
|
||||
#PFX l D d/co D
|
||||
#PFX l E e/co E
|
||||
#PFX l F f/co F
|
||||
#PFX l G g/co G
|
||||
#PFX l H h/co H
|
||||
#PFX l I i/co I
|
||||
#PFX l J j/co J
|
||||
#PFX l K k/co K
|
||||
#PFX l L l/co L
|
||||
#PFX l M m/co M
|
||||
#PFX l N n/co N
|
||||
#PFX l O o/co O
|
||||
#PFX l Ö ö/co Ö
|
||||
#PFX l P p/co P
|
||||
#PFX l Q q/co Q
|
||||
#PFX l R r/co R
|
||||
#PFX l S s/co S
|
||||
#PFX l T t/co T
|
||||
#PFX l U u/co U
|
||||
#PFX l Ü ü/co Ü
|
||||
#PFX l V v/co V
|
||||
#PFX l W w/co W
|
||||
#PFX l X x/co X
|
||||
#PFX l Y y/co Y
|
||||
#PFX l Z z/co Z
|
||||
|
||||
# private hunspell flags:
|
||||
# --x : not for capmain (rare words)
|
||||
|
||||
# With "BREAK -" some wrong forms are accepted but that is needed for US-Wirtschaft etc.
|
||||
# So enabling this is the lesser evil. No perfect solution found so far...
|
||||
BREAK 2
|
||||
BREAK -
|
||||
BREAK .
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
igerman98 - dictionaries for German language
|
||||
Copyright (C) 1999-2016 Björn Jacke <bjoern@j3e.de>.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 or 3 as
|
||||
published by the Free Software Foundation.
|
||||
|
||||
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
@@ -0,0 +1,729 @@
|
||||
# this is the affix file of the de_CH Hunspell dictionary
|
||||
# derived from the igerman98 dictionary
|
||||
#
|
||||
# Version: 20161207
|
||||
#
|
||||
# Copyright (C) 1998-2015 Bjoern Jacke <bjoern@j3e.de>
|
||||
#
|
||||
# License: GPLv2, GPLv3
|
||||
# There should be a copy of both of this licenses included
|
||||
# with every distribution of this dictionary. Modified
|
||||
# versions using the GPL may only include the GPL
|
||||
|
||||
SET UTF-8
|
||||
TRY esijanrtolcdugmphbyfvkwqxzäüößáéêàâñESIJANRTOLCDUGMPHBYFVKWQXZÄÜÖÉ-.
|
||||
|
||||
PFX U Y 1
|
||||
PFX U 0 un .
|
||||
|
||||
PFX V Y 1
|
||||
PFX V 0 ver .
|
||||
|
||||
SFX F Y 35
|
||||
SFX F 0 nen in
|
||||
SFX F e in e
|
||||
SFX F e innen e
|
||||
SFX F 0 in [^i]n
|
||||
SFX F 0 innen [^i]n
|
||||
SFX F 0 in [^enr]
|
||||
SFX F 0 innen [^enr]
|
||||
SFX F 0 in [^e]r
|
||||
SFX F 0 innen [^e]r
|
||||
SFX F 0 in [^r]er
|
||||
SFX F 0 innen [^r]er
|
||||
SFX F 0 in [^e]rer
|
||||
SFX F 0 innen [^e]rer
|
||||
SFX F 0 in ierer
|
||||
SFX F 0 innen ierer
|
||||
SFX F er in [^i]erer
|
||||
SFX F er innen [^i]erer
|
||||
SFX F in In in
|
||||
SFX F in Innen in
|
||||
SFX F e In e
|
||||
SFX F e Innen e
|
||||
SFX F 0 In [^i]n
|
||||
SFX F 0 Innen [^i]n
|
||||
SFX F 0 In [^en]
|
||||
SFX F 0 Innen [^en]
|
||||
SFX F 0 In [^e]r
|
||||
SFX F 0 Innen [^e]r
|
||||
SFX F 0 In [^r]er
|
||||
SFX F 0 Innen [^r]er
|
||||
SFX F 0 In [^e]rer
|
||||
SFX F 0 Innen [^e]rer
|
||||
SFX F 0 In ierer
|
||||
SFX F 0 Innen ierer
|
||||
SFX F er In [^i]erer
|
||||
SFX F er Innen [^i]erer
|
||||
#SFX F en innen en
|
||||
#SFX F en Innen en
|
||||
|
||||
|
||||
SFX L N 12
|
||||
SFX L 0 tlich n
|
||||
SFX L 0 tliche n
|
||||
SFX L 0 tlicher n
|
||||
SFX L 0 tliches n
|
||||
SFX L 0 tlichem n
|
||||
SFX L 0 tlichen n
|
||||
SFX L 0 lich [^n]
|
||||
SFX L 0 liche [^n]
|
||||
SFX L 0 licher [^n]
|
||||
SFX L 0 liches [^n]
|
||||
SFX L 0 lichem [^n]
|
||||
SFX L 0 lichen [^n]
|
||||
|
||||
|
||||
#SFX H N 2
|
||||
#SFX H 0 heit .
|
||||
#SFX H 0 heiten .
|
||||
|
||||
|
||||
#SFX K N 2
|
||||
#SFX K 0 keit .
|
||||
#SFX K 0 keiten .
|
||||
|
||||
|
||||
SFX M N 10
|
||||
SFX M 0 chen [^se]
|
||||
SFX M 0 chens [^se]
|
||||
SFX M ass ässchen ass
|
||||
SFX M ass ässchens ass
|
||||
SFX M oss össchen oss
|
||||
SFX M oss össchens oss
|
||||
SFX M uss üsschen uss
|
||||
SFX M uss üsschens uss
|
||||
SFX M e chen e
|
||||
SFX M e chens e
|
||||
|
||||
|
||||
SFX A Y 46
|
||||
SFX A 0 r e
|
||||
SFX A 0 n e
|
||||
SFX A 0 m e
|
||||
SFX A 0 s e
|
||||
SFX A 0 e [^elr]
|
||||
SFX A 0 er [^elr]
|
||||
SFX A 0 en [^elr]
|
||||
SFX A 0 em [^elr]
|
||||
SFX A 0 es [^elr]
|
||||
SFX A 0 e [^e][rl]
|
||||
SFX A 0 er [^e][rl]
|
||||
SFX A 0 en [^e][rl]
|
||||
SFX A 0 em [^e][rl]
|
||||
SFX A 0 es [^e][rl]
|
||||
SFX A 0 e [^u]er
|
||||
SFX A 0 er [^u]er
|
||||
SFX A 0 en [^u]er
|
||||
SFX A 0 em [^u]er
|
||||
SFX A 0 es [^u]er
|
||||
SFX A er re uer
|
||||
SFX A er rer uer
|
||||
SFX A er ren uer
|
||||
SFX A er rem uer
|
||||
SFX A er res uer
|
||||
SFX A 0 e [eil]el
|
||||
SFX A 0 er [eil]el
|
||||
SFX A 0 en [eil]el
|
||||
SFX A 0 em [eil]el
|
||||
SFX A 0 es [eil]el
|
||||
SFX A el le [^eil]el
|
||||
SFX A el ler [^eil]el
|
||||
SFX A el len [^eil]el
|
||||
SFX A el lem [^eil]el
|
||||
SFX A el les [^eil]el
|
||||
SFX A lig elig [^aeiouhlräüö]lig
|
||||
SFX A lig elige [^aeiouhlräüö]lig
|
||||
SFX A lig eliger [^aeiouhlräüö]lig
|
||||
SFX A lig eligen [^aeiouhlräüö]lig
|
||||
SFX A lig eligem [^aeiouhlräüö]lig
|
||||
SFX A lig eliges [^aeiouhlräüö]lig
|
||||
SFX A erig rig [^hi]erig
|
||||
SFX A erig rige [^hi]erig
|
||||
SFX A erig riger [^hi]erig
|
||||
SFX A erig rigen [^hi]erig
|
||||
SFX A erig rigem [^hi]erig
|
||||
SFX A erig riges [^hi]erig
|
||||
|
||||
|
||||
SFX C Y 100
|
||||
SFX C 0 ere [^elr]
|
||||
SFX C 0 erer [^elr]
|
||||
SFX C 0 eren [^elr]
|
||||
SFX C 0 erem [^elr]
|
||||
SFX C 0 eres [^elr]
|
||||
SFX C 0 re e
|
||||
SFX C 0 rer e
|
||||
SFX C 0 ren e
|
||||
SFX C 0 rem e
|
||||
SFX C 0 res e
|
||||
SFX C 0 ere [^e][lr]
|
||||
SFX C 0 erer [^e][lr]
|
||||
SFX C 0 eren [^e][lr]
|
||||
SFX C 0 erem [^e][lr]
|
||||
SFX C 0 eres [^e][lr]
|
||||
SFX C el lere el
|
||||
SFX C el lerer el
|
||||
SFX C el leren el
|
||||
SFX C el lerem el
|
||||
SFX C el leres el
|
||||
SFX C er rere uer
|
||||
SFX C er rerer uer
|
||||
SFX C er reren uer
|
||||
SFX C er rerem uer
|
||||
SFX C er reres uer
|
||||
SFX C 0 ere [^u]er
|
||||
SFX C 0 erer [^u]er
|
||||
SFX C 0 eren [^u]er
|
||||
SFX C 0 erem [^u]er
|
||||
SFX C 0 eres [^u]er
|
||||
SFX C lig eligere [^aeiouhlräüö]lig
|
||||
SFX C lig eligerer [^aeiouhlräüö]lig
|
||||
SFX C lig eligeren [^aeiouhlräüö]lig
|
||||
SFX C lig eligerem [^aeiouhlräüö]lig
|
||||
SFX C lig eligeres [^aeiouhlräüö]lig
|
||||
SFX C erig rigere [^hi]erig
|
||||
SFX C erig rigerer [^hi]erig
|
||||
SFX C erig rigeren [^hi]erig
|
||||
SFX C erig rigerem [^hi]erig
|
||||
SFX C erig rigeres [^hi]erig
|
||||
SFX C 0 est [kßsuxz]
|
||||
SFX C 0 este [kßsuxz]
|
||||
SFX C 0 ester [kßsuxz]
|
||||
SFX C 0 esten [kßsuxz]
|
||||
SFX C 0 estem [kßsuxz]
|
||||
SFX C 0 estes [kßsuxz]
|
||||
SFX C 0 st et
|
||||
SFX C 0 ste et
|
||||
SFX C 0 ster et
|
||||
SFX C 0 sten et
|
||||
SFX C 0 stem et
|
||||
SFX C 0 stes et
|
||||
SFX C 0 st igt
|
||||
SFX C 0 ste igt
|
||||
SFX C 0 ster igt
|
||||
SFX C 0 sten igt
|
||||
SFX C 0 stem igt
|
||||
SFX C 0 stes igt
|
||||
SFX C 0 est [^i]gt
|
||||
SFX C 0 este [^i]gt
|
||||
SFX C 0 ester [^i]gt
|
||||
SFX C 0 esten [^i]gt
|
||||
SFX C 0 estem [^i]gt
|
||||
SFX C 0 estes [^i]gt
|
||||
SFX C 0 est [^eg]t
|
||||
SFX C 0 este [^eg]t
|
||||
SFX C 0 ester [^eg]t
|
||||
SFX C 0 esten [^eg]t
|
||||
SFX C 0 estem [^eg]t
|
||||
SFX C 0 estes [^eg]t
|
||||
SFX C 0 st [^kßstxz]
|
||||
SFX C 0 ste [^kßstxz]
|
||||
SFX C 0 ster [^kßstxz]
|
||||
SFX C 0 sten [^kßstxz]
|
||||
SFX C 0 stem [^kßstxz]
|
||||
SFX C 0 stes [^kßstxz]
|
||||
SFX C 0 st nd
|
||||
SFX C 0 ste nd
|
||||
SFX C 0 ster nd
|
||||
SFX C 0 sten nd
|
||||
SFX C 0 stem nd
|
||||
SFX C 0 stes nd
|
||||
SFX C 0 est [^n]d
|
||||
SFX C 0 este [^n]d
|
||||
SFX C 0 ester [^n]d
|
||||
SFX C 0 esten [^n]d
|
||||
SFX C 0 estem [^n]d
|
||||
SFX C 0 estes [^n]d
|
||||
SFX C lig eligst [^aeiouhlräüö]lig
|
||||
SFX C lig eligste [^aeiouhlräüö]lig
|
||||
SFX C lig eligster [^aeiouhlräüö]lig
|
||||
SFX C lig eligsten [^aeiouhlräüö]lig
|
||||
SFX C lig eligstem [^aeiouhlräüö]lig
|
||||
SFX C lig eligstes [^aeiouhlräüö]lig
|
||||
SFX C erig rigst [^hi]erig
|
||||
SFX C erig rigste [^hi]erig
|
||||
SFX C erig rigster [^hi]erig
|
||||
SFX C erig rigsten [^hi]erig
|
||||
SFX C erig rigstem [^hi]erig
|
||||
SFX C erig rigstes [^hi]erig
|
||||
|
||||
|
||||
SFX E Y 1
|
||||
SFX E 0 e .
|
||||
|
||||
|
||||
SFX f Y 4
|
||||
SFX f ph f ph
|
||||
SFX f ph fen ph
|
||||
SFX f phie fie phie
|
||||
SFX f phie fien phie
|
||||
|
||||
|
||||
SFX N Y 1
|
||||
SFX N 0 n .
|
||||
|
||||
|
||||
SFX P Y 1
|
||||
SFX P 0 en .
|
||||
|
||||
|
||||
SFX p Y 26
|
||||
SFX p auf äufe auf
|
||||
SFX p auf äufen auf
|
||||
SFX p aus äuser [hH]aus
|
||||
SFX p aus äusern [hH]aus
|
||||
SFX p arkt ärkte [mM]arkt
|
||||
SFX p arkt ärkten [mM]arkt
|
||||
SFX p ang änge ang
|
||||
SFX p ang ängen ang
|
||||
SFX p uß üße uß
|
||||
SFX p uß üßen uß
|
||||
SFX p oß öße oß
|
||||
SFX p oß ößen oß
|
||||
SFX p aum äume aum
|
||||
SFX p aum äumen aum
|
||||
SFX p ag äge ag
|
||||
SFX p ag ägen ag
|
||||
SFX p ug üge ug
|
||||
SFX p ug ügen ug
|
||||
SFX p all älle all
|
||||
SFX p all ällen all
|
||||
SFX p ass ässe ass
|
||||
SFX p ass ässen ass
|
||||
SFX p uss üsse uss
|
||||
SFX p uss üssen uss
|
||||
SFX p oss össe oss
|
||||
SFX p oss össen oss
|
||||
# last ...oss rules are for swiss de_CH only - but do not affect de_DE
|
||||
|
||||
|
||||
SFX R Y 3
|
||||
SFX R 0 er [^e]
|
||||
SFX R 0 ern [^e]
|
||||
SFX R 0 r e
|
||||
|
||||
|
||||
SFX S Y 1
|
||||
SFX S 0 s .
|
||||
|
||||
|
||||
SFX q Y 2
|
||||
SFX q 0 se s
|
||||
SFX q 0 sen s
|
||||
|
||||
|
||||
SFX Q Y 1
|
||||
SFX Q 0 ses s
|
||||
#SFX Q 0 se s
|
||||
#SFX Q 0 sen s
|
||||
|
||||
|
||||
SFX T Y 1
|
||||
SFX T 0 es .
|
||||
|
||||
|
||||
SFX J Y 12
|
||||
SFX J n ung [bgkpßsz]eln
|
||||
SFX J n ungen [bgkpßsz]eln
|
||||
SFX J eln lung eln
|
||||
SFX J n ung ern
|
||||
SFX J en ung en
|
||||
SFX J eln lungen eln
|
||||
SFX J n ungen ern
|
||||
SFX J en ungen en
|
||||
SFX J 0 ung [^n]
|
||||
SFX J 0 ungen [^n]
|
||||
SFX J el lung el
|
||||
SFX J el lungen el
|
||||
|
||||
|
||||
SFX B N 12
|
||||
SFX B n bar e[lr]n
|
||||
SFX B n bare e[lr]n
|
||||
SFX B n baren e[lr]n
|
||||
SFX B n barer e[lr]n
|
||||
SFX B n bares e[lr]n
|
||||
SFX B n barem e[lr]n
|
||||
SFX B en bar en
|
||||
SFX B en bare en
|
||||
SFX B en baren en
|
||||
SFX B en barer en
|
||||
SFX B en bares en
|
||||
SFX B en barem en
|
||||
|
||||
|
||||
SFX D Y 6
|
||||
SFX D 0 d n
|
||||
SFX D 0 de n
|
||||
SFX D 0 den n
|
||||
SFX D 0 der n
|
||||
SFX D 0 des n
|
||||
SFX D 0 dem n
|
||||
|
||||
|
||||
|
||||
SFX W Y 5
|
||||
SFX W en 0 en
|
||||
SFX W n 0 [^e]n
|
||||
SFX W st 0 [^s]st
|
||||
SFX W t 0 sst
|
||||
SFX W t 0 [^s]t
|
||||
|
||||
|
||||
SFX I Y 16
|
||||
SFX I n 0 en
|
||||
SFX I eln le eln
|
||||
SFX I n e eln
|
||||
SFX I ern re ern
|
||||
SFX I n e ern
|
||||
SFX I n t e[lr]n
|
||||
SFX I n t [dt]en
|
||||
SFX I en t [^dimnt]en
|
||||
SFX I en t eien
|
||||
SFX I n t [^e]ien
|
||||
SFX I n t chnen
|
||||
SFX I en t [^c]h[mn]en
|
||||
SFX I n t [^aäehilmnoöuür][mn]en
|
||||
SFX I en t [aäeilmnoöuür][mn]en
|
||||
SFX I n e un
|
||||
SFX I n t un
|
||||
|
||||
|
||||
SFX X Y 26
|
||||
SFX X n t e[lr]n
|
||||
SFX X n t [dtw]en
|
||||
SFX X en t eien
|
||||
SFX X n t [^e]ien
|
||||
SFX X en t [^ditmnw]en
|
||||
SFX X n t chnen
|
||||
SFX X en t [^c]h[mn]en
|
||||
SFX X n t [^aäehilmnoöuür][mn]en
|
||||
SFX X en t [aäeilmnoöuür][mn]en
|
||||
SFX X n t un
|
||||
SFX X st 0 tst
|
||||
SFX X n st e[lr]n
|
||||
SFX X n st [dtw]en
|
||||
SFX X en st [^dimnßstwzx]en
|
||||
SFX X en st eien
|
||||
SFX X n st [^e]ien
|
||||
SFX X n st chnen
|
||||
SFX X en st [^c]h[mn]en
|
||||
SFX X n st [^aäehilmnoöuür][mn]en
|
||||
SFX X en st [aäeilmnoöuür][mn]en
|
||||
SFX X n st un
|
||||
SFX X n st [ßsxz]en
|
||||
SFX X n st ssen
|
||||
SFX X n st schen
|
||||
SFX X t st [^sz]t
|
||||
SFX X t est zt
|
||||
|
||||
|
||||
SFX Y Y 36
|
||||
SFX Y n te e[lr]n
|
||||
SFX Y n te [dtw]en
|
||||
SFX Y en te [^dimntw]en
|
||||
SFX Y en te eien
|
||||
SFX Y n te [^e]ien
|
||||
SFX Y n te chnen
|
||||
SFX Y en te [^c]h[mn]en
|
||||
SFX Y n te [^aäehilmnoöuür][mn]en
|
||||
SFX Y en te [aäeilmnoöuür][mn]en
|
||||
SFX Y n test e[lr]n
|
||||
SFX Y n test [dtw]en
|
||||
SFX Y en test [^dimntw]en
|
||||
SFX Y en test eien
|
||||
SFX Y n test [^e]ien
|
||||
SFX Y n test chnen
|
||||
SFX Y en test [^c]h[mn]en
|
||||
SFX Y n test [^aäehilmnoöuür][mn]en
|
||||
SFX Y en test [aäeilmnoöuür][mn]en
|
||||
SFX Y n tet e[lr]n
|
||||
SFX Y n tet [dtw]en
|
||||
SFX Y en tet [^dimntw]en
|
||||
SFX Y en tet eien
|
||||
SFX Y n tet [^e]ien
|
||||
SFX Y n tet chnen
|
||||
SFX Y en tet [^c]h[mn]en
|
||||
SFX Y n tet [^aäehilmnoöuür][mn]en
|
||||
SFX Y en tet [aäeilmnoöuür][mn]en
|
||||
SFX Y n ten e[lr]n
|
||||
SFX Y n ten [dtw]en
|
||||
SFX Y en ten [^dimntw]en
|
||||
SFX Y en ten eien
|
||||
SFX Y n ten [^e]ien
|
||||
SFX Y n ten chnen
|
||||
SFX Y en ten [^c]h[mn]en
|
||||
SFX Y n ten [^aäehilmnoöuür][mn]en
|
||||
SFX Y en ten [aäeilmnoöuür][mn]en
|
||||
|
||||
|
||||
SFX Z Y 15
|
||||
SFX Z 0 st [^hßsz]
|
||||
SFX Z 0 st [^c]h
|
||||
SFX Z 0 st [^s]ch
|
||||
SFX Z 0 est [dfkstz]
|
||||
SFX Z 0 est ch
|
||||
SFX Z 0 est [au]ß
|
||||
SFX Z 0 est ieß
|
||||
SFX Z 0 est [io]ss
|
||||
SFX Z 0 t [^dt]
|
||||
SFX Z 0 et [dt]
|
||||
SFX Z 0 n e
|
||||
SFX Z 0 en ie
|
||||
SFX Z 0 en [^e]
|
||||
SFX Z 0 est iess
|
||||
SFX Z 0 est [au]ss
|
||||
# last two ...ss rules only used for swiss de_CH - but de_DE is unaffected
|
||||
|
||||
|
||||
SFX O Y 21
|
||||
SFX O n tes e[lr]n
|
||||
SFX O n tes [dtw]en
|
||||
SFX O en tes [^dmntw]en
|
||||
SFX O n tes chnen
|
||||
SFX O en tes [^c]h[mn]en
|
||||
SFX O n tes [^aäehilmnoöuür][mn]en
|
||||
SFX O en tes [aäeilmnoöuür][mn]en
|
||||
SFX O n ter e[lr]n
|
||||
SFX O n ter [dtw]en
|
||||
SFX O en ter [^dmntw]en
|
||||
SFX O n ter chnen
|
||||
SFX O en ter [^c]h[mn]en
|
||||
SFX O n ter [^aäehilmnoöuür][mn]en
|
||||
SFX O en ter [aäeilmnoöuür][mn]en
|
||||
SFX O n tem e[lr]n
|
||||
SFX O n tem [dtw]en
|
||||
SFX O en tem [^dmntw]en
|
||||
SFX O n tem chnen
|
||||
SFX O en tem [^c]h[mn]en
|
||||
SFX O n tem [^aäehilmnoöuür][mn]en
|
||||
SFX O en tem [aäeilmnoöuür][mn]en
|
||||
|
||||
REP 28
|
||||
REP f ph
|
||||
REP ph f
|
||||
REP ß ss
|
||||
REP ss ß
|
||||
REP s ss
|
||||
REP ss s
|
||||
REP i ie
|
||||
REP ie i
|
||||
REP ee e
|
||||
REP o oh
|
||||
REP oh o
|
||||
REP a ah
|
||||
REP ah a
|
||||
REP e eh
|
||||
REP eh e
|
||||
REP ae ä
|
||||
REP oe ö
|
||||
REP ue ü
|
||||
REP Ae Ä
|
||||
REP Oe Ö
|
||||
REP Ue Ü
|
||||
REP d t
|
||||
REP t d
|
||||
REP th t
|
||||
REP t th
|
||||
REP r rh
|
||||
REP ch k
|
||||
REP k ch
|
||||
#REP eee ee-E
|
||||
|
||||
|
||||
# this one will allow "-Eltern" - Hunspell 1.1.5 bug, but CHECKSHARPS obsoletes LANG de_DE
|
||||
#LANG de_DE
|
||||
CHECKSHARPS
|
||||
|
||||
|
||||
COMPOUNDBEGIN x
|
||||
COMPOUNDMIDDLE y
|
||||
COMPOUNDEND z
|
||||
FORBIDDENWORD d
|
||||
|
||||
# Prefixes are allowed at the beginning of compounds,
|
||||
# suffixes are allowed at the end of compounds by default:
|
||||
# (prefix)?(root)+(affix)?
|
||||
# Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
|
||||
COMPOUNDPERMITFLAG c
|
||||
|
||||
ONLYINCOMPOUND o
|
||||
|
||||
# my PSEUDOROOT h(elper) flag
|
||||
NEEDAFFIX h
|
||||
|
||||
# forbid uppercase characters at compound word bounds
|
||||
# BUT I want to take care about it myself ;-)
|
||||
# CHECKCOMPOUNDCASE
|
||||
KEEPCASE w
|
||||
|
||||
# Affixes signed with CIRCUMFIX flag may be on a word when this word also has a prefix with CIRCUMFIX flag and vice versa.
|
||||
# for decapitalizing nouns with fogemorphemes
|
||||
CIRCUMFIX f
|
||||
|
||||
# this one would make a separate dict entry "Denkmalsschutz" invalidate the
|
||||
# compound of "Denkmal"+"schutz". We do not want this feature here...
|
||||
# CHECKCOMPOUNDREP
|
||||
|
||||
# make not all possible suggestions for typos of Flicken or some rare words
|
||||
NOSUGGEST n
|
||||
|
||||
WORDCHARS ß-.
|
||||
|
||||
# - setting this to 2 decreases performance by 1/10 but is needed for "öl" and "ei"
|
||||
# - setting this to 1 for handling Fuge-elements with dashes (Arbeits-) dash will
|
||||
# be a special word but - is handled as a affix now
|
||||
COMPOUNDMIN 2
|
||||
|
||||
# this ones are for Duden R36 (old orthography)
|
||||
#CHECKCOMPOUNDPATTERN 2 #oldspell
|
||||
#CHECKCOMPOUNDPATTERN ee e #oldspell
|
||||
#CHECKCOMPOUNDPATTERN oo o #oldspell
|
||||
# also need oo o
|
||||
|
||||
# this one needs to be flagable to be used for old orthography
|
||||
#CHECKCOMPOUNDTRIPLE
|
||||
|
||||
|
||||
PFX i Y 1
|
||||
PFX i 0 -/coyf .
|
||||
|
||||
SFX j Y 3
|
||||
SFX j 0 0/xoc .
|
||||
SFX j 0 -/zocf .
|
||||
SFX j 0 -/cz .
|
||||
|
||||
# Female forms for compound/Compound words:
|
||||
# attention: [^e][^n] does also filter out "...er" !
|
||||
SFX g Y 12
|
||||
SFX g 0 innen/xyoc [^n]
|
||||
SFX g en innen/xyoc en
|
||||
SFX g 0 Innen/xyoc [^n]
|
||||
SFX g en Innen/xyoc en
|
||||
SFX g 0 innen/xyocf [^n]
|
||||
SFX g en innen/xyocf en
|
||||
SFX g 0 Innen/xyocf [^n]
|
||||
SFX g en Innen/xyocf en
|
||||
SFX g 0 innen-/cz [^n]
|
||||
SFX g en innen-/cz en
|
||||
SFX g 0 Innen-/cz [^n]
|
||||
SFX g en Innen-/cz en
|
||||
|
||||
|
||||
PFX k Y 2
|
||||
PFX k 0 -/coxf .
|
||||
PFX k 0 0/coy .
|
||||
|
||||
SFX e Y 2
|
||||
SFX e 0 0/yoc .
|
||||
SFX e 0 -/zc .
|
||||
|
||||
# for Uppercased end-words to prepend - and lowercase: (Tier/EPSm) (EX: Bettbezüge und *-laken*)
|
||||
# AND
|
||||
# for lowercased end-words to prepend - and re-uppercase : (tier/EPSozm) (EX: Arbeits*-Tier*)
|
||||
#PFX m A -a/co A
|
||||
#PFX m a -/ a
|
||||
PFX m Y 58
|
||||
PFX m A -a A
|
||||
PFX m B -b B
|
||||
PFX m C -c C
|
||||
PFX m D -d D
|
||||
PFX m E -e E
|
||||
PFX m F -f F
|
||||
PFX m G -g G
|
||||
PFX m H -h H
|
||||
PFX m I -i I
|
||||
PFX m J -j J
|
||||
PFX m K -k K
|
||||
PFX m L -l L
|
||||
PFX m M -m M
|
||||
PFX m N -n N
|
||||
PFX m O -o O
|
||||
PFX m P -p P
|
||||
PFX m Q -q Q
|
||||
PFX m R -r R
|
||||
PFX m S -s S
|
||||
PFX m T -t T
|
||||
PFX m U -u U
|
||||
PFX m V -v V
|
||||
PFX m W -w W
|
||||
PFX m X -x X
|
||||
PFX m Y -y Y
|
||||
PFX m Z -z Z
|
||||
PFX m Ä -ä Ä
|
||||
PFX m Ö -ö Ö
|
||||
PFX m Ü -ü Ü
|
||||
PFX m a -A/co a
|
||||
PFX m b -B/co b
|
||||
PFX m c -C/co c
|
||||
PFX m d -D/co d
|
||||
PFX m e -E/co e
|
||||
PFX m f -F/co f
|
||||
PFX m g -G/co g
|
||||
PFX m h -H/co h
|
||||
PFX m i -I/co i
|
||||
PFX m j -J/co j
|
||||
PFX m k -K/co k
|
||||
PFX m l -L/co l
|
||||
PFX m m -M/co m
|
||||
PFX m n -N/co n
|
||||
PFX m o -O/co o
|
||||
PFX m p -P/co p
|
||||
PFX m q -Q/co q
|
||||
PFX m r -R/co r
|
||||
PFX m s -S/co s
|
||||
PFX m t -T/co t
|
||||
PFX m u -U/co u
|
||||
PFX m v -V/co v
|
||||
PFX m w -W/co w
|
||||
PFX m x -X/co x
|
||||
PFX m y -Y/co y
|
||||
PFX m z -Z/co z
|
||||
PFX m ä -Ä/co ä
|
||||
PFX m ö -Ö/co ö
|
||||
PFX m ü -Ü/co ü
|
||||
|
||||
|
||||
# Decapitalizing: (not used ATM... )
|
||||
# /co(f) : compound permit, in coumpount only, (decapitalizing with fogemorphemes)
|
||||
#PFX l Y 29
|
||||
#PFX l A a/co A
|
||||
#PFX l Ä ä/co Ä
|
||||
#PFX l B b/co B
|
||||
#PFX l C c/co C
|
||||
#PFX l D d/co D
|
||||
#PFX l E e/co E
|
||||
#PFX l F f/co F
|
||||
#PFX l G g/co G
|
||||
#PFX l H h/co H
|
||||
#PFX l I i/co I
|
||||
#PFX l J j/co J
|
||||
#PFX l K k/co K
|
||||
#PFX l L l/co L
|
||||
#PFX l M m/co M
|
||||
#PFX l N n/co N
|
||||
#PFX l O o/co O
|
||||
#PFX l Ö ö/co Ö
|
||||
#PFX l P p/co P
|
||||
#PFX l Q q/co Q
|
||||
#PFX l R r/co R
|
||||
#PFX l S s/co S
|
||||
#PFX l T t/co T
|
||||
#PFX l U u/co U
|
||||
#PFX l Ü ü/co Ü
|
||||
#PFX l V v/co V
|
||||
#PFX l W w/co W
|
||||
#PFX l X x/co X
|
||||
#PFX l Y y/co Y
|
||||
#PFX l Z z/co Z
|
||||
|
||||
# private hunspell flags:
|
||||
# --x : not for capmain (rare words)
|
||||
|
||||
# With "BREAK -" some wrong forms are accepted but that is needed for US-Wirtschaft etc.
|
||||
# So enabling this is the lesser evil. No perfect solution found so far...
|
||||
BREAK 2
|
||||
BREAK -
|
||||
BREAK .
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
igerman98 - dictionaries for German language
|
||||
Copyright (C) 1999-2016 Björn Jacke <bjoern@j3e.de>.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 or 3 as
|
||||
published by the Free Software Foundation.
|
||||
|
||||
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
@@ -0,0 +1,729 @@
|
||||
# this is the affix file of the de_DE Hunspell dictionary
|
||||
# derived from the igerman98 dictionary
|
||||
#
|
||||
# Version: 20161207
|
||||
#
|
||||
# Copyright (C) 1998-2015 Bjoern Jacke <bjoern@j3e.de>
|
||||
#
|
||||
# License: GPLv2, GPLv3
|
||||
# There should be a copy of both of this licenses included
|
||||
# with every distribution of this dictionary. Modified
|
||||
# versions using the GPL may only include the GPL
|
||||
|
||||
SET UTF-8
|
||||
TRY esijanrtolcdugmphbyfvkwqxzäüößáéêàâñESIJANRTOLCDUGMPHBYFVKWQXZÄÜÖÉ-.
|
||||
|
||||
PFX U Y 1
|
||||
PFX U 0 un .
|
||||
|
||||
PFX V Y 1
|
||||
PFX V 0 ver .
|
||||
|
||||
SFX F Y 35
|
||||
SFX F 0 nen in
|
||||
SFX F e in e
|
||||
SFX F e innen e
|
||||
SFX F 0 in [^i]n
|
||||
SFX F 0 innen [^i]n
|
||||
SFX F 0 in [^enr]
|
||||
SFX F 0 innen [^enr]
|
||||
SFX F 0 in [^e]r
|
||||
SFX F 0 innen [^e]r
|
||||
SFX F 0 in [^r]er
|
||||
SFX F 0 innen [^r]er
|
||||
SFX F 0 in [^e]rer
|
||||
SFX F 0 innen [^e]rer
|
||||
SFX F 0 in ierer
|
||||
SFX F 0 innen ierer
|
||||
SFX F er in [^i]erer
|
||||
SFX F er innen [^i]erer
|
||||
SFX F in In in
|
||||
SFX F in Innen in
|
||||
SFX F e In e
|
||||
SFX F e Innen e
|
||||
SFX F 0 In [^i]n
|
||||
SFX F 0 Innen [^i]n
|
||||
SFX F 0 In [^en]
|
||||
SFX F 0 Innen [^en]
|
||||
SFX F 0 In [^e]r
|
||||
SFX F 0 Innen [^e]r
|
||||
SFX F 0 In [^r]er
|
||||
SFX F 0 Innen [^r]er
|
||||
SFX F 0 In [^e]rer
|
||||
SFX F 0 Innen [^e]rer
|
||||
SFX F 0 In ierer
|
||||
SFX F 0 Innen ierer
|
||||
SFX F er In [^i]erer
|
||||
SFX F er Innen [^i]erer
|
||||
#SFX F en innen en
|
||||
#SFX F en Innen en
|
||||
|
||||
|
||||
SFX L N 12
|
||||
SFX L 0 tlich n
|
||||
SFX L 0 tliche n
|
||||
SFX L 0 tlicher n
|
||||
SFX L 0 tliches n
|
||||
SFX L 0 tlichem n
|
||||
SFX L 0 tlichen n
|
||||
SFX L 0 lich [^n]
|
||||
SFX L 0 liche [^n]
|
||||
SFX L 0 licher [^n]
|
||||
SFX L 0 liches [^n]
|
||||
SFX L 0 lichem [^n]
|
||||
SFX L 0 lichen [^n]
|
||||
|
||||
|
||||
#SFX H N 2
|
||||
#SFX H 0 heit .
|
||||
#SFX H 0 heiten .
|
||||
|
||||
|
||||
#SFX K N 2
|
||||
#SFX K 0 keit .
|
||||
#SFX K 0 keiten .
|
||||
|
||||
|
||||
SFX M N 10
|
||||
SFX M 0 chen [^se]
|
||||
SFX M 0 chens [^se]
|
||||
SFX M ass ässchen ass
|
||||
SFX M ass ässchens ass
|
||||
SFX M oss össchen oss
|
||||
SFX M oss össchens oss
|
||||
SFX M uss üsschen uss
|
||||
SFX M uss üsschens uss
|
||||
SFX M e chen e
|
||||
SFX M e chens e
|
||||
|
||||
|
||||
SFX A Y 46
|
||||
SFX A 0 r e
|
||||
SFX A 0 n e
|
||||
SFX A 0 m e
|
||||
SFX A 0 s e
|
||||
SFX A 0 e [^elr]
|
||||
SFX A 0 er [^elr]
|
||||
SFX A 0 en [^elr]
|
||||
SFX A 0 em [^elr]
|
||||
SFX A 0 es [^elr]
|
||||
SFX A 0 e [^e][rl]
|
||||
SFX A 0 er [^e][rl]
|
||||
SFX A 0 en [^e][rl]
|
||||
SFX A 0 em [^e][rl]
|
||||
SFX A 0 es [^e][rl]
|
||||
SFX A 0 e [^u]er
|
||||
SFX A 0 er [^u]er
|
||||
SFX A 0 en [^u]er
|
||||
SFX A 0 em [^u]er
|
||||
SFX A 0 es [^u]er
|
||||
SFX A er re uer
|
||||
SFX A er rer uer
|
||||
SFX A er ren uer
|
||||
SFX A er rem uer
|
||||
SFX A er res uer
|
||||
SFX A 0 e [eil]el
|
||||
SFX A 0 er [eil]el
|
||||
SFX A 0 en [eil]el
|
||||
SFX A 0 em [eil]el
|
||||
SFX A 0 es [eil]el
|
||||
SFX A el le [^eil]el
|
||||
SFX A el ler [^eil]el
|
||||
SFX A el len [^eil]el
|
||||
SFX A el lem [^eil]el
|
||||
SFX A el les [^eil]el
|
||||
SFX A lig elig [^aeiouhlräüö]lig
|
||||
SFX A lig elige [^aeiouhlräüö]lig
|
||||
SFX A lig eliger [^aeiouhlräüö]lig
|
||||
SFX A lig eligen [^aeiouhlräüö]lig
|
||||
SFX A lig eligem [^aeiouhlräüö]lig
|
||||
SFX A lig eliges [^aeiouhlräüö]lig
|
||||
SFX A erig rig [^hi]erig
|
||||
SFX A erig rige [^hi]erig
|
||||
SFX A erig riger [^hi]erig
|
||||
SFX A erig rigen [^hi]erig
|
||||
SFX A erig rigem [^hi]erig
|
||||
SFX A erig riges [^hi]erig
|
||||
|
||||
|
||||
SFX C Y 100
|
||||
SFX C 0 ere [^elr]
|
||||
SFX C 0 erer [^elr]
|
||||
SFX C 0 eren [^elr]
|
||||
SFX C 0 erem [^elr]
|
||||
SFX C 0 eres [^elr]
|
||||
SFX C 0 re e
|
||||
SFX C 0 rer e
|
||||
SFX C 0 ren e
|
||||
SFX C 0 rem e
|
||||
SFX C 0 res e
|
||||
SFX C 0 ere [^e][lr]
|
||||
SFX C 0 erer [^e][lr]
|
||||
SFX C 0 eren [^e][lr]
|
||||
SFX C 0 erem [^e][lr]
|
||||
SFX C 0 eres [^e][lr]
|
||||
SFX C el lere el
|
||||
SFX C el lerer el
|
||||
SFX C el leren el
|
||||
SFX C el lerem el
|
||||
SFX C el leres el
|
||||
SFX C er rere uer
|
||||
SFX C er rerer uer
|
||||
SFX C er reren uer
|
||||
SFX C er rerem uer
|
||||
SFX C er reres uer
|
||||
SFX C 0 ere [^u]er
|
||||
SFX C 0 erer [^u]er
|
||||
SFX C 0 eren [^u]er
|
||||
SFX C 0 erem [^u]er
|
||||
SFX C 0 eres [^u]er
|
||||
SFX C lig eligere [^aeiouhlräüö]lig
|
||||
SFX C lig eligerer [^aeiouhlräüö]lig
|
||||
SFX C lig eligeren [^aeiouhlräüö]lig
|
||||
SFX C lig eligerem [^aeiouhlräüö]lig
|
||||
SFX C lig eligeres [^aeiouhlräüö]lig
|
||||
SFX C erig rigere [^hi]erig
|
||||
SFX C erig rigerer [^hi]erig
|
||||
SFX C erig rigeren [^hi]erig
|
||||
SFX C erig rigerem [^hi]erig
|
||||
SFX C erig rigeres [^hi]erig
|
||||
SFX C 0 est [kßsuxz]
|
||||
SFX C 0 este [kßsuxz]
|
||||
SFX C 0 ester [kßsuxz]
|
||||
SFX C 0 esten [kßsuxz]
|
||||
SFX C 0 estem [kßsuxz]
|
||||
SFX C 0 estes [kßsuxz]
|
||||
SFX C 0 st et
|
||||
SFX C 0 ste et
|
||||
SFX C 0 ster et
|
||||
SFX C 0 sten et
|
||||
SFX C 0 stem et
|
||||
SFX C 0 stes et
|
||||
SFX C 0 st igt
|
||||
SFX C 0 ste igt
|
||||
SFX C 0 ster igt
|
||||
SFX C 0 sten igt
|
||||
SFX C 0 stem igt
|
||||
SFX C 0 stes igt
|
||||
SFX C 0 est [^i]gt
|
||||
SFX C 0 este [^i]gt
|
||||
SFX C 0 ester [^i]gt
|
||||
SFX C 0 esten [^i]gt
|
||||
SFX C 0 estem [^i]gt
|
||||
SFX C 0 estes [^i]gt
|
||||
SFX C 0 est [^eg]t
|
||||
SFX C 0 este [^eg]t
|
||||
SFX C 0 ester [^eg]t
|
||||
SFX C 0 esten [^eg]t
|
||||
SFX C 0 estem [^eg]t
|
||||
SFX C 0 estes [^eg]t
|
||||
SFX C 0 st [^kßstxz]
|
||||
SFX C 0 ste [^kßstxz]
|
||||
SFX C 0 ster [^kßstxz]
|
||||
SFX C 0 sten [^kßstxz]
|
||||
SFX C 0 stem [^kßstxz]
|
||||
SFX C 0 stes [^kßstxz]
|
||||
SFX C 0 st nd
|
||||
SFX C 0 ste nd
|
||||
SFX C 0 ster nd
|
||||
SFX C 0 sten nd
|
||||
SFX C 0 stem nd
|
||||
SFX C 0 stes nd
|
||||
SFX C 0 est [^n]d
|
||||
SFX C 0 este [^n]d
|
||||
SFX C 0 ester [^n]d
|
||||
SFX C 0 esten [^n]d
|
||||
SFX C 0 estem [^n]d
|
||||
SFX C 0 estes [^n]d
|
||||
SFX C lig eligst [^aeiouhlräüö]lig
|
||||
SFX C lig eligste [^aeiouhlräüö]lig
|
||||
SFX C lig eligster [^aeiouhlräüö]lig
|
||||
SFX C lig eligsten [^aeiouhlräüö]lig
|
||||
SFX C lig eligstem [^aeiouhlräüö]lig
|
||||
SFX C lig eligstes [^aeiouhlräüö]lig
|
||||
SFX C erig rigst [^hi]erig
|
||||
SFX C erig rigste [^hi]erig
|
||||
SFX C erig rigster [^hi]erig
|
||||
SFX C erig rigsten [^hi]erig
|
||||
SFX C erig rigstem [^hi]erig
|
||||
SFX C erig rigstes [^hi]erig
|
||||
|
||||
|
||||
SFX E Y 1
|
||||
SFX E 0 e .
|
||||
|
||||
|
||||
SFX f Y 4
|
||||
SFX f ph f ph
|
||||
SFX f ph fen ph
|
||||
SFX f phie fie phie
|
||||
SFX f phie fien phie
|
||||
|
||||
|
||||
SFX N Y 1
|
||||
SFX N 0 n .
|
||||
|
||||
|
||||
SFX P Y 1
|
||||
SFX P 0 en .
|
||||
|
||||
|
||||
SFX p Y 26
|
||||
SFX p auf äufe auf
|
||||
SFX p auf äufen auf
|
||||
SFX p aus äuser [hH]aus
|
||||
SFX p aus äusern [hH]aus
|
||||
SFX p arkt ärkte [mM]arkt
|
||||
SFX p arkt ärkten [mM]arkt
|
||||
SFX p ang änge ang
|
||||
SFX p ang ängen ang
|
||||
SFX p uß üße uß
|
||||
SFX p uß üßen uß
|
||||
SFX p oß öße oß
|
||||
SFX p oß ößen oß
|
||||
SFX p aum äume aum
|
||||
SFX p aum äumen aum
|
||||
SFX p ag äge ag
|
||||
SFX p ag ägen ag
|
||||
SFX p ug üge ug
|
||||
SFX p ug ügen ug
|
||||
SFX p all älle all
|
||||
SFX p all ällen all
|
||||
SFX p ass ässe ass
|
||||
SFX p ass ässen ass
|
||||
SFX p uss üsse uss
|
||||
SFX p uss üssen uss
|
||||
SFX p oss össe oss
|
||||
SFX p oss össen oss
|
||||
# last ...oss rules are for swiss de_CH only - but do not affect de_DE
|
||||
|
||||
|
||||
SFX R Y 3
|
||||
SFX R 0 er [^e]
|
||||
SFX R 0 ern [^e]
|
||||
SFX R 0 r e
|
||||
|
||||
|
||||
SFX S Y 1
|
||||
SFX S 0 s .
|
||||
|
||||
|
||||
SFX q Y 2
|
||||
SFX q 0 se s
|
||||
SFX q 0 sen s
|
||||
|
||||
|
||||
SFX Q Y 1
|
||||
SFX Q 0 ses s
|
||||
#SFX Q 0 se s
|
||||
#SFX Q 0 sen s
|
||||
|
||||
|
||||
SFX T Y 1
|
||||
SFX T 0 es .
|
||||
|
||||
|
||||
SFX J Y 12
|
||||
SFX J n ung [bgkpßsz]eln
|
||||
SFX J n ungen [bgkpßsz]eln
|
||||
SFX J eln lung eln
|
||||
SFX J n ung ern
|
||||
SFX J en ung en
|
||||
SFX J eln lungen eln
|
||||
SFX J n ungen ern
|
||||
SFX J en ungen en
|
||||
SFX J 0 ung [^n]
|
||||
SFX J 0 ungen [^n]
|
||||
SFX J el lung el
|
||||
SFX J el lungen el
|
||||
|
||||
|
||||
SFX B N 12
|
||||
SFX B n bar e[lr]n
|
||||
SFX B n bare e[lr]n
|
||||
SFX B n baren e[lr]n
|
||||
SFX B n barer e[lr]n
|
||||
SFX B n bares e[lr]n
|
||||
SFX B n barem e[lr]n
|
||||
SFX B en bar en
|
||||
SFX B en bare en
|
||||
SFX B en baren en
|
||||
SFX B en barer en
|
||||
SFX B en bares en
|
||||
SFX B en barem en
|
||||
|
||||
|
||||
SFX D Y 6
|
||||
SFX D 0 d n
|
||||
SFX D 0 de n
|
||||
SFX D 0 den n
|
||||
SFX D 0 der n
|
||||
SFX D 0 des n
|
||||
SFX D 0 dem n
|
||||
|
||||
|
||||
|
||||
SFX W Y 5
|
||||
SFX W en 0 en
|
||||
SFX W n 0 [^e]n
|
||||
SFX W st 0 [^s]st
|
||||
SFX W t 0 sst
|
||||
SFX W t 0 [^s]t
|
||||
|
||||
|
||||
SFX I Y 16
|
||||
SFX I n 0 en
|
||||
SFX I eln le eln
|
||||
SFX I n e eln
|
||||
SFX I ern re ern
|
||||
SFX I n e ern
|
||||
SFX I n t e[lr]n
|
||||
SFX I n t [dt]en
|
||||
SFX I en t [^dimnt]en
|
||||
SFX I en t eien
|
||||
SFX I n t [^e]ien
|
||||
SFX I n t chnen
|
||||
SFX I en t [^c]h[mn]en
|
||||
SFX I n t [^aäehilmnoöuür][mn]en
|
||||
SFX I en t [aäeilmnoöuür][mn]en
|
||||
SFX I n e un
|
||||
SFX I n t un
|
||||
|
||||
|
||||
SFX X Y 26
|
||||
SFX X n t e[lr]n
|
||||
SFX X n t [dtw]en
|
||||
SFX X en t eien
|
||||
SFX X n t [^e]ien
|
||||
SFX X en t [^ditmnw]en
|
||||
SFX X n t chnen
|
||||
SFX X en t [^c]h[mn]en
|
||||
SFX X n t [^aäehilmnoöuür][mn]en
|
||||
SFX X en t [aäeilmnoöuür][mn]en
|
||||
SFX X n t un
|
||||
SFX X st 0 tst
|
||||
SFX X n st e[lr]n
|
||||
SFX X n st [dtw]en
|
||||
SFX X en st [^dimnßstwzx]en
|
||||
SFX X en st eien
|
||||
SFX X n st [^e]ien
|
||||
SFX X n st chnen
|
||||
SFX X en st [^c]h[mn]en
|
||||
SFX X n st [^aäehilmnoöuür][mn]en
|
||||
SFX X en st [aäeilmnoöuür][mn]en
|
||||
SFX X n st un
|
||||
SFX X n st [ßsxz]en
|
||||
SFX X n st ssen
|
||||
SFX X n st schen
|
||||
SFX X t st [^sz]t
|
||||
SFX X t est zt
|
||||
|
||||
|
||||
SFX Y Y 36
|
||||
SFX Y n te e[lr]n
|
||||
SFX Y n te [dtw]en
|
||||
SFX Y en te [^dimntw]en
|
||||
SFX Y en te eien
|
||||
SFX Y n te [^e]ien
|
||||
SFX Y n te chnen
|
||||
SFX Y en te [^c]h[mn]en
|
||||
SFX Y n te [^aäehilmnoöuür][mn]en
|
||||
SFX Y en te [aäeilmnoöuür][mn]en
|
||||
SFX Y n test e[lr]n
|
||||
SFX Y n test [dtw]en
|
||||
SFX Y en test [^dimntw]en
|
||||
SFX Y en test eien
|
||||
SFX Y n test [^e]ien
|
||||
SFX Y n test chnen
|
||||
SFX Y en test [^c]h[mn]en
|
||||
SFX Y n test [^aäehilmnoöuür][mn]en
|
||||
SFX Y en test [aäeilmnoöuür][mn]en
|
||||
SFX Y n tet e[lr]n
|
||||
SFX Y n tet [dtw]en
|
||||
SFX Y en tet [^dimntw]en
|
||||
SFX Y en tet eien
|
||||
SFX Y n tet [^e]ien
|
||||
SFX Y n tet chnen
|
||||
SFX Y en tet [^c]h[mn]en
|
||||
SFX Y n tet [^aäehilmnoöuür][mn]en
|
||||
SFX Y en tet [aäeilmnoöuür][mn]en
|
||||
SFX Y n ten e[lr]n
|
||||
SFX Y n ten [dtw]en
|
||||
SFX Y en ten [^dimntw]en
|
||||
SFX Y en ten eien
|
||||
SFX Y n ten [^e]ien
|
||||
SFX Y n ten chnen
|
||||
SFX Y en ten [^c]h[mn]en
|
||||
SFX Y n ten [^aäehilmnoöuür][mn]en
|
||||
SFX Y en ten [aäeilmnoöuür][mn]en
|
||||
|
||||
|
||||
SFX Z Y 15
|
||||
SFX Z 0 st [^hßsz]
|
||||
SFX Z 0 st [^c]h
|
||||
SFX Z 0 st [^s]ch
|
||||
SFX Z 0 est [dfkstz]
|
||||
SFX Z 0 est ch
|
||||
SFX Z 0 est [au]ß
|
||||
SFX Z 0 est ieß
|
||||
SFX Z 0 est [io]ss
|
||||
SFX Z 0 t [^dt]
|
||||
SFX Z 0 et [dt]
|
||||
SFX Z 0 n e
|
||||
SFX Z 0 en ie
|
||||
SFX Z 0 en [^e]
|
||||
SFX Z 0 est iess
|
||||
SFX Z 0 est [au]ss
|
||||
# last two ...ss rules only used for swiss de_CH - but de_DE is unaffected
|
||||
|
||||
|
||||
SFX O Y 21
|
||||
SFX O n tes e[lr]n
|
||||
SFX O n tes [dtw]en
|
||||
SFX O en tes [^dmntw]en
|
||||
SFX O n tes chnen
|
||||
SFX O en tes [^c]h[mn]en
|
||||
SFX O n tes [^aäehilmnoöuür][mn]en
|
||||
SFX O en tes [aäeilmnoöuür][mn]en
|
||||
SFX O n ter e[lr]n
|
||||
SFX O n ter [dtw]en
|
||||
SFX O en ter [^dmntw]en
|
||||
SFX O n ter chnen
|
||||
SFX O en ter [^c]h[mn]en
|
||||
SFX O n ter [^aäehilmnoöuür][mn]en
|
||||
SFX O en ter [aäeilmnoöuür][mn]en
|
||||
SFX O n tem e[lr]n
|
||||
SFX O n tem [dtw]en
|
||||
SFX O en tem [^dmntw]en
|
||||
SFX O n tem chnen
|
||||
SFX O en tem [^c]h[mn]en
|
||||
SFX O n tem [^aäehilmnoöuür][mn]en
|
||||
SFX O en tem [aäeilmnoöuür][mn]en
|
||||
|
||||
REP 28
|
||||
REP f ph
|
||||
REP ph f
|
||||
REP ß ss
|
||||
REP ss ß
|
||||
REP s ss
|
||||
REP ss s
|
||||
REP i ie
|
||||
REP ie i
|
||||
REP ee e
|
||||
REP o oh
|
||||
REP oh o
|
||||
REP a ah
|
||||
REP ah a
|
||||
REP e eh
|
||||
REP eh e
|
||||
REP ae ä
|
||||
REP oe ö
|
||||
REP ue ü
|
||||
REP Ae Ä
|
||||
REP Oe Ö
|
||||
REP Ue Ü
|
||||
REP d t
|
||||
REP t d
|
||||
REP th t
|
||||
REP t th
|
||||
REP r rh
|
||||
REP ch k
|
||||
REP k ch
|
||||
#REP eee ee-E
|
||||
|
||||
|
||||
# this one will allow "-Eltern" - Hunspell 1.1.5 bug, but CHECKSHARPS obsoletes LANG de_DE
|
||||
#LANG de_DE
|
||||
CHECKSHARPS
|
||||
|
||||
|
||||
COMPOUNDBEGIN x
|
||||
COMPOUNDMIDDLE y
|
||||
COMPOUNDEND z
|
||||
FORBIDDENWORD d
|
||||
|
||||
# Prefixes are allowed at the beginning of compounds,
|
||||
# suffixes are allowed at the end of compounds by default:
|
||||
# (prefix)?(root)+(affix)?
|
||||
# Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
|
||||
COMPOUNDPERMITFLAG c
|
||||
|
||||
ONLYINCOMPOUND o
|
||||
|
||||
# my PSEUDOROOT h(elper) flag
|
||||
NEEDAFFIX h
|
||||
|
||||
# forbid uppercase characters at compound word bounds
|
||||
# BUT I want to take care about it myself ;-)
|
||||
# CHECKCOMPOUNDCASE
|
||||
KEEPCASE w
|
||||
|
||||
# Affixes signed with CIRCUMFIX flag may be on a word when this word also has a prefix with CIRCUMFIX flag and vice versa.
|
||||
# for decapitalizing nouns with fogemorphemes
|
||||
CIRCUMFIX f
|
||||
|
||||
# this one would make a separate dict entry "Denkmalsschutz" invalidate the
|
||||
# compound of "Denkmal"+"schutz". We do not want this feature here...
|
||||
# CHECKCOMPOUNDREP
|
||||
|
||||
# make not all possible suggestions for typos of Flicken or some rare words
|
||||
NOSUGGEST n
|
||||
|
||||
WORDCHARS ß-.
|
||||
|
||||
# - setting this to 2 decreases performance by 1/10 but is needed for "öl" and "ei"
|
||||
# - setting this to 1 for handling Fuge-elements with dashes (Arbeits-) dash will
|
||||
# be a special word but - is handled as a affix now
|
||||
COMPOUNDMIN 2
|
||||
|
||||
# this ones are for Duden R36 (old orthography)
|
||||
#CHECKCOMPOUNDPATTERN 2 #oldspell
|
||||
#CHECKCOMPOUNDPATTERN ee e #oldspell
|
||||
#CHECKCOMPOUNDPATTERN oo o #oldspell
|
||||
# also need oo o
|
||||
|
||||
# this one needs to be flagable to be used for old orthography
|
||||
#CHECKCOMPOUNDTRIPLE
|
||||
|
||||
|
||||
PFX i Y 1
|
||||
PFX i 0 -/coyf .
|
||||
|
||||
SFX j Y 3
|
||||
SFX j 0 0/xoc .
|
||||
SFX j 0 -/zocf .
|
||||
SFX j 0 -/cz .
|
||||
|
||||
# Female forms for compound/Compound words:
|
||||
# attention: [^e][^n] does also filter out "...er" !
|
||||
SFX g Y 12
|
||||
SFX g 0 innen/xyoc [^n]
|
||||
SFX g en innen/xyoc en
|
||||
SFX g 0 Innen/xyoc [^n]
|
||||
SFX g en Innen/xyoc en
|
||||
SFX g 0 innen/xyocf [^n]
|
||||
SFX g en innen/xyocf en
|
||||
SFX g 0 Innen/xyocf [^n]
|
||||
SFX g en Innen/xyocf en
|
||||
SFX g 0 innen-/cz [^n]
|
||||
SFX g en innen-/cz en
|
||||
SFX g 0 Innen-/cz [^n]
|
||||
SFX g en Innen-/cz en
|
||||
|
||||
|
||||
PFX k Y 2
|
||||
PFX k 0 -/coxf .
|
||||
PFX k 0 0/coy .
|
||||
|
||||
SFX e Y 2
|
||||
SFX e 0 0/yoc .
|
||||
SFX e 0 -/zc .
|
||||
|
||||
# for Uppercased end-words to prepend - and lowercase: (Tier/EPSm) (EX: Bettbezüge und *-laken*)
|
||||
# AND
|
||||
# for lowercased end-words to prepend - and re-uppercase : (tier/EPSozm) (EX: Arbeits*-Tier*)
|
||||
#PFX m A -a/co A
|
||||
#PFX m a -/ a
|
||||
PFX m Y 58
|
||||
PFX m A -a A
|
||||
PFX m B -b B
|
||||
PFX m C -c C
|
||||
PFX m D -d D
|
||||
PFX m E -e E
|
||||
PFX m F -f F
|
||||
PFX m G -g G
|
||||
PFX m H -h H
|
||||
PFX m I -i I
|
||||
PFX m J -j J
|
||||
PFX m K -k K
|
||||
PFX m L -l L
|
||||
PFX m M -m M
|
||||
PFX m N -n N
|
||||
PFX m O -o O
|
||||
PFX m P -p P
|
||||
PFX m Q -q Q
|
||||
PFX m R -r R
|
||||
PFX m S -s S
|
||||
PFX m T -t T
|
||||
PFX m U -u U
|
||||
PFX m V -v V
|
||||
PFX m W -w W
|
||||
PFX m X -x X
|
||||
PFX m Y -y Y
|
||||
PFX m Z -z Z
|
||||
PFX m Ä -ä Ä
|
||||
PFX m Ö -ö Ö
|
||||
PFX m Ü -ü Ü
|
||||
PFX m a -A/co a
|
||||
PFX m b -B/co b
|
||||
PFX m c -C/co c
|
||||
PFX m d -D/co d
|
||||
PFX m e -E/co e
|
||||
PFX m f -F/co f
|
||||
PFX m g -G/co g
|
||||
PFX m h -H/co h
|
||||
PFX m i -I/co i
|
||||
PFX m j -J/co j
|
||||
PFX m k -K/co k
|
||||
PFX m l -L/co l
|
||||
PFX m m -M/co m
|
||||
PFX m n -N/co n
|
||||
PFX m o -O/co o
|
||||
PFX m p -P/co p
|
||||
PFX m q -Q/co q
|
||||
PFX m r -R/co r
|
||||
PFX m s -S/co s
|
||||
PFX m t -T/co t
|
||||
PFX m u -U/co u
|
||||
PFX m v -V/co v
|
||||
PFX m w -W/co w
|
||||
PFX m x -X/co x
|
||||
PFX m y -Y/co y
|
||||
PFX m z -Z/co z
|
||||
PFX m ä -Ä/co ä
|
||||
PFX m ö -Ö/co ö
|
||||
PFX m ü -Ü/co ü
|
||||
|
||||
|
||||
# Decapitalizing: (not used ATM... )
|
||||
# /co(f) : compound permit, in coumpount only, (decapitalizing with fogemorphemes)
|
||||
#PFX l Y 29
|
||||
#PFX l A a/co A
|
||||
#PFX l Ä ä/co Ä
|
||||
#PFX l B b/co B
|
||||
#PFX l C c/co C
|
||||
#PFX l D d/co D
|
||||
#PFX l E e/co E
|
||||
#PFX l F f/co F
|
||||
#PFX l G g/co G
|
||||
#PFX l H h/co H
|
||||
#PFX l I i/co I
|
||||
#PFX l J j/co J
|
||||
#PFX l K k/co K
|
||||
#PFX l L l/co L
|
||||
#PFX l M m/co M
|
||||
#PFX l N n/co N
|
||||
#PFX l O o/co O
|
||||
#PFX l Ö ö/co Ö
|
||||
#PFX l P p/co P
|
||||
#PFX l Q q/co Q
|
||||
#PFX l R r/co R
|
||||
#PFX l S s/co S
|
||||
#PFX l T t/co T
|
||||
#PFX l U u/co U
|
||||
#PFX l Ü ü/co Ü
|
||||
#PFX l V v/co V
|
||||
#PFX l W w/co W
|
||||
#PFX l X x/co X
|
||||
#PFX l Y y/co Y
|
||||
#PFX l Z z/co Z
|
||||
|
||||
# private hunspell flags:
|
||||
# --x : not for capmain (rare words)
|
||||
|
||||
# With "BREAK -" some wrong forms are accepted but that is needed for US-Wirtschaft etc.
|
||||
# So enabling this is the lesser evil. No perfect solution found so far...
|
||||
BREAK 2
|
||||
BREAK -
|
||||
BREAK .
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
igerman98 - dictionaries for German language
|
||||
Copyright (C) 1999-2016 Björn Jacke <bjoern@j3e.de>.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 or 3 as
|
||||
published by the Free Software Foundation.
|
||||
|
||||
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
@@ -0,0 +1,937 @@
|
||||
SET UTF-8
|
||||
|
||||
MAXNGRAMSUGS 10
|
||||
MAXDIFF 8
|
||||
ONLYMAXDIFF
|
||||
NOSPLITSUGS
|
||||
FLAG UTF-8
|
||||
|
||||
|
||||
|
||||
REP 145
|
||||
REP ά ά
|
||||
REP ^ἠ ἡ
|
||||
REP ^ἄ ἀ
|
||||
REP ή ῆ
|
||||
REP ^ἰ ἱ
|
||||
REP ά ᾶ
|
||||
REP ῖ ί
|
||||
REP υ ῦ
|
||||
REP υ ὐ
|
||||
REP ω ο
|
||||
REP ώ ῶ
|
||||
REP ω ώ
|
||||
REP B Β
|
||||
REP Z Ζ
|
||||
REP K Κ
|
||||
REP M Μ
|
||||
REP N Ν
|
||||
REP P Ρ
|
||||
REP T Τ
|
||||
REP Y Υ
|
||||
REP X Χ
|
||||
REP ί ῖ
|
||||
REP ῑ ῖ
|
||||
REP ι ί
|
||||
REP ι ὶ
|
||||
REP ι ῖ
|
||||
REP ωϊ ωι
|
||||
REP όι όϊ
|
||||
REP x χ
|
||||
REP εῖ ῇ
|
||||
REP ῇ εῖ
|
||||
REP εῖ ῆ
|
||||
REP ῆ εῖ
|
||||
REP ῃ ει
|
||||
REP ᾶ εῖ
|
||||
REP οἴ οἶ
|
||||
REP ο ε
|
||||
REP ὄ ὅ
|
||||
REP Ἰ Ἱ
|
||||
REP εῖ ή
|
||||
REP ή εῖ
|
||||
REP ή εί
|
||||
REP ἦ εἶ
|
||||
REP ει εί
|
||||
REP ει η
|
||||
REP εί ει
|
||||
REP ή ός
|
||||
REP η ος
|
||||
REP εῖ ᾶ
|
||||
REP εί ύ
|
||||
REP ^εἴ ἤ
|
||||
REP ιέ εῖ
|
||||
REP ά έ
|
||||
REP ἄ ά
|
||||
REP ἄ ἀ
|
||||
REP n ν
|
||||
REP η ει
|
||||
REP ε αι
|
||||
REP αι ε
|
||||
REP αι ες
|
||||
REP έ αί
|
||||
REP αί έ
|
||||
REP ού οῦ
|
||||
REP ᾶ οῦ
|
||||
REP φτ φθ
|
||||
REP φτ πτ
|
||||
REP φθ φτ
|
||||
REP στ σθ
|
||||
REP σθ στ
|
||||
REP χτ κτ
|
||||
REP ευτ ευθ
|
||||
REP εύτ εύθ
|
||||
REP έψ εύσ
|
||||
REP ἕβ εὕ
|
||||
REP ἔβ εὕ
|
||||
REP εψ ευσ
|
||||
REP άψ αύσ
|
||||
REP σ σσ
|
||||
REP ^καλλίτερ καλύτερ
|
||||
REP ο$ ον
|
||||
REP ό$ όν
|
||||
REP ὸ$ ὸν
|
||||
REP ιο$ ιον
|
||||
REP ^θέτομαι τίθεμαι
|
||||
REP όμαστε$ ώμεθα
|
||||
REP ούμαστε$ ούμεθα
|
||||
REP ουμαστε$ ούμεθα
|
||||
REP θονταν$ θετο
|
||||
REP ειους$ είους
|
||||
REP ούμουν$ ούμην
|
||||
REP ούσουν$ εῖσο
|
||||
REP οῦταν$ εῖτο
|
||||
REP ούταν$ εῖτο
|
||||
REP ούνταν$ οῦντο
|
||||
REP νταν$ ντοο
|
||||
REP άει$ ᾶ
|
||||
REP ες$ οι
|
||||
REP ιδα$ ι
|
||||
REP ιδα$ ιν
|
||||
REP ^ὑπό ὑπέ
|
||||
REP ^ἔγκ ἐνέκ
|
||||
REP ^ἠρωϊ ἡρωι
|
||||
REP ^ἐπικεφαλής$ ἐπὶ_κεφαλῆς
|
||||
REP ^ἐπικεφαλῆς$ ἐπὶ_κεφαλῆς
|
||||
REP ^επιμέρους$ ἐπὶ_μέρους
|
||||
REP ^ἐπιμέρους$ ἐπὶ_μέρους
|
||||
REP ^επιτέλους$ ἐπὶ_τέλους
|
||||
REP ^ἐπιτέλους$ ἐπὶ_τέλους
|
||||
REP ^κατεξοχήν$ κατ'_ἐξοχήν
|
||||
REP ^κατεξοχὴν$ κατ'_ἐξοχὴν
|
||||
REP ^καταρχήν$ κατ'_ἀρχήν
|
||||
REP ^καταρχὴν$ κατ'_ἀρχὴν
|
||||
REP ^καταρχάς$ κατ'_ἀρχάς
|
||||
REP ^καταρχὰς$ κατ'_ἀρχὰς
|
||||
REP ^κατευθείαν$ κατ'_εὐθεῖαν
|
||||
REP ^ἀπευθείας$ ἀπ'_εὐθείας
|
||||
REP ^απευθείας$ ἀπ'_εὐθείας
|
||||
REP ^παρότι$ παρ'_ὅτι
|
||||
REP ^παρόλο$ παρ'_ὅλο
|
||||
REP ^παρόλα$ παρ'_ὅλα
|
||||
REP ^παρόλην$ παρ'_ὅλην
|
||||
REP ^παρόλη$ παρ'_ὅλη
|
||||
REP ^καθόλα$ καθ'_ὅλα
|
||||
REP ^εξαιτίας$ ἐξ_αἰτίας
|
||||
REP ^τελοσπάντων$ τέλος_πάντων
|
||||
REP ^ἀφενός$ ἀφ'_ἑνός
|
||||
REP ^ἀφενὸς$ ἀφ'_ἑνὸς
|
||||
REP ^ἀφετέρου$ ἀφ'_ἑτέρου
|
||||
REP ^αφενός$ ἀφ'_ἑνός
|
||||
REP ^αφετέρου$ ἀφ'_ἑτέρου
|
||||
REP ^εντούτοις$ ἐν_τούτοις
|
||||
REP ^ἐντούτοις$ ἐν_τούτοις
|
||||
REP ^περεταίρω$ περαιτέρω
|
||||
REP ^καθωσπρέπει$ καθὼς_πρέπει
|
||||
REP ^ἐσαεὶ$ ἐς_ἀεί
|
||||
REP ^εσαεὶ$ ἐς_ἀεί
|
||||
REP ^ἐσαεί$ ἐς_ἀεί
|
||||
REP ^εσαεί$ ἐς_ἀεί
|
||||
REP ^νοός$ νοῦ
|
||||
REP ^νοὸς$ νοῦ
|
||||
REP ^νόες$ νοῖ
|
||||
REP ^μεγαλο μεγα
|
||||
REP ῥ ρ
|
||||
REP ῤ ρ
|
||||
REP ῤῥ ρρ
|
||||
|
||||
TRY άόίϊΐέήύϋΰώιηυωοεαἀἐἠἰὀὠἁἑἡἱὁὑὡἄἔἤἴὄὤἅἕἥἵὅὕὥἆἦἶὦἇἧἷὗὧᾳῃῳᾷῇῷᾆᾖᾦᾇᾗᾧλςγδθφβζρξψχΑΕΗΙΥΟΩἈἘἨἸὈὨὙΡΤΘΠΣΔΦΓΞΚΛΖΧΨΒΝΜ'
|
||||
|
||||
MAP 7
|
||||
MAP αάᾶὰἀἄἆἂἁἅἇἃᾳᾷᾆᾇΑἈἌἊἎἉἍ
|
||||
MAP ηήῆὴἠἤἦἢἡἥἧἣῃῇᾖᾗΗἨἬἪἮἩἭιίῖὶϊΐἰἴἶἲἱἵἷἳΙἸἼἺἾἹἽΪυύῦὺϋΰὐὔὖὒὑὕὗὓΥὙὝὟΫ(ει)(οι)
|
||||
MAP εέὲἐἔἒἑἕἓΕἘἜἙἝ
|
||||
MAP οόὸὀὄὂὁὅὃωώῶὼὠὤὦὢὡὥὧὣῳῷᾦᾧΟὈὉὌὍΩὨὩὮὯὬὭ
|
||||
MAP (ου)(οῦ)(ού)(οὺ)(οὐ)
|
||||
MAP σς
|
||||
MAP ρῤῥ
|
||||
|
||||
PFX a Y 1
|
||||
PFX a ᾐ ἠ ᾐ
|
||||
|
||||
SFX A Y 60
|
||||
SFX A ά ὰ ά
|
||||
SFX A ή ὴ ή
|
||||
SFX A έ ὲ έ
|
||||
SFX A ί ὶ ί
|
||||
SFX A ό ὸ ό
|
||||
SFX A ύ ὺ ύ
|
||||
SFX A ώ ὼ ώ
|
||||
SFX A ών ὼν ών
|
||||
SFX A ώς ὼς ώς
|
||||
SFX A ός ὸς ός
|
||||
SFX A όν ὸν όν
|
||||
SFX A όλ ὸλ όλ
|
||||
SFX A ότ ὸτ ότ
|
||||
SFX A όρ ὸρ όρ
|
||||
SFX A ὅν ὃν ὅν
|
||||
SFX A ίς ὶς ίς
|
||||
SFX A ίν ὶν ίν
|
||||
SFX A ίτ ὶτ ίτ
|
||||
SFX A ίχ ὶχ ίχ
|
||||
SFX A ίμ ὶμ ίμ
|
||||
SFX A ίδ ὶδ ίδ
|
||||
SFX A ίθ ὶθ ίθ
|
||||
SFX A ίκ ὶκ ίκ
|
||||
SFX A ίλ ὶλ ίλ
|
||||
SFX A ίλμ ὶλμ ίλμ
|
||||
SFX A ίπ ὶπ ίπ
|
||||
SFX A ύς ὺς ύς
|
||||
SFX A ύν ὺν ύν
|
||||
SFX A ύλ ὺλ ύλ
|
||||
SFX A ύπ ὺπ ύπ
|
||||
SFX A ύθ ὺθ ύθ
|
||||
SFX A ής ὴς ής
|
||||
SFX A ήν ὴν ήν
|
||||
SFX A ἥν ἣν ἥν
|
||||
SFX A ήλ ὴλ ήλ
|
||||
SFX A ήμ ὴμ ήμ
|
||||
SFX A άς ὰς άς
|
||||
SFX A άμ ὰμ άμ
|
||||
SFX A άλ ὰλ άλ
|
||||
SFX A άτ ὰτ άτ
|
||||
SFX A άρ ὰρ άρ
|
||||
SFX A άζ ὰζ άζ
|
||||
SFX A άπ ὰπ άπ
|
||||
SFX A άχ ὰχ άχ
|
||||
SFX A ἅς ἃς ἅς
|
||||
SFX A άν ὰν άν
|
||||
SFX A άνς ὰνς άνς
|
||||
SFX A άξ ὰξ άξ
|
||||
SFX A όξ ὸξ όξ
|
||||
SFX A όκ ὸκ όκ
|
||||
SFX A ές ὲς ές
|
||||
SFX A έστ ὲστ έστ
|
||||
SFX A έν ὲν έν
|
||||
SFX A έλ ὲλ έλ
|
||||
SFX A έρ ὲρ έρ
|
||||
SFX A έμ ὲμ έμ
|
||||
SFX A έξ ὲξ έξ
|
||||
SFX A άρ ἀρ άρ
|
||||
SFX A ήρ ὴρ ήρ
|
||||
SFX A ίρ ὶρ ίρ
|
||||
|
||||
|
||||
SFX C Y 17
|
||||
SFX C ος ός ος
|
||||
SFX C ο ό ο
|
||||
SFX C ον όν ον
|
||||
SFX C ε έ ε
|
||||
SFX C α ά α
|
||||
SFX C ας άς ας
|
||||
SFX C αν άν αν
|
||||
SFX C αι αί αι
|
||||
SFX C ες ές ες
|
||||
SFX C ις ίς ις
|
||||
SFX C η ή η
|
||||
SFX C ιν ίν ιν
|
||||
SFX C ι ί ι
|
||||
SFX C ως ώς ως
|
||||
SFX C ων ών ων
|
||||
SFX C ης ής ης
|
||||
SFX C εν έν εν
|
||||
|
||||
SFX D Y 4
|
||||
SFX D ῃ η ῃ
|
||||
SFX D ῇ ῆ ῇ
|
||||
SFX D ῃς ης ῃς
|
||||
SFX D ῇς ῆς ῇς
|
||||
|
||||
|
||||
|
||||
|
||||
SFX F Y 13
|
||||
SFX F ός οῦ ός
|
||||
SFX F ός όν ός
|
||||
SFX F ός έ ός
|
||||
SFX F ός οί ός
|
||||
SFX F ός ῶν ός
|
||||
SFX F ός ούς ός
|
||||
SFX F ός ό ός
|
||||
SFX F ός ὸς ός
|
||||
SFX F ός ὸν ός
|
||||
SFX F ός ὲ ός
|
||||
SFX F ός οὶ ός
|
||||
SFX F ός οὺς ός
|
||||
SFX F ός ὸ ός
|
||||
|
||||
SFX E Y 11
|
||||
SFX E ός ή ός
|
||||
SFX E ός ῆς ός
|
||||
SFX E ός ήν ός
|
||||
SFX E ός αί ός
|
||||
SFX E ός ές ός
|
||||
SFX E ός άς ός
|
||||
SFX E ός ὴ ός
|
||||
SFX E ός ὴν ός
|
||||
SFX E ός αὶ ός
|
||||
SFX E ός ὲς ός
|
||||
SFX E ός ὰς ός
|
||||
|
||||
SFX B Y 11
|
||||
SFX B ός ά ός
|
||||
SFX B ός ᾶς ός
|
||||
SFX B ός άν ός
|
||||
SFX B ός αί ός
|
||||
SFX B ός ές ός
|
||||
SFX B ός άς ός
|
||||
SFX B ός ὰ ός
|
||||
SFX B ός ὰν ός
|
||||
SFX B ός αὶ ός
|
||||
SFX B ός ὲς ός
|
||||
SFX B ός ὰς ός
|
||||
|
||||
SFX ε Y 2
|
||||
SFX ε ός ά ός
|
||||
SFX ε ός ὰ ός
|
||||
|
||||
SFX Φ Y 2
|
||||
SFX Φ ός ῷ ός
|
||||
SFX Φ ός οῖς ός
|
||||
|
||||
SFX φ Y 2
|
||||
SFX φ ός ῇ ός
|
||||
SFX φ ός αῖς ός
|
||||
|
||||
SFX β Y 2
|
||||
SFX β ός ᾷ ός
|
||||
SFX β ός αῖς ός
|
||||
|
||||
|
||||
|
||||
SFX X Y 5
|
||||
SFX X ος ον ος
|
||||
SFX X ος ο ος
|
||||
SFX X ος ε ος
|
||||
SFX X ος οι ος
|
||||
SFX X ος α ος
|
||||
|
||||
SFX Γ Y 6
|
||||
SFX Γ ος ός ος
|
||||
SFX Γ ος όν ος
|
||||
SFX Γ ος ό ος
|
||||
SFX Γ ος έ ος
|
||||
SFX Γ ος οί ος
|
||||
SFX Γ ος ά ος
|
||||
|
||||
SFX Z Y 3
|
||||
SFX Z ος ου ος
|
||||
SFX Z ος ων ος
|
||||
SFX Z ος ους ος
|
||||
|
||||
SFX Δ Y 3
|
||||
SFX Δ ος ού ος
|
||||
SFX Δ ος ών ος
|
||||
SFX Δ ος ούς ος
|
||||
|
||||
SFX Θ Y 4
|
||||
SFX Θ ος ά ος
|
||||
SFX Θ ος άς ος
|
||||
SFX Θ ος άν ος
|
||||
SFX Θ ος ές ος
|
||||
|
||||
SFX Λ Y 4
|
||||
SFX Λ ος ή ος
|
||||
SFX Λ ος ής ος
|
||||
SFX Λ ος ήν ος
|
||||
SFX Λ ος ές ος
|
||||
|
||||
SFX Ξ Y 1
|
||||
SFX Ξ ος αί ος
|
||||
|
||||
|
||||
SFX x Y 4
|
||||
SFX x ου ῳ ου
|
||||
SFX x ου ων ου
|
||||
SFX x ου οις ου
|
||||
SFX x ου ους ου
|
||||
|
||||
SFX γ Y 4
|
||||
SFX γ ος η ος
|
||||
SFX γ ος ης ος
|
||||
SFX γ ος ην ος
|
||||
SFX γ ος ες ος
|
||||
|
||||
SFX κ Y 3
|
||||
SFX κ ου η ου
|
||||
SFX κ ου ης ου
|
||||
SFX κ ου ην ου
|
||||
|
||||
SFX δ Y 3
|
||||
SFX δ ου α ου
|
||||
SFX δ ου ας ου
|
||||
SFX δ ου αν ου
|
||||
|
||||
SFX ζ Y 3
|
||||
SFX ζ ος α ος
|
||||
SFX ζ ος ας ος
|
||||
SFX ζ ος αν ος
|
||||
|
||||
|
||||
SFX θ Y 2
|
||||
SFX θ ος αι ος
|
||||
SFX θ ος ες ος
|
||||
|
||||
SFX λ Y 1
|
||||
SFX λ ος ες ος
|
||||
|
||||
SFX ι Y 2
|
||||
SFX ι ου ᾳ ου
|
||||
SFX ι ου αις ου
|
||||
|
||||
SFX μ Y 3
|
||||
SFX μ ου ῃ ου
|
||||
SFX μ ου αις ου
|
||||
SFX μ ου ας ου
|
||||
|
||||
|
||||
|
||||
|
||||
SFX K Y 10
|
||||
SFX K ής ὴς ής
|
||||
SFX K ής οῦς ής
|
||||
SFX K ής εῖ ής
|
||||
SFX K ής ῆ ής
|
||||
SFX K ής ές ής
|
||||
SFX K ής ὲς ής
|
||||
SFX K ής εῖς ής
|
||||
SFX K ής ῶν ής
|
||||
SFX K ής έσι ής
|
||||
SFX K ής ῆ ής
|
||||
|
||||
SFX J Y 8
|
||||
SFX J ώδης ώδους ώδης
|
||||
SFX J ώδης ώδει ώδης
|
||||
SFX J ώδης ώδη ώδης
|
||||
SFX J ώδης ῶδες ώδης
|
||||
SFX J ώδης ώδεις ώδης
|
||||
SFX J ώδης ωδῶν ώδης
|
||||
SFX J ώδης ώδεσι ώδης
|
||||
SFX J ώδης ῶδες ώδης
|
||||
|
||||
SFX f Y 6
|
||||
SFX f ός ῶς .
|
||||
SFX f ος ως .
|
||||
SFX f ου ως .
|
||||
SFX f ύς έως .
|
||||
SFX f ώδης ωδῶς .
|
||||
SFX f ής ῶς .
|
||||
|
||||
|
||||
|
||||
SFX I Y 27
|
||||
SFX I ος ου .
|
||||
SFX I ος ον .
|
||||
SFX I ος ε .
|
||||
SFX I ος οι .
|
||||
SFX I ος ων .
|
||||
SFX I ος ους .
|
||||
SFX I ος ο .
|
||||
SFX I ος αι .
|
||||
SFX I ος ες .
|
||||
SFX I ος η .
|
||||
SFX I ος ης .
|
||||
SFX I ος ην .
|
||||
SFX I ος α .
|
||||
SFX I ος ός .
|
||||
SFX I ος ού .
|
||||
SFX I ος όν .
|
||||
SFX I ος έ .
|
||||
SFX I ος οί .
|
||||
SFX I ος ών .
|
||||
SFX I ος ούς .
|
||||
SFX I ος ό .
|
||||
SFX I ος αί .
|
||||
SFX I ος ές .
|
||||
SFX I ος ή .
|
||||
SFX I ος ής .
|
||||
SFX I ος ήν .
|
||||
SFX I ος ά .
|
||||
|
||||
SFX i Y 13
|
||||
SFX i ου ῳ
|
||||
SFX i ου ων
|
||||
SFX i ου οις
|
||||
SFX i ου ους
|
||||
SFX i ου αις
|
||||
SFX i ου ας
|
||||
SFX i ου α ρου
|
||||
SFX i ου ᾳ ρου
|
||||
SFX i ου αν ρου
|
||||
SFX i ου η του
|
||||
SFX i ου ης του
|
||||
SFX i ου ῃ του
|
||||
SFX i ου ην του
|
||||
|
||||
|
||||
SFX r Y 7
|
||||
SFX r ας ου ας
|
||||
SFX r ας α ας
|
||||
SFX r ας ᾳ ας
|
||||
SFX r ας αν ας
|
||||
SFX r ας αι ας
|
||||
SFX r ας ες ας
|
||||
SFX r ας αις ας
|
||||
|
||||
SFX s Y 3
|
||||
SFX s ας α ας
|
||||
SFX s ας αν ας
|
||||
SFX s ας ες ας
|
||||
|
||||
SFX u Y 6
|
||||
SFX u ης ου ης
|
||||
SFX u ης η ης
|
||||
SFX u ης ῃ ης
|
||||
SFX u ης ην ης
|
||||
SFX u ης αις ης
|
||||
SFX u ης ας ης
|
||||
|
||||
SFX t Y 1
|
||||
SFX t αι ες αι
|
||||
|
||||
SFX z Y 2
|
||||
SFX z αι ες αι
|
||||
SFX z αι α αι
|
||||
|
||||
SFX p Y 3
|
||||
SFX p ης η ης
|
||||
SFX p ης ην ης
|
||||
SFX p ης ες ης
|
||||
|
||||
SFX j Y 1
|
||||
SFX j ης η ης
|
||||
|
||||
SFX k Y 1
|
||||
SFX k ες ων ες
|
||||
|
||||
SFX M Y 18
|
||||
SFX M ής οῦ ής
|
||||
SFX M ής ῆ ής
|
||||
SFX M ής ῇ ής
|
||||
SFX M ής ήν ής
|
||||
SFX M ής ή ής
|
||||
SFX M ής ά ής
|
||||
SFX M ής αί ής
|
||||
SFX M ής ές ής
|
||||
SFX M ής ῶν ής
|
||||
SFX M ής αῖς ής
|
||||
SFX M ής άς ής
|
||||
SFX M ής ὴς ής
|
||||
SFX M ής ὴν ής
|
||||
SFX M ής ὴ ής
|
||||
SFX M ής ὰ ής
|
||||
SFX M ής αὶ ής
|
||||
SFX M ής ὲς ής
|
||||
SFX M ής ὰς ής
|
||||
|
||||
|
||||
SFX l Y 9
|
||||
SFX l α ας α
|
||||
SFX l α αν α
|
||||
SFX l α αι α
|
||||
SFX l α ες α
|
||||
SFX l α ά α
|
||||
SFX l α άς α
|
||||
SFX l α άν α
|
||||
SFX l α αί α
|
||||
SFX l α ές α
|
||||
|
||||
SFX m Y 3
|
||||
SFX m ης ῃ ης
|
||||
SFX m ης αις ης
|
||||
SFX m ης ας ης
|
||||
|
||||
SFX ψ Y 7
|
||||
SFX ψ α αν α
|
||||
SFX ψ α αι α
|
||||
SFX ψ α ες α
|
||||
SFX ψ α ά α
|
||||
SFX ψ α άν α
|
||||
SFX ψ α αί α
|
||||
SFX ψ α ές α
|
||||
|
||||
SFX n Y 4
|
||||
SFX n α ας α
|
||||
SFX n α ᾳ α
|
||||
SFX n α αν α
|
||||
SFX n α αις α
|
||||
|
||||
SFX h Y 9
|
||||
SFX h α ας α
|
||||
SFX h α αν α
|
||||
SFX h α αι α
|
||||
SFX h α ες α
|
||||
SFX h α ά α
|
||||
SFX h α άς α
|
||||
SFX h α άν α
|
||||
SFX h α αί α
|
||||
SFX h α ές α
|
||||
|
||||
SFX g Y 2
|
||||
SFX g ας ᾳ ας
|
||||
SFX g ας αις ας
|
||||
|
||||
SFX e Y 13
|
||||
SFX e ά ᾶς ά
|
||||
SFX e ά ᾷ ά
|
||||
SFX e ά άν ά
|
||||
SFX e ά αί ά
|
||||
SFX e ά ές ά
|
||||
SFX e ά ῶν ά
|
||||
SFX e ά αῖς ά
|
||||
SFX e ά άς ά
|
||||
SFX e ά ὰ ά
|
||||
SFX e ά ὰν ά
|
||||
SFX e ά αὶ ά
|
||||
SFX e ά ὲς ά
|
||||
SFX e ά ὰς ά
|
||||
|
||||
SFX d Y 5
|
||||
SFX d η ης η
|
||||
SFX d η ῃ η
|
||||
SFX d η ην η
|
||||
SFX d η αις η
|
||||
SFX d η ας η
|
||||
|
||||
SFX c Y 1
|
||||
SFX c αι ες αι
|
||||
|
||||
|
||||
SFX L Y 13
|
||||
SFX L ή ῆς ή
|
||||
SFX L ή ῇ ή
|
||||
SFX L ή ήν ή
|
||||
SFX L ή αί ή
|
||||
SFX L ή ές ή
|
||||
SFX L ή ῶν ή
|
||||
SFX L ή αῖς ή
|
||||
SFX L ή άς ή
|
||||
SFX L ή ὴ ή
|
||||
SFX L ή ὴν ή
|
||||
SFX L ή αὶ ή
|
||||
SFX L ή ὲς ή
|
||||
SFX L ή ὰς ή
|
||||
|
||||
SFX b Y 7
|
||||
SFX b ή ῆς ή
|
||||
SFX b ή ήν ή
|
||||
SFX b ή ῶν ή
|
||||
SFX b ή ές ή
|
||||
SFX b ή ὴ ή
|
||||
SFX b ή ὴν ή
|
||||
SFX b ή ὲς ή
|
||||
|
||||
|
||||
SFX G Y 7
|
||||
SFX G ί ιοῦ ί
|
||||
SFX G ί άκι ί
|
||||
SFX G ί ιά ί
|
||||
SFX G ί ιῶν ί
|
||||
SFX G ί άκια ί
|
||||
SFX G ί ὶ ί
|
||||
SFX G ί ιὰ ί
|
||||
|
||||
SFX H Y 13
|
||||
SFX H ίον ίου ίον
|
||||
SFX H ίον ίῳ ίον
|
||||
SFX H ίον ί ίον
|
||||
SFX H ίον ιοῦ ίον
|
||||
SFX H ίον άκι ίον
|
||||
SFX H ίον ία ίον
|
||||
SFX H ίον ίων ίον
|
||||
SFX H ίον ίοις ίον
|
||||
SFX H ίον ιά ίον
|
||||
SFX H ίον ιῶν ίον
|
||||
SFX H ίον άκια ίον
|
||||
SFX H ίον ὶ ίον
|
||||
SFX H ίον ιὰ ίον
|
||||
|
||||
SFX V Y 9
|
||||
SFX V ις ιν ις
|
||||
SFX V ις ι ις
|
||||
SFX V ις η ις
|
||||
SFX V ις ης ις
|
||||
SFX V ις ίς ις
|
||||
SFX V ις ίν ις
|
||||
SFX V ις ί ις
|
||||
SFX V ις ή ις
|
||||
SFX V ις ής ις
|
||||
|
||||
SFX u Y 2
|
||||
SFX u ις ιν ις
|
||||
SFX u ις ι ις
|
||||
|
||||
SFX α Y 2
|
||||
SFX α εως η εως
|
||||
SFX α εως ης εως
|
||||
|
||||
SFX v Y 9
|
||||
SFX v εως ει εως
|
||||
SFX v εως εις εως
|
||||
SFX v εως εων εως
|
||||
SFX v εως εσι εως
|
||||
SFX v εως εσιν εως
|
||||
SFX v εως εώς εως
|
||||
SFX v εως εών εως
|
||||
SFX v εως εσί εως
|
||||
SFX v εως εσίν εως
|
||||
|
||||
SFX ξ Y 9
|
||||
SFX ξ τος τι τος
|
||||
SFX ξ τος τα τος
|
||||
SFX ξ τος σι τος
|
||||
SFX ξ τος σιν τος
|
||||
SFX ξ τος τός τος
|
||||
SFX ξ τος τί τος
|
||||
SFX ξ τος τά τος
|
||||
SFX ξ τος σί τος
|
||||
SFX ξ τος σίν τος
|
||||
|
||||
SFX σ Y 3
|
||||
SFX σ ος α ος
|
||||
SFX σ ος ός ος
|
||||
SFX σ ος ά ος
|
||||
|
||||
SFX π Y 1
|
||||
SFX π ι ια ι
|
||||
|
||||
SFX Q Y 11
|
||||
SFX Q ων οντος ων
|
||||
SFX Q ων οντι ων
|
||||
SFX Q ων οντα ων
|
||||
SFX Q ων οντες ων
|
||||
SFX Q ων ουσι ων
|
||||
SFX Q ων ουσιν ων
|
||||
SFX Q ων ουσα ων
|
||||
SFX Q ων ουσας ων
|
||||
SFX Q ων ουσαν ων
|
||||
SFX Q ων ουσαι ων
|
||||
SFX Q ων ουσες ων
|
||||
|
||||
SFX q Y 5
|
||||
SFX q όντων ούσης όντων
|
||||
SFX q όντων ούσῃ όντων
|
||||
SFX q όντων ούσαις όντων
|
||||
SFX q όντων ούσας όντων
|
||||
SFX q όντων ουσῶν όντων
|
||||
|
||||
SFX S Y 10
|
||||
SFX S ας αντος ας
|
||||
SFX S ας αντι ας
|
||||
SFX S ας αντα ας
|
||||
SFX S ας αντες ας
|
||||
SFX S ας ασι ας
|
||||
SFX S ας ασιν ας
|
||||
SFX S ας ασα ας
|
||||
SFX S ας ασαν ας
|
||||
SFX S ας ασαι ας
|
||||
SFX S ας ασες ας
|
||||
|
||||
SFX s Y 5
|
||||
SFX s άντων άσης άντων
|
||||
SFX s άντων άσῃ άντων
|
||||
SFX s άντων άσαις άντων
|
||||
SFX s άντων άσας άντων
|
||||
SFX s άντων ασῶν άντων
|
||||
|
||||
SFX U Y 20
|
||||
SFX U ώς ὼς ώς
|
||||
SFX U ώς ότος ώς
|
||||
SFX U ώς ότι ώς
|
||||
SFX U ώς ότα ώς
|
||||
SFX U ώς ότες ώς
|
||||
SFX U ώς ότων ώς
|
||||
SFX U ώς όσι ώς
|
||||
SFX U ώς όσιν ώς
|
||||
SFX U ώς ότας ώς
|
||||
SFX U ώς υῖα ώς
|
||||
SFX U ώς υίας ώς
|
||||
SFX U ώς υίᾳ ώς
|
||||
SFX U ώς υῖαν ώς
|
||||
SFX U ώς υῖαι ώς
|
||||
SFX U ώς υιῶν ώς
|
||||
SFX U ώς υίαις ώς
|
||||
SFX U ώς υίας ώς
|
||||
SFX U ώς ός ώς
|
||||
SFX U ώς ὸς ώς
|
||||
SFX U ώς ότα ώς
|
||||
|
||||
SFX O Y 24
|
||||
SFX O ος ου ος
|
||||
SFX O ος ού ος
|
||||
SFX O ος ον ος
|
||||
SFX O ος όν ος
|
||||
SFX O ος ε ος
|
||||
SFX O ος έ ος
|
||||
SFX O ος οι ος
|
||||
SFX O ος οί ος
|
||||
SFX O ος ων ος
|
||||
SFX O ος ών ος
|
||||
SFX O ος ους ος
|
||||
SFX O ος ούς ος
|
||||
SFX O ος η ος
|
||||
SFX O ος ή ος
|
||||
SFX O ος ης ος
|
||||
SFX O ος ής ος
|
||||
SFX O ος αι ος
|
||||
SFX O ος αί ος
|
||||
SFX O ος ες ος
|
||||
SFX O ος ές ος
|
||||
SFX O ος ο ος
|
||||
SFX O ος ό ος
|
||||
SFX O ος α ος
|
||||
SFX O ος ά ος
|
||||
|
||||
SFX o Y 10
|
||||
SFX o ου ῳ ου
|
||||
SFX o ου ων ου
|
||||
SFX o ου οις ου
|
||||
SFX o ου ους ου
|
||||
SFX o ου η ου
|
||||
SFX o ου ης ου
|
||||
SFX o ου ῃ ου
|
||||
SFX o ου ην ου
|
||||
SFX o ου αις ου
|
||||
SFX o ου ας ου
|
||||
|
||||
SFX P Y 21
|
||||
SFX P είς εὶς είς
|
||||
SFX P είς έντος είς
|
||||
SFX P είς έντι είς
|
||||
SFX P είς έντα είς
|
||||
SFX P είς έντες είς
|
||||
SFX P είς έντων είς
|
||||
SFX P είς εῖσι είς
|
||||
SFX P είς εῖσιν είς
|
||||
SFX P είς έντας είς
|
||||
SFX P είς εῖσα είς
|
||||
SFX P είς είσης είς
|
||||
SFX P είς είσῃ είς
|
||||
SFX P είς εῖσαν είς
|
||||
SFX P είς εῖσαι είς
|
||||
SFX P είς εῖσες είς
|
||||
SFX P είς εισῶν είς
|
||||
SFX P είς είσαις είς
|
||||
SFX P είς είσας είς
|
||||
SFX P είς έν είς
|
||||
SFX P είς ὲν είς
|
||||
SFX P είς έντα είς
|
||||
|
||||
SFX N Y 19
|
||||
SFX N ος ου ος
|
||||
SFX N ος ῳ ος
|
||||
SFX N ος ον ος
|
||||
SFX N ος ο ος
|
||||
SFX N ος ε ος
|
||||
SFX N ος οι ος
|
||||
SFX N ος ων ος
|
||||
SFX N ος οις ος
|
||||
SFX N ος ους ος
|
||||
SFX N ος η ος
|
||||
SFX N ος ης ος
|
||||
SFX N ος ῃ ος
|
||||
SFX N ος ην ος
|
||||
SFX N ος αι ος
|
||||
SFX N ος ων ος
|
||||
SFX N ος αις ος
|
||||
SFX N ος ας ος
|
||||
SFX N ος ες ος
|
||||
SFX N ος α ος
|
||||
|
||||
SFX W Y 17
|
||||
SFX W ῶν οῦντος ῶν
|
||||
SFX W ῶν οῦντι ῶν
|
||||
SFX W ῶν οῦντα ῶν
|
||||
SFX W ῶν οῦντες ῶν
|
||||
SFX W ῶν ούντων ῶν
|
||||
SFX W ῶν οῦσι ῶν
|
||||
SFX W ῶν οῦσιν ῶν
|
||||
SFX W ῶν οῦντας ῶν
|
||||
SFX W ῶν οῦσα ῶν
|
||||
SFX W ῶν ούσης ῶν
|
||||
SFX W ῶν ούσῃ ῶν
|
||||
SFX W ῶν οῦσαν ῶν
|
||||
SFX W ῶν οῦσαι ῶν
|
||||
SFX W ῶν ουσῶν ῶν
|
||||
SFX W ῶν ούσαις ῶν
|
||||
SFX W ῶν ούσας ῶν
|
||||
SFX W ῶν οῦν ῶν
|
||||
|
||||
SFX w Y 17
|
||||
SFX w ῶν ῶντος ῶν
|
||||
SFX w ῶν ῶντι ῶν
|
||||
SFX w ῶν ῶντα ῶν
|
||||
SFX w ῶν ῶντες ῶν
|
||||
SFX w ῶν ώντων ῶν
|
||||
SFX w ῶν ῶσι ῶν
|
||||
SFX w ῶν ῶσιν ῶν
|
||||
SFX w ῶν ῶντας ῶν
|
||||
SFX w ῶν ῶσα ῶν
|
||||
SFX w ῶν ώσης ῶν
|
||||
SFX w ῶν ώσῃ ῶν
|
||||
SFX w ῶν ῶσαν ῶν
|
||||
SFX w ῶν ῶσαι ῶν
|
||||
SFX w ῶν ουσῶν ῶν
|
||||
SFX w ῶν ώσαις ῶν
|
||||
SFX w ῶν ώσας ῶν
|
||||
SFX w ῶν ῶν ῶν
|
||||
|
||||
SFX Σ Y 18
|
||||
SFX Σ ών όντος ών
|
||||
SFX Σ ών όντι ών
|
||||
SFX Σ ών όντα ών
|
||||
SFX Σ ών όντες ών
|
||||
SFX Σ ών όντων ών
|
||||
SFX Σ ών οῦσι ών
|
||||
SFX Σ ών οῦσιν ών
|
||||
SFX Σ ών όντας ών
|
||||
SFX Σ ών οῦσα ών
|
||||
SFX Σ ών ούσης ών
|
||||
SFX Σ ών ούσῃ ών
|
||||
SFX Σ ών οῦσαν ών
|
||||
SFX Σ ών οῦσαι ών
|
||||
SFX Σ ών ουσών ών
|
||||
SFX Σ ών ούσαις ών
|
||||
SFX Σ ών ούσας ών
|
||||
SFX Σ ών όν ών
|
||||
SFX Σ ών ὸν ών
|
||||
|
||||
SFX T Y 17
|
||||
SFX T ύς ύντος ύς
|
||||
SFX T ύς ύντι ύς
|
||||
SFX T ύς ύντα ύς
|
||||
SFX T ύς ύντες ύς
|
||||
SFX T ύς ύντων ύς
|
||||
SFX T ύς ῦσι ύς
|
||||
SFX T ύς ῦσιν ύς
|
||||
SFX T ύς ύντας ύς
|
||||
SFX T ύς ῦσα ύς
|
||||
SFX T ύς ύσης ύς
|
||||
SFX T ύς ύσῃ ύς
|
||||
SFX T ύς ῦσαν ύς
|
||||
SFX T ύς ῦσαι ύς
|
||||
SFX T ύς υσῶν ύς
|
||||
SFX T ύς ύσαις ύς
|
||||
SFX T ύς ύσας ύς
|
||||
SFX T ύς ύν ύς
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
Προϊόν: Πολυτονικὸς διορθωτὴς - συλλαβιστής "The Polytonic Project" 2.0.7
|
||||
Ἡμ. Ἐκδόσεως: 10/7/2016
|
||||
|
||||
License: GNU General Public License (τελευταία ἔκδοση)
|
||||
Ἐπικοινωνία: Α. Δεληγιάννη - The Polytonic Project - adeliyanni@yahoo.gr
|
||||
URL: http://www.thepolytonicproject.gr
|
||||
|
||||
Τὰ λεξιλογικὰ ἀρχεῖα ἔχουν συνταχθεῖ ἀπὸ τὴν Α. Δεληγιάννη τοῦ "The Polytonic Project" καὶ διανέμονται χωρὶς ἐγγύηση.
|
||||
Περισσότερες λεπτομέρειες γιὰ τὴν ἄδεια χρήσεως ὑπάρχουν στὸ κείμενο τῆς GNU General Public License.
|
||||
Θερμὲς εὐχαριστίες στοὺς κ. κ. Ε. Κριτσίνη καὶ Δ. Μπλέτσα γιὰ προτάσεις λέξεων.
|
||||
Ἐπίσης στοὺς χρῆστες ποὺ κατὰ καιροὺς ἐπισημαίνουν ἐλλείψεις καὶ λάθη.
|
||||
|
||||
Ὁ συλλαβισμὸς βασίζεται στὸ xetex-greek – Hyphenation for different variants of Greek, under xetex
|
||||
ποὺ διανέμεται μὲ ἄδεια χρήσεως LPPL καὶ συντηρεῖται ἀπὸ τὸν Α. Συρόπουλο.
|
||||
Περισσότερα στὸ http://ctan.org/tex-archive/macros/xetex/hyphenation/greek/
|
||||
Οι χρησιμοποιούμενοι κανόνες συλλαβισμοῦ προέρχονται ἀπὸ τὶς σχετικὲς ἐργασίες τοῦ Δ. Φιλίππου.
|
||||
|
||||
Σχετικὰ μὲ τὸ περιεχόμενο τοῦ λεξικοῦ:
|
||||
|
||||
Ἡ τελευταία ἔκδοση τοῦ λεξικοῦ περιλαμβάνει 26.180 λήμματα, προερχόμενα ἀπὸ σύγχρονα καὶ παλαιότερα κείμενα.
|
||||
Ὡς πρὸς τὴν πρώτη ἔκδοση περιέχει τὶς ἑξῆς βελτιώσεις:
|
||||
περὶ τὰ 3.000 περισσότερα λήμματα
|
||||
Διόρθωση σφαλμάτων
|
||||
Μικρότερο μέγεθος ἀρχείου .dic
|
||||
|
||||
Τὸ λεξικὸ καλύπτει τύπους τῆς δημοτικῆς, λογίας καὶ κατὰ περίπτωσιν ἀρχαΐζουσας γλώσσας.
|
||||
Γιὰ μεγαλύτερη ἐλευθερία τοῦ χρήστη περιλαμβάνονται τόσον οἱ σύγχρονες, ὅσο καὶ παλαιότερες ὀρθογραφίες, π.χ., "νεότερος" καὶ "νεώτερος".
|
||||
Ἀκολουθοῦνται οἱ κανόνες τοῦ ἱστορικοῦ τονισμοῦ τῆς ἑλληνικῆς. Ἔτσι, π.χ., ἡ λέξη "γλῶσσα" περισπᾶται, ἡ μετοχή "ἀγαπῶντας" περισπᾶται ὡς τύπος συνηρημένου ρήματος, κλπ.
|
||||
|
||||
Τὸ λεξικὸ συνεχίζει νὰ ἐμπλουτίζεται μὲ τὴν βοήθεια καὶ τῶν συνεργατῶν καὶ φίλων τοῦ The Polytonic Project.
|
||||
Συνιστᾶται ἡ ἀνανέωση τῆς ἐγκατάστασης μὲ τὶς καινούργιες ἐκδόσεις.
|
||||
|
||||
Διαφορὲς ἐκδόσεως 2.0.2 ἀπὸ 2.0.1:
|
||||
Συμπλήρωση ὁρισμένων τύπων μετοχῶν ρημάτων.
|
||||
Προσθήκη 328 λημμάτων στὸ λεξικό, σύνολον 25.873 λήμματα
|
||||
|
||||
Διαφορὲς ἐκδόσεως 2.0.4 ἀπὸ 2.0.2:
|
||||
Διορθώσεις σὲ ὁρισμενους τύπους μετοχῶν ρημάτων.
|
||||
Προσθήκη 179 λημμάτων στὸ λεξικό, σύνολον 26.052 λήμματα
|
||||
|
||||
Ἔκδοση 2.0.5: Μία διόρθωση καὶ 44 λέξεις ἐπὶ πλέον
|
||||
Ἔκδοση 2.0.6: Μία διόρθωση καὶ 26.160 λέξεις.
|
||||
|
||||
Ἔκδοση 2.0.7: Πολυτονικὸς συλλαβιστής.
|
||||
@@ -0,0 +1,820 @@
|
||||
# el_GR.aff
|
||||
# greek affix file
|
||||
# for MySpell (pspell)
|
||||
# GPL
|
||||
#
|
||||
#
|
||||
# LOG etc:
|
||||
# --------
|
||||
# Minor errors detected by Kevin Hendricks <kevin.hendricks@sympatico.ca>
|
||||
# and corrected by me 08/06/02 (evris)
|
||||
#
|
||||
# Fix the TRY order to be more useful. Added character mappings so the vowels
|
||||
# that have the same pronunciation be closely related to each other. Added a
|
||||
# replacement table to better describe the phonetic rules. 13/05/2004 (steve)
|
||||
#
|
||||
# Added 59 REP rules and one more letter for the TRY (patch by Nick Demou)
|
||||
#
|
||||
# Removed some REP rules and added some more (Nick Demou)
|
||||
#
|
||||
# Steve Stavropoulos <steve@math.upatras.gr> 01/05/2004
|
||||
#
|
||||
# Based on an older job :
|
||||
# Papakostas Evripidis evris@source.gr ep@rocketmail.com 27/01/02
|
||||
# Vryonis Panayotis vrypan@yassou.net 27/01/02
|
||||
#
|
||||
# Based on an older job :
|
||||
# greek.aff file
|
||||
# for ispell
|
||||
# Papakostas Evripidis evris@source.gr ep@rocketmail.com 1999
|
||||
#
|
||||
# Based on an older job :
|
||||
# ellhnika.aff for Greek language by Μήταλας Γιάννης and Σερασκέρης Νίκος
|
||||
# Καρλόβασι, Σάμος ,24-9-97
|
||||
|
||||
SET UTF-8
|
||||
# You are likely to forget the accent, so accented characters come first. If
|
||||
# you don't forget the accent, this order won't do any harm because it is higly
|
||||
# unlikely for a word that differs in one accented char plus some other mistake
|
||||
# to pop up in the possible suggestions (there has to be a closer match granted
|
||||
# that the word you are looking for exists).
|
||||
TRY άόίϊΐέήύϋΰώιηυωοεατνρσκμπλςγδθφβζξψχ
|
||||
|
||||
MAP 5
|
||||
MAP αά
|
||||
MAP εέ
|
||||
MAP ωώοό
|
||||
MAP ηήύϋυιίϊΐ
|
||||
MAP σς
|
||||
|
||||
# Do we have to put the accented characters in here or the MAP above is enough?
|
||||
# ANSWER: Looks like it is not! Maybe the map is only useful for the
|
||||
# suggestion order...
|
||||
#
|
||||
# Because of the automatic generation of the following REP there are some
|
||||
# combinations of letters that the greek language never uses, but I don't
|
||||
# think they will do any harm.
|
||||
REP 522
|
||||
REP α ά
|
||||
REP ά α
|
||||
REP γκ γγ
|
||||
REP γγ γκ
|
||||
REP πσ ψ
|
||||
REP ψ πσ
|
||||
REP κσ ξ
|
||||
REP ξ κσ
|
||||
REP άΰ άβ
|
||||
REP άΰ άυ
|
||||
REP άΰ άϋ
|
||||
REP άΰ αΰ
|
||||
REP άΰ αβ
|
||||
REP άΰ αυ
|
||||
REP άΰ αϋ
|
||||
REP άΰ αύ
|
||||
REP άβ άυ
|
||||
REP άβ άϋ
|
||||
REP άβ αΰ
|
||||
REP άβ αβ
|
||||
REP άβ αυ
|
||||
REP άβ αϋ
|
||||
REP άβ αύ
|
||||
REP άυ άβ
|
||||
REP άυ άϋ
|
||||
REP άυ αΰ
|
||||
REP άυ αβ
|
||||
REP άυ αυ
|
||||
REP άυ αϋ
|
||||
REP άυ αύ
|
||||
REP άϋ άβ
|
||||
REP άϋ άυ
|
||||
REP άϋ αΰ
|
||||
REP άϋ αβ
|
||||
REP άϋ αυ
|
||||
REP άϋ αϋ
|
||||
REP άϋ αύ
|
||||
REP άύ άβ
|
||||
REP άύ άυ
|
||||
REP άύ άϋ
|
||||
REP άύ αΰ
|
||||
REP άύ αβ
|
||||
REP άύ αυ
|
||||
REP άύ αϋ
|
||||
REP άύ αύ
|
||||
REP αΰ άβ
|
||||
REP αΰ άυ
|
||||
REP αΰ άϋ
|
||||
REP αΰ αβ
|
||||
REP αΰ αυ
|
||||
REP αΰ αϋ
|
||||
REP αΰ αύ
|
||||
REP αβ άβ
|
||||
REP αβ άυ
|
||||
REP αβ άϋ
|
||||
REP αβ αΰ
|
||||
REP αβ αυ
|
||||
REP αβ αϋ
|
||||
REP αβ αύ
|
||||
REP αυ άβ
|
||||
REP αυ άυ
|
||||
REP αυ άϋ
|
||||
REP αυ αΰ
|
||||
REP αυ αβ
|
||||
REP αυ αϋ
|
||||
REP αυ αύ
|
||||
REP αϋ άβ
|
||||
REP αϋ άυ
|
||||
REP αϋ άϋ
|
||||
REP αϋ αΰ
|
||||
REP αϋ αβ
|
||||
REP αϋ αυ
|
||||
REP αϋ αύ
|
||||
REP αύ άβ
|
||||
REP αύ άυ
|
||||
REP αύ άϋ
|
||||
REP αύ αΰ
|
||||
REP αύ αβ
|
||||
REP αύ αυ
|
||||
REP αύ αϋ
|
||||
REP ι ί
|
||||
REP ί ι
|
||||
REP ι ϊ
|
||||
REP ϊ ι
|
||||
REP ι ΐ
|
||||
REP ΐ ι
|
||||
REP ι η
|
||||
REP η ι
|
||||
REP ι ή
|
||||
REP ή ι
|
||||
REP ι υ
|
||||
REP υ ι
|
||||
REP ι ύ
|
||||
REP ύ ι
|
||||
REP ι ϋ
|
||||
REP ϋ ι
|
||||
REP ι ΰ
|
||||
REP ΰ ι
|
||||
REP ί ϊ
|
||||
REP ϊ ί
|
||||
REP ί ΐ
|
||||
REP ΐ ί
|
||||
REP ί η
|
||||
REP η ί
|
||||
REP ί ή
|
||||
REP ή ί
|
||||
REP ί υ
|
||||
REP υ ί
|
||||
REP ί ύ
|
||||
REP ύ ί
|
||||
REP ί ϋ
|
||||
REP ϋ ί
|
||||
REP ί ΰ
|
||||
REP ΰ ί
|
||||
REP ϊ ΐ
|
||||
REP ΐ ϊ
|
||||
REP ϊ η
|
||||
REP η ϊ
|
||||
REP ϊ ή
|
||||
REP ή ϊ
|
||||
REP ϊ υ
|
||||
REP υ ϊ
|
||||
REP ϊ ύ
|
||||
REP ύ ϊ
|
||||
REP ϊ ϋ
|
||||
REP ϋ ϊ
|
||||
REP ϊ ΰ
|
||||
REP ΰ ϊ
|
||||
REP ΐ η
|
||||
REP η ΐ
|
||||
REP ΐ ή
|
||||
REP ή ΐ
|
||||
REP ΐ υ
|
||||
REP υ ΐ
|
||||
REP ΐ ύ
|
||||
REP ύ ΐ
|
||||
REP ΐ ϋ
|
||||
REP ϋ ΐ
|
||||
REP ΐ ΰ
|
||||
REP ΰ ΐ
|
||||
REP η ή
|
||||
REP ή η
|
||||
REP η υ
|
||||
REP υ η
|
||||
REP η ύ
|
||||
REP ύ η
|
||||
REP η ϋ
|
||||
REP ϋ η
|
||||
REP η ΰ
|
||||
REP ΰ η
|
||||
REP ή υ
|
||||
REP υ ή
|
||||
REP ή ύ
|
||||
REP ύ ή
|
||||
REP ή ϋ
|
||||
REP ϋ ή
|
||||
REP ή ΰ
|
||||
REP ΰ ή
|
||||
REP υ ύ
|
||||
REP ύ υ
|
||||
REP υ ϋ
|
||||
REP ϋ υ
|
||||
REP υ ΰ
|
||||
REP ΰ υ
|
||||
REP ύ ϋ
|
||||
REP ϋ ύ
|
||||
REP ύ ΰ
|
||||
REP ΰ ύ
|
||||
REP ϋ ΰ
|
||||
REP ΰ ϋ
|
||||
REP ο ό
|
||||
REP ό ο
|
||||
REP ο ω
|
||||
REP ω ο
|
||||
REP ο ώ
|
||||
REP ώ ο
|
||||
REP ό ω
|
||||
REP ω ό
|
||||
REP ό ώ
|
||||
REP ώ ό
|
||||
REP ω ώ
|
||||
REP ώ ω
|
||||
REP έΰ έβ
|
||||
REP έΰ έυ
|
||||
REP έΰ έϋ
|
||||
REP έΰ εΰ
|
||||
REP έΰ εβ
|
||||
REP έΰ ευ
|
||||
REP έΰ εϋ
|
||||
REP έΰ εύ
|
||||
REP έβ έυ
|
||||
REP έβ έϋ
|
||||
REP έβ εΰ
|
||||
REP έβ εβ
|
||||
REP έβ ευ
|
||||
REP έβ εϋ
|
||||
REP έβ εύ
|
||||
REP έυ έβ
|
||||
REP έυ έϋ
|
||||
REP έυ εΰ
|
||||
REP έυ εβ
|
||||
REP έυ ευ
|
||||
REP έυ εϋ
|
||||
REP έυ εύ
|
||||
REP έϋ έβ
|
||||
REP έϋ έυ
|
||||
REP έϋ εΰ
|
||||
REP έϋ εβ
|
||||
REP έϋ ευ
|
||||
REP έϋ εϋ
|
||||
REP έϋ εύ
|
||||
REP έύ έβ
|
||||
REP έύ έυ
|
||||
REP έύ έϋ
|
||||
REP έύ εΰ
|
||||
REP έύ εβ
|
||||
REP έύ ευ
|
||||
REP έύ εϋ
|
||||
REP έύ εύ
|
||||
REP εΰ έβ
|
||||
REP εΰ έυ
|
||||
REP εΰ έϋ
|
||||
REP εΰ εβ
|
||||
REP εΰ ευ
|
||||
REP εΰ εϋ
|
||||
REP εΰ εύ
|
||||
REP εβ έβ
|
||||
REP εβ έυ
|
||||
REP εβ έϋ
|
||||
REP εβ εΰ
|
||||
REP εβ ευ
|
||||
REP εβ εϋ
|
||||
REP εβ εύ
|
||||
REP ευ έβ
|
||||
REP ευ έυ
|
||||
REP ευ έϋ
|
||||
REP ευ εΰ
|
||||
REP ευ εβ
|
||||
REP ευ εϋ
|
||||
REP ευ εύ
|
||||
REP εϋ έβ
|
||||
REP εϋ έυ
|
||||
REP εϋ έϋ
|
||||
REP εϋ εΰ
|
||||
REP εϋ εβ
|
||||
REP εϋ ευ
|
||||
REP εϋ εύ
|
||||
REP εύ έβ
|
||||
REP εύ έυ
|
||||
REP εύ έϋ
|
||||
REP εύ εΰ
|
||||
REP εύ εβ
|
||||
REP εύ ευ
|
||||
REP εύ εϋ
|
||||
REP έΐ έι
|
||||
REP έΐ έϊ
|
||||
REP έΐ εΐ
|
||||
REP έΐ εί
|
||||
REP έΐ ει
|
||||
REP έΐ εϊ
|
||||
REP έί έι
|
||||
REP έί έϊ
|
||||
REP έί εΐ
|
||||
REP έί εί
|
||||
REP έί ει
|
||||
REP έί εϊ
|
||||
REP έι έϊ
|
||||
REP έι εΐ
|
||||
REP έι εί
|
||||
REP έι ει
|
||||
REP έι εϊ
|
||||
REP έϊ έι
|
||||
REP έϊ εΐ
|
||||
REP έϊ εί
|
||||
REP έϊ ει
|
||||
REP έϊ εϊ
|
||||
REP εΐ έι
|
||||
REP εΐ έϊ
|
||||
REP εΐ εί
|
||||
REP εΐ ει
|
||||
REP εΐ εϊ
|
||||
REP εί έι
|
||||
REP εί έϊ
|
||||
REP εί εΐ
|
||||
REP εί ει
|
||||
REP εί εϊ
|
||||
REP ει έι
|
||||
REP ει έϊ
|
||||
REP ει εΐ
|
||||
REP ει εί
|
||||
REP ει εϊ
|
||||
REP εϊ έι
|
||||
REP εϊ έϊ
|
||||
REP εϊ εΐ
|
||||
REP εϊ εί
|
||||
REP εϊ ει
|
||||
REP άΐ άι
|
||||
REP άΐ άϊ
|
||||
REP άΐ αΐ
|
||||
REP άΐ αί
|
||||
REP άΐ αι
|
||||
REP άΐ αϊ
|
||||
REP άί άι
|
||||
REP άί άϊ
|
||||
REP άί αΐ
|
||||
REP άί αί
|
||||
REP άί αι
|
||||
REP άί αϊ
|
||||
REP άι άϊ
|
||||
REP άι αΐ
|
||||
REP άι αί
|
||||
REP άι αι
|
||||
REP άι αϊ
|
||||
REP άϊ άι
|
||||
REP άϊ αΐ
|
||||
REP άϊ αί
|
||||
REP άϊ αι
|
||||
REP άϊ αϊ
|
||||
REP αΐ άι
|
||||
REP αΐ άϊ
|
||||
REP αΐ αί
|
||||
REP αΐ αι
|
||||
REP αΐ αϊ
|
||||
REP αί άι
|
||||
REP αί άϊ
|
||||
REP αί αΐ
|
||||
REP αί αι
|
||||
REP αί αϊ
|
||||
REP αι άι
|
||||
REP αι άϊ
|
||||
REP αι αΐ
|
||||
REP αι αί
|
||||
REP αι αϊ
|
||||
REP αϊ άι
|
||||
REP αϊ άϊ
|
||||
REP αϊ αΐ
|
||||
REP αϊ αί
|
||||
REP αϊ αι
|
||||
REP άί έ
|
||||
REP άί ε
|
||||
REP άι έ
|
||||
REP άι ε
|
||||
REP έ άι
|
||||
REP έ αΐ
|
||||
REP έ αί
|
||||
REP έ αι
|
||||
REP έ αϊ
|
||||
REP έ ε
|
||||
REP αΐ έ
|
||||
REP αΐ ε
|
||||
REP αί έ
|
||||
REP αί ε
|
||||
REP αι έ
|
||||
REP αι ε
|
||||
REP αϊ έ
|
||||
REP αϊ ε
|
||||
REP ε άι
|
||||
REP ε έ
|
||||
REP ε αΐ
|
||||
REP ε αί
|
||||
REP ε αι
|
||||
REP ε αϊ
|
||||
REP ή ει
|
||||
REP ή οι
|
||||
REP ί ει
|
||||
REP ί οι
|
||||
REP εί η
|
||||
REP εί ι
|
||||
REP εί οι
|
||||
REP εί υ
|
||||
REP εί ή
|
||||
REP εί ί
|
||||
REP εί οί
|
||||
REP εί ύ
|
||||
REP ει ή
|
||||
REP ει ί
|
||||
REP ει η
|
||||
REP ει ι
|
||||
REP ει οί
|
||||
REP ει οι
|
||||
REP ει υ
|
||||
REP ει ύ
|
||||
REP η εί
|
||||
REP η ει
|
||||
REP η οί
|
||||
REP η οι
|
||||
REP ηβ ηυ
|
||||
REP ηυ ηβ
|
||||
REP ι εί
|
||||
REP ι ει
|
||||
REP ι οί
|
||||
REP ι οι
|
||||
REP κ κκ
|
||||
REP κκ κ
|
||||
REP λ λλ
|
||||
REP λλ λ
|
||||
REP μ μμ
|
||||
REP μμ μ
|
||||
REP οί ει
|
||||
REP οί η
|
||||
REP οί ι
|
||||
REP οί υ
|
||||
REP οι ή
|
||||
REP οι ί
|
||||
REP οι εί
|
||||
REP οι ει
|
||||
REP οι η
|
||||
REP οι ι
|
||||
REP οι υ
|
||||
REP οι ύ
|
||||
REP π ππ
|
||||
REP ππ π
|
||||
REP ρ ρρ
|
||||
REP ρρ ρ
|
||||
REP σ σσ
|
||||
REP σσ σ
|
||||
REP τ ττ
|
||||
REP ττ τ
|
||||
REP υ εί
|
||||
REP υ ει
|
||||
REP υ οί
|
||||
REP υ οι
|
||||
REP ύ ει
|
||||
REP ύ οι
|
||||
REP αυ αφ
|
||||
REP άυ αφ
|
||||
REP αύ αφ
|
||||
REP αυ άφ
|
||||
REP άυ άφ
|
||||
REP αύ άφ
|
||||
REP αφ αυ
|
||||
REP άφ αυ
|
||||
REP αφ αύ
|
||||
REP άφ αύ
|
||||
REP άφ αφ
|
||||
REP αφ άφ
|
||||
REP έι η
|
||||
REP έι ή
|
||||
REP έι ι
|
||||
REP έι ί
|
||||
REP ει ϊ
|
||||
REP έι ϊ
|
||||
REP εί ϊ
|
||||
REP ει ΐ
|
||||
REP έι ΐ
|
||||
REP εί ΐ
|
||||
REP έι οι
|
||||
REP έι οί
|
||||
REP έι υ
|
||||
REP έι ύ
|
||||
REP ει ϋ
|
||||
REP έι ϋ
|
||||
REP εί ϋ
|
||||
REP ει ΰ
|
||||
REP έι ΰ
|
||||
REP εί ΰ
|
||||
REP ευ εφ
|
||||
REP έυ εφ
|
||||
REP εύ εφ
|
||||
REP ευ έφ
|
||||
REP έυ έφ
|
||||
REP εύ έφ
|
||||
REP εφ ευ
|
||||
REP έφ ευ
|
||||
REP εφ εύ
|
||||
REP έφ εύ
|
||||
REP έφ εφ
|
||||
REP εφ έφ
|
||||
REP ή εί
|
||||
REP ή οί
|
||||
REP ϊ ει
|
||||
REP ΐ ει
|
||||
REP ί εί
|
||||
REP ϊ εί
|
||||
REP ΐ εί
|
||||
REP ϊ οι
|
||||
REP ΐ οι
|
||||
REP ί οί
|
||||
REP ϊ οί
|
||||
REP ΐ οί
|
||||
REP όι ει
|
||||
REP όι εί
|
||||
REP οί εί
|
||||
REP όι η
|
||||
REP όι ή
|
||||
REP οί ή
|
||||
REP όι ι
|
||||
REP όι ί
|
||||
REP οί ί
|
||||
REP οι ϊ
|
||||
REP όι ϊ
|
||||
REP οί ϊ
|
||||
REP οι ΐ
|
||||
REP όι ΐ
|
||||
REP οί ΐ
|
||||
REP όι οι
|
||||
REP οί οι
|
||||
REP οι οί
|
||||
REP όι οί
|
||||
REP όι υ
|
||||
REP όι ύ
|
||||
REP οί ύ
|
||||
REP οι ϋ
|
||||
REP όι ϋ
|
||||
REP οί ϋ
|
||||
REP οι ΰ
|
||||
REP όι ΰ
|
||||
REP οί ΰ
|
||||
REP όυ ου
|
||||
REP ού ου
|
||||
REP ου ού
|
||||
REP όυ ού
|
||||
REP ϋ ει
|
||||
REP ΰ ει
|
||||
REP ύ εί
|
||||
REP ϋ εί
|
||||
REP ΰ εί
|
||||
REP ϋ οι
|
||||
REP ΰ οι
|
||||
REP ύ οί
|
||||
REP ϋ οί
|
||||
REP ΰ οί
|
||||
|
||||
# prefix rules
|
||||
|
||||
|
||||
PFX A Y 1
|
||||
PFX A 0 α . # βάσιμος > αβάσιμος
|
||||
|
||||
PFX B Y 1
|
||||
PFX B 0 ξανα . # ζητώ > ξαναζητώ
|
||||
|
||||
PFX C Y 1
|
||||
PFX C 0 απο . # σύνθεση > αποσύνθεση
|
||||
|
||||
PFX D Y 1
|
||||
PFX D 0 κατα . # στροφή > καταστροφή
|
||||
|
||||
PFX E Y 1
|
||||
PFX E 0 παρα . # βλέπω > παραβλέπω
|
||||
|
||||
|
||||
# suffix rules
|
||||
|
||||
SFX F Y 4
|
||||
SFX F ώ ά . # αγαπώ > αγαπά
|
||||
SFX F ός ά . # καλός > καλά
|
||||
SFX F ό ά . # βουνό > βουνά
|
||||
SFX F άς ά . # σφουγγαράς > σφουγγαρά
|
||||
|
||||
SFX G Y 7
|
||||
SFX G ώ άς . # αγαπώ > αγαπάς
|
||||
SFX G 0 ς ά # καρδιά > καρδιάς
|
||||
SFX G ός ού . # ουρανός > ουρανού
|
||||
SFX G ό ού . # βουνό > βουνού
|
||||
SFX G ούς ού . # παππούς > παππού
|
||||
SFX G ω εις . # δένω > δένεις
|
||||
SFX G η εις . # σκέψη > σκέψεις
|
||||
|
||||
SFX H Y 3
|
||||
SFX H 0 ς [ώω] # Αργυρώ > Αργυρώς Δέσπω > Δέσπως
|
||||
SFX H ός ώς . # καλός > καλώς τελευταίος τελευταίως
|
||||
SFX H ής ώς . # # συνεχής > συνεχώς
|
||||
|
||||
SFX I Y 5
|
||||
SFX I ώ είς . # αγαπηθώ > αγαπηθείς
|
||||
SFX I ος α . # ωραίος > ωραία
|
||||
SFX I ο α . # βιβλίο > βιβλία
|
||||
SFX I ης α . # ζηλιάρης > ζηλιάρα
|
||||
SFX I ας α . # αγώνας > αγώνα
|
||||
|
||||
SFX J Y 5
|
||||
SFX J ώ εί . # αγαπηθώ > αγαπηθεί
|
||||
SFX J ός έ . # ουρανός > ουρανέ
|
||||
SFX J ές έ . # καφές > καφέ
|
||||
SFX J ύς ιούς . # βαθύς > βαθιούς
|
||||
SFX J ω οντας . # δένω > δένοντας
|
||||
|
||||
SFX K Y 4
|
||||
SFX K ώ ούμε . # αγαπώ > αγαπούμε
|
||||
SFX K ός οί . # ουρανός > ουρανοί
|
||||
SFX K ές έδες . # καφές > καφέδες
|
||||
SFX K 0 ς η # νίκη > νίκης
|
||||
|
||||
SFX L Y 5
|
||||
SFX L ός ών . # ουρανός > ουρανών
|
||||
SFX L ής ών . # νικητής > νικητών
|
||||
SFX L ά ών . # καρδιά > καρδιών
|
||||
SFX L ή ών . # ψυχή > ψυχών
|
||||
SFX L ό ών . # βουνό > βουνών
|
||||
|
||||
SFX M Y 4
|
||||
SFX M ώ ούν . # αγαπώ > αγαπούν
|
||||
SFX M ός ούς . # ουρανός > ουρανούς
|
||||
SFX M ώς ώτων . # καθεστώς > καθεστώτων
|
||||
SFX M ί ιού . # πουλί > πουλιού
|
||||
|
||||
SFX N Y 5
|
||||
SFX N ούς ούδων . # παππούς > παππούδων
|
||||
SFX N ας ες . # αγώνας > αγώνες
|
||||
SFX N α ες . # ώρα > ώρες
|
||||
SFX N η ες . # νίκη > νίκες
|
||||
SFX N ης ες . # ναύτης > ναύτες
|
||||
|
||||
SFX O Y 5
|
||||
SFX O ώ άμε . # αγαπώ > αγαπάμε
|
||||
SFX O ός ιά . # γλυκός > γλυκιά
|
||||
SFX O ής ιά . # σταχτής > σταχτιά
|
||||
SFX O ί ιά . # πουλί > πουλιά
|
||||
SFX O ύς ιά . # βαθύς > βαθιά
|
||||
|
||||
SFX P Y 4
|
||||
SFX P ώ άτε . # αγαπώ > αγαπάτε
|
||||
SFX P ός ότος . # γεγονός > γεγονότος
|
||||
SFX P ω ετε . # δένω > δένετε
|
||||
SFX P η εως . # σκέψη > σκέψεως
|
||||
|
||||
SFX Q Y 5
|
||||
SFX Q ώ άστε . # λυπώ > λυπάστε
|
||||
SFX Q ας ων . # αγώνας > αγώνων
|
||||
SFX Q ος ων . # δρόμος > δρόμων
|
||||
SFX Q ο ων . # σίδερο > σίδερων
|
||||
SFX Q ύς ύ . # βαθύς > βαθύ
|
||||
|
||||
|
||||
SFX R Y 4
|
||||
SFX R ώ ιέμαι . # αγαπώ > αγαπιέμαι
|
||||
SFX R ής άδες . # πραματευτής > πραματευτάδες
|
||||
SFX R άς άδες . # σφουγγαράς > σφουγγαράδες
|
||||
SFX R ω ομαι . # δένω > δένομαι
|
||||
|
||||
|
||||
SFX S Y 4
|
||||
SFX S ώ ιέσαι . # αγαπώ > αγαπιέσαι
|
||||
SFX S ής άδων . # πραματευτής > πραματευτάδων
|
||||
SFX S άς άδων . # σφουγγαράς > σφουγγαράδων
|
||||
SFX S ω εσαι . # δένω > δένεσαι
|
||||
|
||||
SFX T Y 4
|
||||
SFX T ώ άν . # αγαπώ > αγαπάν
|
||||
SFX T ός ότα . # γεγονός > γεγονότα
|
||||
SFX T ω ουν . # δένω > δένουν
|
||||
SFX T ας ατα . # κρέας > κρέατα
|
||||
|
||||
|
||||
SFX U Y 4
|
||||
SFX U ώ ιέται . # αγαπώ > αγαπιέται
|
||||
SFX U ής ήδες . # μπαλωματής > μπαλωματήδες
|
||||
SFX U ί ιών . # πουλί > πουλιών
|
||||
SFX U ύς ιών . # βαθύς > βαθιών
|
||||
|
||||
|
||||
SFX V Y 5
|
||||
SFX V ώ ιέστε . # αγαπώ > αγαπιέστε
|
||||
SFX V ούς ούδες . # παππούς > παππούδες
|
||||
SFX V ής ί . # σταχτής > σταχτί
|
||||
SFX V ω εστε . # δένω > δένεστε
|
||||
SFX V 0 τα μα # κύμα > κύματα
|
||||
|
||||
SFX W Y 5
|
||||
SFX W ώ ιούνται . # αγαπώ > αγαπιούνται
|
||||
SFX W ώς ώτα . # καθεστώς > καθεστώτα
|
||||
SFX W ω ονται . # δένω > δένονται
|
||||
SFX W 0 τος μα # κύμα > κύματος
|
||||
SFX W 0 ς ή # ψυχή > ψυχής
|
||||
|
||||
SFX X Y 5
|
||||
SFX X ώ ιόμουν . # αγαπώ > αγαπιόμουν
|
||||
SFX X ός ή . # καλός > καλή
|
||||
SFX X ος η . # δάσος > δάση
|
||||
SFX X ής ή . # νικητής > νικητή
|
||||
SFX X ης η . # ναύτης > ναύτη
|
||||
|
||||
SFX Y Y 4
|
||||
SFX Y ώ ιόσουν . # αγαπώ > αγαπιόσουν
|
||||
SFX Y όμουν όσουν . # δενόμουν > δενόσουν
|
||||
SFX Y ω ουμε . # δένω > δένουμε
|
||||
SFX Y η εων . # σκέψη > σκέψεων
|
||||
|
||||
|
||||
SFX Z Y 3
|
||||
SFX Z ώ ιόταν . # αγαπώ > αγαπιόταν
|
||||
SFX Z μουν ταν όμουν # δενόμουν > δενόταν
|
||||
SFX Z ς δων ές # καφές > καφέδων
|
||||
|
||||
SFX a Y 4
|
||||
SFX a ώ ιόμαστε . # αγαπώ > αγαπιόμαστε
|
||||
SFX a ός ό . # καλός > καλό
|
||||
SFX a ω αμε . # δένω > δέναμε
|
||||
SFX a 0 με α # αγαπούσα > αγαπούσαμε
|
||||
|
||||
|
||||
SFX b Y 4
|
||||
SFX b ώ ιόσαστε . # αγαπώ > αγαπιόσαστε
|
||||
SFX b ω ατε . # δένω > δένατε
|
||||
SFX b με τε αμε # αγαπήσαμε > αγαπήσατε
|
||||
SFX b 0 τε α # αγαπούσα > αγαπούσατε
|
||||
|
||||
SFX c Y 3
|
||||
SFX c ώ ιόνταν . # αγαπώ > αγαπιόνταν
|
||||
SFX c όμουν όνταν . # θυμόμουν > θυμόνταν
|
||||
SFX c ω ονταν . # δένω > δένονταν
|
||||
|
||||
SFX d Y 4
|
||||
SFX d ώ ιούνταν . # αγαπώ > αγαπιούνταν
|
||||
SFX d ω ου . # δένω > δένου
|
||||
SFX d 0 υ ο # σίδερο > σίδερου
|
||||
SFX d ς υ ος # δρόμος > δρόμου
|
||||
|
||||
SFX e Y 4
|
||||
SFX e ώ ούνται . # λυπώ > λυπούνται
|
||||
SFX e ω ε . # δένω > δένε
|
||||
SFX e ος ε . # δρόμος > δρόμε
|
||||
SFX e α ε . # αγαπούσα > αγαπούσε
|
||||
|
||||
SFX f Y 3
|
||||
SFX f ώ άσαι . # λυπώ > λυπάσαι
|
||||
SFX f ί ιού . # πουλί > πουλιού
|
||||
SFX f ς δες ης # νοικοκύρης > νοικοκύρηδες
|
||||
|
||||
SFX g Y 4
|
||||
SFX g ώ άται . # λυπώ > λυπάται
|
||||
SFX g ός ότων . # γεγονός γεγονότων
|
||||
SFX g ης ηδων . # νοικοκύρης > νοικοκύρηδων
|
||||
SFX g α αν . # αγαπούσα > αγαπούσαν
|
||||
|
||||
SFX h Y 4
|
||||
SFX h ώ ούμαστε . # λυπώ > λυπούμαστε
|
||||
SFX h ώς ώτος . # καθεστώς > καθεστώτος
|
||||
SFX h όμουν όμαστε . # δενόμουν > δενόμαστε
|
||||
SFX h α ας . # ώρα > ώρας
|
||||
|
||||
SFX i Y 4
|
||||
SFX i ώ ώντας . # αγαπώ > αγαπώντας
|
||||
SFX i ής ές . # νικητής > νικητές
|
||||
SFX i ά ές . # καρδιά > καρδιές
|
||||
SFX i ή ές . # ψυχή > ψυχές
|
||||
|
||||
SFX j Y 3
|
||||
SFX j ης ικο . # ζηλιάρης > ζηλιάρικο
|
||||
SFX j ω τε . # δέσω > δέστε
|
||||
SFX j ος ους . # δρόμος > δρόμους
|
||||
|
||||
SFX k Y 3
|
||||
SFX k ω εται . # δένω > δένεται
|
||||
SFX k ος οι . # δρόμος > δρόμοι
|
||||
SFX k ας ατος . # κρέας > κρέατος
|
||||
|
||||
SFX l Y 4
|
||||
SFX l υ ια . # βράδυ > βράδια
|
||||
SFX l ι ια . # καλοκαίρι > καλοκαίρια
|
||||
SFX l ώ ούμαι . # λυπώ > λυπούμαι
|
||||
SFX l ής ήδων . # μπαλωματής > μπαλωματήδων
|
||||
|
||||
SFX m Y 3
|
||||
SFX m ώ άει . # αγαπώ > αγαπάει
|
||||
SFX m όμουν όσαστε . # δενόμουν > δενόσαστε
|
||||
SFX m ω ει . # δένω > δένει
|
||||
|
||||
SFX n Y 3
|
||||
SFX n ύς ιοί . # βαθύς > βαθιοί
|
||||
SFX n ώ είτε . # αγαπηθώ > αγαπηθείτε
|
||||
SFX n ος ο . # δρόμος > δρόμο
|
||||
@@ -0,0 +1,54 @@
|
||||
name : el_GR 0.9 version of the greek dictionary
|
||||
dd/mm/yyyy: 14/03/2015
|
||||
License : MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
contact : Steve Stavropoulos
|
||||
URL : http://elspell.math.upatras.gr
|
||||
|
||||
Added about 240259 new words in this release (courtesy of Γιώργος Γέγος, with the kind help of Nick Demou).
|
||||
|
||||
Steve Stavropoulos
|
||||
|
||||
==================
|
||||
|
||||
name : el_GR (v.003) Enhanced Version
|
||||
dd/mm/yyyy: 08/02/2002
|
||||
License : GNU GPL
|
||||
contact : evris@source.gr
|
||||
URL : ispell.source.gr
|
||||
-----------------------------------------------
|
||||
This dictionary is based on greek wordlist and affixes used by ispell
|
||||
(which based on older work of Mitalas and Seraskeris). Many thanks to
|
||||
Voula Sanida (voulariba@source.gr) and Panayotis Vryonis (vrypan@yassou.net)
|
||||
for their help in converting the affix rules and to all the people that
|
||||
contributed words to the vocabulary.
|
||||
Evripidis Papakostas (evris@source.gr)
|
||||
|
||||
==================
|
||||
|
||||
The new Licence:
|
||||
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms of
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
of those above. If you wish to allow use of your version of this file only
|
||||
under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
use your version of this file under the terms of the MPL, indicate your
|
||||
decision by deleting the provisions above and replace them with the notice
|
||||
and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file under
|
||||
the terms of any one of the MPL, the GPL or the LGPL.
|
||||
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
SET UTF-8
|
||||
TRY esianrtolcdugmphbyfvkwzESIANRTOLCDUGMPHBYFVKWZ'
|
||||
ICONV 1
|
||||
ICONV ’ '
|
||||
NOSUGGEST !
|
||||
|
||||
# ordinal numbers
|
||||
COMPOUNDMIN 1
|
||||
# only in compounds: 1th, 2th, 3th
|
||||
ONLYINCOMPOUND c
|
||||
# compound rules:
|
||||
# 1. [0-9]*1[0-9]th (10th, 11th, 12th, 56714th, etc.)
|
||||
# 2. [0-9]*[02-9](1st|2nd|3rd|[4-9]th) (21st, 22nd, 123rd, 1234th, etc.)
|
||||
COMPOUNDRULE 2
|
||||
COMPOUNDRULE n*1t
|
||||
COMPOUNDRULE n*mp
|
||||
WORDCHARS 0123456789
|
||||
|
||||
PFX A Y 1
|
||||
PFX A 0 re .
|
||||
|
||||
PFX I Y 1
|
||||
PFX I 0 in .
|
||||
|
||||
PFX U Y 1
|
||||
PFX U 0 un .
|
||||
|
||||
PFX C Y 1
|
||||
PFX C 0 de .
|
||||
|
||||
PFX E Y 1
|
||||
PFX E 0 dis .
|
||||
|
||||
PFX F Y 1
|
||||
PFX F 0 con .
|
||||
|
||||
PFX K Y 1
|
||||
PFX K 0 pro .
|
||||
|
||||
SFX V N 2
|
||||
SFX V e ive e
|
||||
SFX V 0 ive [^e]
|
||||
|
||||
SFX N Y 3
|
||||
SFX N e ion e
|
||||
SFX N y ication y
|
||||
SFX N 0 en [^ey]
|
||||
|
||||
SFX X Y 3
|
||||
SFX X e ions e
|
||||
SFX X y ications y
|
||||
SFX X 0 ens [^ey]
|
||||
|
||||
SFX H N 2
|
||||
SFX H y ieth y
|
||||
SFX H 0 th [^y]
|
||||
|
||||
SFX Y Y 1
|
||||
SFX Y 0 ly .
|
||||
|
||||
SFX G Y 2
|
||||
SFX G e ing e
|
||||
SFX G 0 ing [^e]
|
||||
|
||||
SFX J Y 2
|
||||
SFX J e ings e
|
||||
SFX J 0 ings [^e]
|
||||
|
||||
SFX D Y 4
|
||||
SFX D 0 d e
|
||||
SFX D y ied [^aeiou]y
|
||||
SFX D 0 ed [^ey]
|
||||
SFX D 0 ed [aeiou]y
|
||||
|
||||
SFX T N 4
|
||||
SFX T 0 st e
|
||||
SFX T y iest [^aeiou]y
|
||||
SFX T 0 est [aeiou]y
|
||||
SFX T 0 est [^ey]
|
||||
|
||||
SFX R Y 4
|
||||
SFX R 0 r e
|
||||
SFX R y ier [^aeiou]y
|
||||
SFX R 0 er [aeiou]y
|
||||
SFX R 0 er [^ey]
|
||||
|
||||
SFX Z Y 4
|
||||
SFX Z 0 rs e
|
||||
SFX Z y iers [^aeiou]y
|
||||
SFX Z 0 ers [aeiou]y
|
||||
SFX Z 0 ers [^ey]
|
||||
|
||||
SFX S Y 4
|
||||
SFX S y ies [^aeiou]y
|
||||
SFX S 0 s [aeiou]y
|
||||
SFX S 0 es [sxzh]
|
||||
SFX S 0 s [^sxzhy]
|
||||
|
||||
SFX P Y 3
|
||||
SFX P y iness [^aeiou]y
|
||||
SFX P 0 ness [aeiou]y
|
||||
SFX P 0 ness [^y]
|
||||
|
||||
SFX M Y 1
|
||||
SFX M 0 's .
|
||||
|
||||
SFX B Y 3
|
||||
SFX B 0 able [^aeiou]
|
||||
SFX B 0 able ee
|
||||
SFX B e able [^aeiou]e
|
||||
|
||||
SFX L Y 1
|
||||
SFX L 0 ment .
|
||||
|
||||
REP 90
|
||||
REP a ei
|
||||
REP ei a
|
||||
REP a ey
|
||||
REP ey a
|
||||
REP ai ie
|
||||
REP ie ai
|
||||
REP alot a_lot
|
||||
REP are air
|
||||
REP are ear
|
||||
REP are eir
|
||||
REP air are
|
||||
REP air ere
|
||||
REP ere air
|
||||
REP ere ear
|
||||
REP ere eir
|
||||
REP ear are
|
||||
REP ear air
|
||||
REP ear ere
|
||||
REP eir are
|
||||
REP eir ere
|
||||
REP ch te
|
||||
REP te ch
|
||||
REP ch ti
|
||||
REP ti ch
|
||||
REP ch tu
|
||||
REP tu ch
|
||||
REP ch s
|
||||
REP s ch
|
||||
REP ch k
|
||||
REP k ch
|
||||
REP f ph
|
||||
REP ph f
|
||||
REP gh f
|
||||
REP f gh
|
||||
REP i igh
|
||||
REP igh i
|
||||
REP i uy
|
||||
REP uy i
|
||||
REP i ee
|
||||
REP ee i
|
||||
REP j di
|
||||
REP di j
|
||||
REP j gg
|
||||
REP gg j
|
||||
REP j ge
|
||||
REP ge j
|
||||
REP s ti
|
||||
REP ti s
|
||||
REP s ci
|
||||
REP ci s
|
||||
REP k cc
|
||||
REP cc k
|
||||
REP k qu
|
||||
REP qu k
|
||||
REP kw qu
|
||||
REP o eau
|
||||
REP eau o
|
||||
REP o ew
|
||||
REP ew o
|
||||
REP oo ew
|
||||
REP ew oo
|
||||
REP ew ui
|
||||
REP ui ew
|
||||
REP oo ui
|
||||
REP ui oo
|
||||
REP ew u
|
||||
REP u ew
|
||||
REP oo u
|
||||
REP u oo
|
||||
REP u oe
|
||||
REP oe u
|
||||
REP u ieu
|
||||
REP ieu u
|
||||
REP ue ew
|
||||
REP ew ue
|
||||
REP uff ough
|
||||
REP oo ieu
|
||||
REP ieu oo
|
||||
REP ier ear
|
||||
REP ear ier
|
||||
REP ear air
|
||||
REP air ear
|
||||
REP w qu
|
||||
REP qu w
|
||||
REP z ss
|
||||
REP ss z
|
||||
REP shun tion
|
||||
REP shun sion
|
||||
REP shun cion
|
||||
REP size cise
|
||||