Compare commits
583 Commits
release-2.
...
release-2.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c7736dd422 | ||
![]() |
5ab38a9de8 | ||
![]() |
2afed45400 | ||
![]() |
3c8326d3b6 | ||
![]() |
2d0713ca1d | ||
![]() |
afaca423cc | ||
![]() |
ff08abe177 | ||
![]() |
159be479cc | ||
![]() |
f3066b07b5 | ||
![]() |
aa58636832 | ||
![]() |
5d1a584eac | ||
![]() |
7ee9abd646 | ||
![]() |
4d977a8d46 | ||
![]() |
5c891724c4 | ||
![]() |
185af18790 | ||
![]() |
fa6da97cf9 | ||
![]() |
9503d9b024 | ||
![]() |
de7b6ca553 | ||
![]() |
1788078594 | ||
![]() |
3caf473424 | ||
![]() |
5435bd2354 | ||
![]() |
1cdb22a7e3 | ||
![]() |
95a9424ae7 | ||
![]() |
902196a176 | ||
![]() |
dbfef8665b | ||
![]() |
b3d8f2400f | ||
![]() |
c12ae58868 | ||
![]() |
4b77bb57ad | ||
![]() |
a6b1d308c2 | ||
![]() |
b483f09d11 | ||
![]() |
bbb5ad31c4 | ||
![]() |
3d4c1fe7da | ||
![]() |
7a2c0d5d5a | ||
![]() |
39d86c5f61 | ||
![]() |
e2cdbbb184 | ||
![]() |
e83f9245a9 | ||
![]() |
52f25c44eb | ||
![]() |
1ed565d8e5 | ||
![]() |
10801f111b | ||
![]() |
efe1655834 | ||
![]() |
7f71e3981e | ||
![]() |
8113f8df63 | ||
![]() |
62f579fdbe | ||
![]() |
1d4454c6eb | ||
![]() |
310433fb54 | ||
![]() |
c0520146e9 | ||
![]() |
35f6675d86 | ||
![]() |
9494b15bd5 | ||
![]() |
3b82120923 | ||
![]() |
b9a0adc311 | ||
![]() |
1e21ac3d79 | ||
![]() |
864bb8285e | ||
![]() |
208e988c70 | ||
![]() |
5cbcfb8efb | ||
![]() |
107b833703 | ||
![]() |
e2208a484e | ||
![]() |
5ab7c91d49 | ||
![]() |
a91ad3c9c7 | ||
![]() |
385f950c2b | ||
![]() |
4667a84939 | ||
![]() |
5af0cacf0c | ||
![]() |
bceb00d35f | ||
![]() |
51068294f1 | ||
![]() |
bcdf4e42fa | ||
![]() |
214bb13843 | ||
![]() |
7998395532 | ||
![]() |
35aee18112 | ||
![]() |
8ddbdd34ed | ||
![]() |
66a5e479c7 | ||
![]() |
8f5bd2bc9f | ||
![]() |
5be2624cb1 | ||
![]() |
f9684d662d | ||
![]() |
9373796dd5 | ||
![]() |
2634517cdb | ||
![]() |
121a636b4e | ||
![]() |
aad42d4a57 | ||
![]() |
c8b8518608 | ||
![]() |
0c40a8ab05 | ||
![]() |
b9241ad5ad | ||
![]() |
d354d7133e | ||
![]() |
a1157c78b2 | ||
![]() |
fb8d52e6e0 | ||
![]() |
80c42cae1a | ||
![]() |
f242fce5fd | ||
![]() |
6223514704 | ||
![]() |
8fb7445e20 | ||
![]() |
3172c6859d | ||
![]() |
58be573d02 | ||
![]() |
82f7bdb9cc | ||
![]() |
b41c39b7ce | ||
![]() |
9e4958e96a | ||
![]() |
65091f7cb9 | ||
![]() |
75b758bb1f | ||
![]() |
5028ff3ddd | ||
![]() |
a246f76ec3 | ||
![]() |
eeec067481 | ||
![]() |
3ee44ad0c2 | ||
![]() |
c38ff5b0b7 | ||
![]() |
e51dc6758c | ||
![]() |
7bb32643fa | ||
![]() |
3172e1f530 | ||
![]() |
7778877fa7 | ||
![]() |
b4f6745251 | ||
![]() |
4fd7f16911 | ||
![]() |
ca29b5d7fc | ||
![]() |
79d5a635a4 | ||
![]() |
7f615c580e | ||
![]() |
967dbbda89 | ||
![]() |
452c0411d2 | ||
![]() |
32d3ed2144 | ||
![]() |
4efae21f1d | ||
![]() |
c43efd7fb3 | ||
![]() |
93b1dbd931 | ||
![]() |
571896b888 | ||
![]() |
9f5d31b2b1 | ||
![]() |
c01f7102e6 | ||
![]() |
df39e46c84 | ||
![]() |
7f12bb5dfb | ||
![]() |
ca762139f6 | ||
![]() |
67f41ad991 | ||
![]() |
621ec11ae3 | ||
![]() |
de3135c43b | ||
![]() |
faed0ba45a | ||
![]() |
2104e4e2ce | ||
![]() |
907a17a73b | ||
![]() |
a1a9f8bc7e | ||
![]() |
a9a3bb74e7 | ||
![]() |
b7de3fcebd | ||
![]() |
0b70b857b9 | ||
![]() |
9c8a957dd7 | ||
![]() |
cf65e4d77d | ||
![]() |
762962270c | ||
![]() |
a2067af4ea | ||
![]() |
2f4f06ca8b | ||
![]() |
56dba2cb10 | ||
![]() |
f824357358 | ||
![]() |
778cfff4b3 | ||
![]() |
8ee762695b | ||
![]() |
7dd9680e26 | ||
![]() |
92661e1d53 | ||
![]() |
09d5665ff9 | ||
![]() |
c5dfe623c8 | ||
![]() |
2665e2ef39 | ||
![]() |
dfecdb1956 | ||
![]() |
5a82aee76b | ||
![]() |
4f07426010 | ||
![]() |
9e575e45b7 | ||
![]() |
39b32bf1cd | ||
![]() |
54131001b0 | ||
![]() |
f8134b1a62 | ||
![]() |
13927599c8 | ||
![]() |
0d85d0a777 | ||
![]() |
0da83694e0 | ||
![]() |
9bdac4d1e3 | ||
![]() |
00c92d6d61 | ||
![]() |
9628a9e156 | ||
![]() |
f1bfcb4822 | ||
![]() |
87879b6738 | ||
![]() |
a4ff7047d1 | ||
![]() |
da599da36d | ||
![]() |
335e7366fd | ||
![]() |
a993b2b3f1 | ||
![]() |
b81c8d29ba | ||
![]() |
08a08e4b24 | ||
![]() |
8b5886cc6e | ||
![]() |
22b3d8d594 | ||
![]() |
17efa04257 | ||
![]() |
e71f144c40 | ||
![]() |
5e7cafb8c0 | ||
![]() |
d01385a7ac | ||
![]() |
ac80dd78a8 | ||
![]() |
061f1000cf | ||
![]() |
c36fed3081 | ||
![]() |
75002906aa | ||
![]() |
a451cf2d5f | ||
![]() |
ca10c0ab09 | ||
![]() |
80d76ae038 | ||
![]() |
f699ee1363 | ||
![]() |
bd97a4bd7c | ||
![]() |
ec3b749ef6 | ||
![]() |
44fc86e7da | ||
![]() |
2cd940e7c7 | ||
![]() |
cc6d371667 | ||
![]() |
8fcc33b375 | ||
![]() |
e44b570c3d | ||
![]() |
8576847a99 | ||
![]() |
c9fc9373e5 | ||
![]() |
ae46d449e5 | ||
![]() |
fe57cef756 | ||
![]() |
3affb38ba2 | ||
![]() |
a0dc6aa173 | ||
![]() |
a357a690ce | ||
![]() |
bce7959332 | ||
![]() |
eef6f600c9 | ||
![]() |
a3822c5aa8 | ||
![]() |
eeaa1e83a9 | ||
![]() |
387fb93b5b | ||
![]() |
d470059c56 | ||
![]() |
2e382fa88c | ||
![]() |
e1e7e782d5 | ||
![]() |
6f314502f6 | ||
![]() |
3284d7a8e6 | ||
![]() |
609ea7b4c2 | ||
![]() |
7e8d21145e | ||
![]() |
c31b5f1f97 | ||
![]() |
11fe685a6b | ||
![]() |
1127947f52 | ||
![]() |
789b2cf326 | ||
![]() |
b9394f2ba2 | ||
![]() |
7ab206ebac | ||
![]() |
0beb9fff73 | ||
![]() |
65b8d0c24d | ||
![]() |
715fe46f45 | ||
![]() |
8209f341fb | ||
![]() |
0d4b55ca32 | ||
![]() |
ae7362706f | ||
![]() |
4ca648a79b | ||
![]() |
4ca0b14300 | ||
![]() |
4386b6c2c4 | ||
![]() |
61246f81c7 | ||
![]() |
70f2bfdd9a | ||
![]() |
5f23cbc470 | ||
![]() |
2e0c8f848f | ||
![]() |
f8add0ee04 | ||
![]() |
f23051c1fd | ||
![]() |
60636af544 | ||
![]() |
2e685ea851 | ||
![]() |
b61a06350f | ||
![]() |
c9ece4695e | ||
![]() |
4805690dbe | ||
![]() |
8ec1621334 | ||
![]() |
682377ff66 | ||
![]() |
656beed82b | ||
![]() |
ba4a0fac77 | ||
![]() |
b719bfaecb | ||
![]() |
4e1366bf0d | ||
![]() |
b67938aa3f | ||
![]() |
f4c29c07bf | ||
![]() |
63a0f4bf11 | ||
![]() |
a8a2ba188d | ||
![]() |
a0d685bfe2 | ||
![]() |
a3041b7f9f | ||
![]() |
83a2ae7ad3 | ||
![]() |
830a6250c6 | ||
![]() |
f0e23ab1fc | ||
![]() |
5b07c488b0 | ||
![]() |
f61bccf700 | ||
![]() |
4fd10bc5f5 | ||
![]() |
c1a72f075d | ||
![]() |
5c4450f3cd | ||
![]() |
bb606e0b2f | ||
![]() |
eed86aa9e1 | ||
![]() |
338d4fd31e | ||
![]() |
58a36f7cfd | ||
![]() |
8b436f70d6 | ||
![]() |
223fd4f0ba | ||
![]() |
2e51e69cc9 | ||
![]() |
bbac79c030 | ||
![]() |
607bba4625 | ||
![]() |
1a0cc3215c | ||
![]() |
f0981c81c8 | ||
![]() |
472604d1b0 | ||
![]() |
781d33b869 | ||
![]() |
8db8841c9c | ||
![]() |
6e3b570be4 | ||
![]() |
defd77b94c | ||
![]() |
c09294df2f | ||
![]() |
cc97ee86df | ||
![]() |
10d6dd5a23 | ||
![]() |
29e79dc54d | ||
![]() |
982390f074 | ||
![]() |
963d73af4e | ||
![]() |
bdd8cbb1d8 | ||
![]() |
80bd232054 | ||
![]() |
c2da227254 | ||
![]() |
e846c67bfa | ||
![]() |
475c7094ab | ||
![]() |
4434566d85 | ||
![]() |
6bd557d22c | ||
![]() |
4832a24ac5 | ||
![]() |
b9a3890dd5 | ||
![]() |
4cf9de6515 | ||
![]() |
994c798264 | ||
![]() |
119bda1595 | ||
![]() |
bf73c47bc5 | ||
![]() |
ea99f44893 | ||
![]() |
4ec1fd3968 | ||
![]() |
0b9e25ee65 | ||
![]() |
73a9985599 | ||
![]() |
a65f7bfa65 | ||
![]() |
72cc1eb4d4 | ||
![]() |
ed7ae32a69 | ||
![]() |
54b53f3aba | ||
![]() |
2f7728f987 | ||
![]() |
f3a93af242 | ||
![]() |
5a4ad2f822 | ||
![]() |
c669240037 | ||
![]() |
ce4fd8429e | ||
![]() |
cc532d95da | ||
![]() |
c800a0a6b5 | ||
![]() |
5675c045ae | ||
![]() |
e16ca862f4 | ||
![]() |
29e757bb3a | ||
![]() |
822f1a9557 | ||
![]() |
7acfb27a1f | ||
![]() |
83d6731fa9 | ||
![]() |
de4f0272c1 | ||
![]() |
df50a875df | ||
![]() |
5f814f23b4 | ||
![]() |
98ec373f8c | ||
![]() |
0bbeab9ad2 | ||
![]() |
ed4c711ef5 | ||
![]() |
fc33702b81 | ||
![]() |
70c79f31c3 | ||
![]() |
82dc2103b5 | ||
![]() |
529ab304b4 | ||
![]() |
53919446d4 | ||
![]() |
1052cd019b | ||
![]() |
4f87819abf | ||
![]() |
b94ecb2383 | ||
![]() |
c00d83dee9 | ||
![]() |
34052ce8f9 | ||
![]() |
0a0c8948ee | ||
![]() |
0cc9283275 | ||
![]() |
6b2e9f057b | ||
![]() |
3a1fc9ec77 | ||
![]() |
e4399412b6 | ||
![]() |
37650d8156 | ||
![]() |
b4fa164dc3 | ||
![]() |
6148e6b192 | ||
![]() |
057743a779 | ||
![]() |
530ba2a0bd | ||
![]() |
977b2bda7c | ||
![]() |
76eb93ba1a | ||
![]() |
ae3c50c074 | ||
![]() |
31017602fc | ||
![]() |
ef7e2abdaf | ||
![]() |
a6abedd67d | ||
![]() |
9824d86a3c | ||
![]() |
1eac3d1700 | ||
![]() |
48585bb049 | ||
![]() |
843e49a5a8 | ||
![]() |
db01276f1d | ||
![]() |
772028106e | ||
![]() |
0cd5253857 | ||
![]() |
eaf321facb | ||
![]() |
81ecb5c7c8 | ||
![]() |
3b3a452df6 | ||
![]() |
65b1e29414 | ||
![]() |
a6e3b9afac | ||
![]() |
a7792701a2 | ||
![]() |
846372e48b | ||
![]() |
1597007ea1 | ||
![]() |
dbceed21f5 | ||
![]() |
3254dae59f | ||
![]() |
12881dd4c4 | ||
![]() |
35ec93ccb1 | ||
![]() |
cb159ed00d | ||
![]() |
e5b8b41373 | ||
![]() |
492814a56e | ||
![]() |
d639712303 | ||
![]() |
f5d1c8a679 | ||
![]() |
aea3d4be7a | ||
![]() |
8d1fd7ee8e | ||
![]() |
a98a002d57 | ||
![]() |
fb874695c9 | ||
![]() |
63457c034f | ||
![]() |
daff6dce4c | ||
![]() |
94c7c5cebe | ||
![]() |
f2c4901dd0 | ||
![]() |
95d8eb9714 | ||
![]() |
62165445fe | ||
![]() |
6b12371f50 | ||
![]() |
38cb4ccbd3 | ||
![]() |
8ccaaae085 | ||
![]() |
6f7ae4770a | ||
![]() |
5aa348a574 | ||
![]() |
7b8fa49482 | ||
![]() |
789cf654d0 | ||
![]() |
a300a6094e | ||
![]() |
37b09e70b0 | ||
![]() |
530fbfc9b4 | ||
![]() |
73c312ec1a | ||
![]() |
318a959470 | ||
![]() |
f9cc98791a | ||
![]() |
263eb3c632 | ||
![]() |
52b3926f92 | ||
![]() |
af3755bf91 | ||
![]() |
419d719ab8 | ||
![]() |
3877cf9ab8 | ||
![]() |
912056a364 | ||
![]() |
165b33a94e | ||
![]() |
12fff1b966 | ||
![]() |
128eba7ec3 | ||
![]() |
5bb370df0e | ||
![]() |
6431343ad7 | ||
![]() |
bd292076e3 | ||
![]() |
ce0ddbe517 | ||
![]() |
5451bb185e | ||
![]() |
057cf3648e | ||
![]() |
80d5c5d85c | ||
![]() |
671a997092 | ||
![]() |
f2fbfdf017 | ||
![]() |
1ea7340111 | ||
![]() |
7b38ea4151 | ||
![]() |
c4ed12bbd1 | ||
![]() |
c32b352ec1 | ||
![]() |
9b2565dff9 | ||
![]() |
f833f26212 | ||
![]() |
66a7082b5c | ||
![]() |
cc3a6350a5 | ||
![]() |
9202ce8757 | ||
![]() |
c0e4f126de | ||
![]() |
44ca0a4904 | ||
![]() |
64ddf393aa | ||
![]() |
a60615a2d8 | ||
![]() |
d9fa9c3566 | ||
![]() |
5115b8739e | ||
![]() |
854fb4acc0 | ||
![]() |
07ef81fd95 | ||
![]() |
17e39f56dd | ||
![]() |
040e94cab7 | ||
![]() |
93563365ac | ||
![]() |
c287879e55 | ||
![]() |
537c73d548 | ||
![]() |
ad3f5f6e20 | ||
![]() |
a468404ab5 | ||
![]() |
6d7fba1a6c | ||
![]() |
5c734a80f8 | ||
![]() |
edfee5193c | ||
![]() |
9900651c55 | ||
![]() |
948adbe350 | ||
![]() |
ade0ba794c | ||
![]() |
5494c33a89 | ||
![]() |
c8f5cab636 | ||
![]() |
4a8a40a6f2 | ||
![]() |
70d41cdc79 | ||
![]() |
aec99ed14f | ||
![]() |
9a645b4b19 | ||
![]() |
bea3c33a46 | ||
![]() |
e082c02630 | ||
![]() |
291b94bef0 | ||
![]() |
f119be3ed5 | ||
![]() |
9034094cf9 | ||
![]() |
c48766aeb7 | ||
![]() |
28a6afeb02 | ||
![]() |
c8d0f5a104 | ||
![]() |
3c396257de | ||
![]() |
a9be841d2d | ||
![]() |
7d0581a7a5 | ||
![]() |
4efeb66b73 | ||
![]() |
3b05f8b4b4 | ||
![]() |
6b4f09d740 | ||
![]() |
f1b02c1280 | ||
![]() |
3d546a4c5d | ||
![]() |
19368bcefa | ||
![]() |
dbbf26449c | ||
![]() |
8f28804f8c | ||
![]() |
b7edfea4ce | ||
![]() |
23b2f94c40 | ||
![]() |
8f40f41fef | ||
![]() |
33f868144b | ||
![]() |
b2545bb709 | ||
![]() |
3b6e1e82d9 | ||
![]() |
7710c88797 | ||
![]() |
4d5001d18d | ||
![]() |
0f4f108eb5 | ||
![]() |
f0d0bb7170 | ||
![]() |
66157da5c2 | ||
![]() |
13493e1afe | ||
![]() |
f6bfacda2c | ||
![]() |
f7a86b5484 | ||
![]() |
66cd3f8184 | ||
![]() |
3a237c93be | ||
![]() |
4c34066727 | ||
![]() |
1960008c83 | ||
![]() |
deffbd6321 | ||
![]() |
53927c9aa0 | ||
![]() |
d84346616a | ||
![]() |
e1183dbc0b | ||
![]() |
602f1574ca | ||
![]() |
358f7d16da | ||
![]() |
e4006d6175 | ||
![]() |
949b4ce4e9 | ||
![]() |
cbafac8ea9 | ||
![]() |
e4bf116ce8 | ||
![]() |
bccdad4b1b | ||
![]() |
9b372b3cce | ||
![]() |
98d0c00f85 | ||
![]() |
9d2f2230ee | ||
![]() |
81c6958428 | ||
![]() |
f976eda6a9 | ||
![]() |
fe8d5a3528 | ||
![]() |
240c3508fe | ||
![]() |
1065f5fb86 | ||
![]() |
2b37986007 | ||
![]() |
22d0c4a241 | ||
![]() |
dd47ce6767 | ||
![]() |
5c80ce42e0 | ||
![]() |
adb727d282 | ||
![]() |
e17ca355ae | ||
![]() |
b80940ac4f | ||
![]() |
1eca139db9 | ||
![]() |
25278beb2f | ||
![]() |
5922ffff62 | ||
![]() |
ff084e9681 | ||
![]() |
86e5d219d2 | ||
![]() |
b78e0a54ed | ||
![]() |
4bfacb8b91 | ||
![]() |
e9ad58a373 | ||
![]() |
09c48539ad | ||
![]() |
3693ecdd30 | ||
![]() |
ddc66e6005 | ||
![]() |
fd0b1f8931 | ||
![]() |
1a4f638ff6 | ||
![]() |
77239db3c5 | ||
![]() |
0ea59c8d58 | ||
![]() |
54e2a8c7fe | ||
![]() |
245a8e0a3a | ||
![]() |
51e474c893 | ||
![]() |
81d3e64518 | ||
![]() |
95da161be3 | ||
![]() |
8618f13b7a | ||
![]() |
e24e7578f2 | ||
![]() |
a03ad3de23 | ||
![]() |
9bd40a9b79 | ||
![]() |
b4b61b9b7d | ||
![]() |
5656fe9a9b | ||
![]() |
fb79146ae6 | ||
![]() |
ba27191b2a | ||
![]() |
dc87aa3d5c | ||
![]() |
83cf3aebab | ||
![]() |
dedd9bd03c | ||
![]() |
ab36a358b7 | ||
![]() |
6ea97f09cf | ||
![]() |
5f7822d202 | ||
![]() |
6a87225dd0 | ||
![]() |
b6f56c0812 | ||
![]() |
c4ce2a2549 | ||
![]() |
41650da297 | ||
![]() |
74c61e6805 | ||
![]() |
e8dd7bbcc9 | ||
![]() |
335d012d55 | ||
![]() |
17fc58840a | ||
![]() |
0e8c55b9f5 | ||
![]() |
d581f653c6 | ||
![]() |
48dbaf05ae | ||
![]() |
540da69d61 | ||
![]() |
06efd64a80 | ||
![]() |
62d872984b | ||
![]() |
1dd11dd8f8 | ||
![]() |
2ce375d8eb | ||
![]() |
8ed0e58d63 | ||
![]() |
660a6929fd | ||
![]() |
44f6c972d4 | ||
![]() |
6a6077bf1d | ||
![]() |
30234a4e78 | ||
![]() |
dc9edf7538 | ||
![]() |
92574458d0 | ||
![]() |
c35ef9ad15 | ||
![]() |
4059bcc0fa | ||
![]() |
1840d1c49f | ||
![]() |
cbd948f6f3 | ||
![]() |
454c093033 | ||
![]() |
45eaf7ce58 | ||
![]() |
04b7af4df5 | ||
![]() |
8c6978be82 | ||
![]() |
6c9e7156f7 | ||
![]() |
bc89845523 | ||
![]() |
9ffe9c2006 | ||
![]() |
1d598d7772 | ||
![]() |
7f576ccc82 | ||
![]() |
d5da8a6277 | ||
![]() |
a297204b27 | ||
![]() |
e0182bb03e | ||
![]() |
ca5bf5e9d7 | ||
![]() |
5475d730ff | ||
![]() |
7796520580 | ||
![]() |
340500c351 | ||
![]() |
043d33ff91 | ||
![]() |
baf991b342 | ||
![]() |
dc47e90126 | ||
![]() |
67e3f9e686 |
14
AUTHORS
@@ -3,11 +3,19 @@ Author:
|
||||
|
||||
Contributors:
|
||||
* Stefanos Antaris <santaris@csd.auth.gr>
|
||||
* Mohammad Dib <mdib@qbittorrent.org>
|
||||
* Mirco Chinelli <infinity89@fastwebmail.it>
|
||||
* Ishan Arora <ishan@qbittorrent.org>
|
||||
* Arnaud Demaizière <arnaud@qbittorrent.org>
|
||||
* Grigis Gaëtan <cipher16@gmail.com>
|
||||
* Christian Kandeler <zambesi@users.sourceforge.net>
|
||||
* Silvan Scherrer <silvan.scherrer@aroa.ch>
|
||||
|
||||
Code from other projects:
|
||||
* files src/qtsingleapp/*
|
||||
copyright: Nokia Corporation
|
||||
license: LGPL
|
||||
|
||||
* files src/ico.cpp src/ico.h
|
||||
copyright: Malte Starostik <malte@kde.org>
|
||||
license: LGPL
|
||||
@@ -59,11 +67,13 @@ Images Authors:
|
||||
Translations authors:
|
||||
* files: src/lang/*.ts
|
||||
copyright:
|
||||
- Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)
|
||||
- Brazilian: Nick Marinho (nickmarinho@gmail.com)
|
||||
- Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net)
|
||||
- Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)
|
||||
- Catalan: Francisco Luque Contreras (frannoe@ya.com)
|
||||
- Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com)
|
||||
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com)
|
||||
- Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
|
||||
- Czech: Jirka Vilim (web@tets.cz)
|
||||
- Danish: Mathias Nielsen (comoneo@gmail.com)
|
||||
- Dutch: Joost Schipper (heavyjoost@users.sourceforge.net)
|
||||
@@ -86,5 +96,5 @@ Translations authors:
|
||||
- Spanish: Francisco Luque Contreras (frannoe@ya.com)
|
||||
- Swedish: Daniel Nylander (po@danielnylander.se)
|
||||
- Turkish: Hasan Yilmaz (iletisim@hedefturkce.com)
|
||||
- Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net)
|
||||
- Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) and Oleh Prypin (blaxpirit@gmail.com)
|
||||
license: GPLv2
|
||||
|
50
Changelog
@@ -1,3 +1,53 @@
|
||||
* Tue Jul 27 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.3.0
|
||||
- FEATURE: Simplified torrent root folder renaming/truncating (< v2.3.0 is no longer forward compatible)
|
||||
- FEATURE: Remember previous save paths in torrent addition dialog
|
||||
- FEATURE: Max number of half-open connections can now be edited
|
||||
- FEATURE: Added support for strict super seeding
|
||||
- FEATURE: The user can force listening on a particular network interface
|
||||
- FEATURE: Added cookie support for RSS feeds
|
||||
- FEATURE: User can force tracker reannounce
|
||||
- FEATURE: Added "No action" setting for double-click action
|
||||
- FEATURE: Several torrents can be moved at once
|
||||
- FEATURE: Added error state for torrents (error is displayed in a tooltip)
|
||||
- FEATURE: Added filter for paused/error torrents
|
||||
- FEATURE: Add Check/Uncheck all feature in Web UI
|
||||
- FEATURE: Search engine can now be disabled
|
||||
- FEATURE: Torrents can be automatically paused once they reach a given ratio
|
||||
- FEATURE: Several files can now be disabled at once
|
||||
- FEATURE: Added "Select All/None" buttons to files list
|
||||
- FEATURE: Added support for BitComet links (bc://bt/...)
|
||||
- BUGFIX: Hide seeding torrents files priorities in Web UI
|
||||
- BUGFIX: The user can disable permanently recursive torrent download
|
||||
- BUGFIX: Peer Exchange status is now correctly reported
|
||||
- BUGFIX: Use an INI file instead of the registry on Windows (More reliable)
|
||||
- BUGFIX: Removed client spoofing feature to avoid tracker blacklisting
|
||||
- COSMETIC: Display peers country name in tooltip
|
||||
- COSMETIC: Display number of torrents in transfers tab label
|
||||
- COSMETIC: Simplified program preferences
|
||||
- COSMETIC: Fix naming of actions opening new dialogs (use Name...)
|
||||
|
||||
* Sun Mar 14 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.0
|
||||
- FEATURE: User can set alternative speed limits for fast toggling
|
||||
- FEATURE: Bandwidth scheduler (automatically use alternative speed limits for a given period)
|
||||
- FEATURE: Added "Added/Completed On" columns to transfer list
|
||||
- FEATURE: Added "Upload/Download limit" columns to transfer list
|
||||
- FEATURE: Torrent files can be exported to a given directory
|
||||
- FEATURE: Outgoing ports range can be customized (for QoS)
|
||||
- FEATURE: User can choose to apply transfer limits on LAN too
|
||||
- FEATURE: User can choose to include the protocol overhead in transfer limits
|
||||
- FEATURE: Torrents can be automatically rechecked on completion
|
||||
- FEATURE: If 2 torrents have the same hash, add new trackers/URL seeds to the existing torrent
|
||||
- FEATURE: Trackers can be added from Web UI
|
||||
- FEATURE: Global transfer information are displayed in the new Web UI status bar
|
||||
- FEATURE: Allow to change the priority of several files at once
|
||||
- FEATURE: Support for multiple scan folders (Patch by Christian Kandeler)
|
||||
- BUGFIX: Only one log window can be opened at a time
|
||||
- BUGFIX: Optimized RSS module memory usage
|
||||
- BUGFIX: Consider HTTP downloads >1MB as invalid .torrent files and abort
|
||||
- BUGFIX: Fix Web UI authentication with some browsers
|
||||
- BUGFIX: Set Web UI ban period to 1 hour
|
||||
- COSMETIC: Improved style management
|
||||
|
||||
* Mon Jan 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.0
|
||||
- FEATURE: Graphical User Interface can be disabled at compilation time (headless running)
|
||||
- FEATURE: Torrents can be labeled/categorized
|
||||
|
14
INSTALL
@@ -12,11 +12,15 @@ qBittorrent - A BitTorrent client in C++ / Qt4
|
||||
Dependencies:
|
||||
- Qt >= 4.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED)
|
||||
- pkg-config executable
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x)
|
||||
-> http://www.libtorrent.net
|
||||
Be careful: another library (the one used by rTorrent) uses a similar name.
|
||||
|
||||
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
|
||||
- libboost 1.34.x (libboost-filesystem, libboost-thread, libboost-date-time) + libasio
|
||||
or
|
||||
- libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-thread, libboost-date-time)
|
||||
|
||||
- python >= 2.3 (needed by search engine)
|
||||
* Run time only dependency
|
||||
@@ -38,9 +42,11 @@ qBittorrent - A BitTorrent client in C++ / Qt4
|
||||
will install and execute qBittorrent hopefully without any problems.
|
||||
|
||||
Dependencies:
|
||||
- Qt >= 4.4.0 (libqt-devel, libqtcore, libqtnetwork, libqtxml)
|
||||
- Qt >= 4.4.0 (libqt-devel, libqtcore, libqtnetwork)
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.0 REQUIRED, >= v0.15.0 ADVISED)
|
||||
- pkg-config executable
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED)
|
||||
-> http://www.libtorrent.net
|
||||
Be careful: another library (the one used by rTorrent) uses a similar name.
|
||||
|
||||
|
62
README.os2
Normal file
@@ -0,0 +1,62 @@
|
||||
qBittorrent - A BitTorrent client in Qt4
|
||||
------------------------------------------
|
||||
|
||||
This is the eComStation (OS/2) qBittorrent part of the readme. See also README for more general information.
|
||||
|
||||
|
||||
Building qBittorrent
|
||||
********************
|
||||
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
- gcc based build env (recommended gcc v4.4.2 or greater)
|
||||
|
||||
- Qt4 for eCS (OS/2) dev package (see http://svn.netlabs.org/qt4 for more information)
|
||||
|
||||
- libtorrent-rasterbar for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
|
||||
|
||||
- boost for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
|
||||
|
||||
|
||||
How to build
|
||||
============
|
||||
|
||||
First you need to create the conf.pri file in the same dir as this readme.os2 is.
|
||||
the conf.pri file has the following content:
|
||||
|
||||
##### conf.pri content beginn #####
|
||||
PREFIX = .
|
||||
BINDIR = ./bin
|
||||
INCDIR = ./include
|
||||
LIBDIR = ./lib
|
||||
DATADIR = ./share
|
||||
|
||||
CONFIG += staticlib
|
||||
INCLUDEPATH += x:/trees/libtorrent/trunk/include
|
||||
LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \
|
||||
-Lx:/trees/boost/trunk/stage/lib \
|
||||
-Lx:/trees/openssl \
|
||||
-Lx:/extras/lib
|
||||
##### conf.pri content end #####
|
||||
|
||||
Of course all the above path references have to be adjusted to your build env.
|
||||
|
||||
It should now be easy to build qBittorrent:
|
||||
|
||||
Simply type:
|
||||
$ qmake
|
||||
|
||||
Followed by:
|
||||
$ make
|
||||
|
||||
If all works fine you should get a working qbittorrent executable.
|
||||
|
||||
If you have any question regarding the eCS (OS/2) port of qBittorrent you can meet me (_diver) on IRC:
|
||||
#netlabs on irc.freenode.net
|
||||
|
||||
------------------------------------------
|
||||
Silvan Scherrer <silvan.scherrer@aroa.ch>
|
||||
|
||||
|
@@ -1,6 +1,4 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
include(conf.pri)
|
||||
|
||||
SUBDIRS += src
|
||||
|
||||
|
@@ -6,6 +6,9 @@
|
||||
<dep type='qt4'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='pkg-config'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libtorrent-rasterbar'>
|
||||
<required/>
|
||||
</dep>
|
||||
@@ -16,4 +19,6 @@
|
||||
</dep>
|
||||
<dep type='geoip-database'>
|
||||
</dep>
|
||||
<dep type='qtsingleapplication'>
|
||||
</dep>
|
||||
</qconf>
|
||||
|
@@ -11,10 +11,14 @@ public:
|
||||
qc_geoip_database(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "GeoIP Database (optional)"; }
|
||||
QString shortname() const { return "GeoIP Database"; }
|
||||
QString checkString() const {
|
||||
if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
|
||||
return "";
|
||||
return ConfObj::checkString();
|
||||
}
|
||||
bool exec() {
|
||||
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
printf("\nNot Required");
|
||||
return true;
|
||||
if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
#ifdef Q_WS_X11
|
||||
if(!conf->getenv("QC_WITH_GEOIP_DATABASE_EMBEDDED").isEmpty()) {
|
||||
|
@@ -2,14 +2,39 @@
|
||||
-----BEGIN QCMOD-----
|
||||
name: libboost
|
||||
arg: with-libboost-inc=[path], Path to libboost include files
|
||||
arg: with-libboost-lib=[path], Path to libboost library files
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
#include <boost/version.hpp>
|
||||
class qc_libboost : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libboost(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "libboost"; }
|
||||
QString shortname() const { return "libboost"; }
|
||||
QString findBoostLib(QString path, QString lib) const {
|
||||
QString name;
|
||||
QDir libDir(path);
|
||||
QStringList filters;
|
||||
filters << "libboost_"+lib+"*-mt*.so";
|
||||
QStringList result = libDir.entryList(filters, QDir::Files);
|
||||
if(!result.empty()) {
|
||||
name = result.first().mid(3);
|
||||
// Remove .so
|
||||
name.chop(3);
|
||||
} else {
|
||||
// Fall back to non -mt boost lib
|
||||
filters.clear();
|
||||
filters << "libboost_"+lib+"*.so";
|
||||
result = libDir.entryList(filters, QDir::Files);
|
||||
if(!result.empty()) {
|
||||
name = result.first().mid(3);
|
||||
// Remove .so
|
||||
name.chop(3);
|
||||
}
|
||||
}
|
||||
return name;
|
||||
}
|
||||
bool exec(){
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBBOOST_INC");
|
||||
@@ -51,6 +76,43 @@ public:
|
||||
}
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
// Find library
|
||||
s = conf->getenv("QC_WITH_LIBBOOST_LIB");
|
||||
QStringList required_libs;
|
||||
#if BOOST_VERSION >= 103500
|
||||
required_libs << "system";
|
||||
#endif
|
||||
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
// Not required by nox
|
||||
required_libs << "filesystem" << "thread";
|
||||
}
|
||||
QStringList libDirs;
|
||||
libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/";
|
||||
foreach(const QString& lib, required_libs) {
|
||||
if(!s.isEmpty()) {
|
||||
QString detected_name = findBoostLib(s, lib);
|
||||
if(detected_name.isEmpty()) {
|
||||
printf("Could not find boost %s library!\n", qPrintable(lib));
|
||||
return false;
|
||||
} else {
|
||||
conf->addLib("-l"+detected_name);
|
||||
}
|
||||
} else {
|
||||
bool found = false;
|
||||
foreach(const QString& libDir, libDirs) {
|
||||
QString detected_name = findBoostLib(libDir, lib);
|
||||
if(!detected_name.isEmpty()) {
|
||||
conf->addLib("-l"+detected_name);
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
printf("Could not find boost %s library!\n", qPrintable(lib));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@@ -10,10 +10,14 @@ public:
|
||||
qc_libnotify(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "libnotify >= 0.4.2 (optional)"; }
|
||||
QString shortname() const { return "libnotify"; }
|
||||
QString checkString() const {
|
||||
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
|
||||
return "";
|
||||
return ConfObj::checkString();
|
||||
}
|
||||
bool exec(){
|
||||
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
printf("\nNot Required");
|
||||
return true;
|
||||
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
QStringList incs;
|
||||
QString req_ver = "0.4.2";
|
||||
@@ -36,10 +40,21 @@ public:
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
QStringList incs3;
|
||||
QString req_ver3 = "2.0";
|
||||
QString version3, libs3, other3;
|
||||
if(conf->findPkgConfig("gtk+-2.0", mode, req_ver3, &version3, &incs3, &libs3, &other3)) {
|
||||
for(int n = 0; n < incs3.count(); ++n)
|
||||
conf->addIncludePath(incs3[n]);
|
||||
if(!libs3.isEmpty())
|
||||
conf->addLib(libs3);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@@ -13,19 +13,15 @@ public:
|
||||
bool exec(){
|
||||
QStringList incs;
|
||||
QString req_ver = "0.14.4";
|
||||
QString adv_ver = "0.15.0";
|
||||
QString version, libs, other;
|
||||
VersionMode mode = VersionMin;
|
||||
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other))
|
||||
return false;
|
||||
for(int n = 0; n < incs.count(); ++n)
|
||||
conf->addIncludePath(incs[n]);
|
||||
if(!libs.isEmpty())
|
||||
conf->addLib(libs);
|
||||
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
|
||||
printf("\nWarning: libtorrent-rasterbar v%s was detected.\nSome feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
|
||||
else
|
||||
conf->addDefine("LIBTORRENT_0_15");
|
||||
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
conf->addLib("-lcrypto");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
16
qcm/pkg-config.qcm
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: pkg-config
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
#include <QProcess>
|
||||
class qc_pkg_config : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_pkg_config(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "pkg-config executable"; }
|
||||
QString shortname() const { return "pkg-config"; }
|
||||
bool exec(){
|
||||
return !conf->findProgram("pkg-config").isEmpty();
|
||||
}
|
||||
};
|
@@ -15,10 +15,6 @@ public:
|
||||
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
conf->addDefine("DISABLE_GUI");
|
||||
}
|
||||
if(QT_VERSION >= 0x040500) {
|
||||
conf->addDefine("QT_4_5");
|
||||
}
|
||||
return(QT_VERSION >= 0x040400);
|
||||
|
||||
}
|
||||
};
|
||||
|
514
src/GUI.cpp
120
src/GUI.h
@@ -37,13 +37,10 @@
|
||||
#include "ui_mainwindow.h"
|
||||
#include "qtorrenthandle.h"
|
||||
|
||||
enum TabIndex{TAB_TRANSFER, TAB_SEARCH, TAB_RSS};
|
||||
|
||||
class Bittorrent;
|
||||
class QTimer;
|
||||
class downloadFromURL;
|
||||
class SearchEngine;
|
||||
class QLocalServer;
|
||||
class QCloseEvent;
|
||||
class RSSImp;
|
||||
class QShortcut;
|
||||
@@ -55,43 +52,31 @@ class TransferListFiltersWidget;
|
||||
class QSplitter;
|
||||
class PropertiesWidget;
|
||||
class StatusBar;
|
||||
class consoleDlg;
|
||||
class about;
|
||||
class createtorrent;
|
||||
class downloadFromURL;
|
||||
class HidableTabWidget;
|
||||
|
||||
class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
// Bittorrent
|
||||
Bittorrent *BTSession;
|
||||
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
|
||||
// GUI related
|
||||
QTimer *guiUpdater;
|
||||
QTabWidget *tabs;
|
||||
StatusBar *status_bar;
|
||||
QPointer<options_imp> options;
|
||||
QPointer<QSystemTrayIcon> systrayIcon;
|
||||
QPointer<QTimer> systrayCreator;
|
||||
QMenu *myTrayIconMenu;
|
||||
TransferListWidget *transferList;
|
||||
TransferListFiltersWidget *transferListFilters;
|
||||
PropertiesWidget *properties;
|
||||
bool displaySpeedInTitle;
|
||||
bool force_exit;
|
||||
// Keyboard shortcuts
|
||||
QShortcut *switchSearchShortcut;
|
||||
QShortcut *switchSearchShortcut2;
|
||||
QShortcut *switchTransferShortcut;
|
||||
QShortcut *switchRSSShortcut;
|
||||
// Widgets
|
||||
QAction *prioSeparator;
|
||||
QAction *prioSeparator2;
|
||||
QSplitter *hSplitter;
|
||||
QSplitter *vSplitter;
|
||||
// Search
|
||||
SearchEngine *searchEngine;
|
||||
// RSS
|
||||
QPointer<RSSImp> rssWidget;
|
||||
// Misc
|
||||
QLocalServer *localServer;
|
||||
public:
|
||||
// Construct / Destruct
|
||||
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
|
||||
~GUI();
|
||||
// Methods
|
||||
QWidget* getCurrentTabWidget() const;
|
||||
TransferListWidget* getTransferList() const { return transferList; }
|
||||
QMenu* getTrayIconMenu();
|
||||
|
||||
public slots:
|
||||
void trackerAuthenticationRequired(QTorrentHandle& h);
|
||||
void setTabText(int index, QString text) const;
|
||||
void showNotificationBaloon(QString title, QString msg) const;
|
||||
void downloadFromURLList(const QStringList& urls);
|
||||
void updateAltSpeedsBtn(bool alternative);
|
||||
void updateNbTorrents(unsigned int nb_downloading, unsigned int nb_seeding, unsigned int nb_active, unsigned int nb_inactive, unsigned int nb_paused);
|
||||
|
||||
protected slots:
|
||||
// GUI related slots
|
||||
@@ -103,8 +88,6 @@ protected slots:
|
||||
void on_actionWebsite_triggered() const;
|
||||
void on_actionBugReport_triggered() const;
|
||||
void on_actionShow_console_triggered();
|
||||
void readParamsOnSocket();
|
||||
void acceptConnection();
|
||||
void balloonClicked();
|
||||
void writeSettings();
|
||||
void readSettings();
|
||||
@@ -126,38 +109,67 @@ protected slots:
|
||||
void on_actionOpen_triggered();
|
||||
void updateGUI();
|
||||
void loadPreferences(bool configure_session=true);
|
||||
void processParams(const QString& params);
|
||||
void processParams(const QStringList& params);
|
||||
void addTorrent(QString path);
|
||||
void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker);
|
||||
void addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker);
|
||||
void processDownloadedFiles(QString path, QString url);
|
||||
void finishedTorrent(QTorrentHandle& h) const;
|
||||
void askRecursiveTorrentDownloadConfirmation(QTorrentHandle &h);
|
||||
// Options slots
|
||||
void on_actionOptions_triggered();
|
||||
void optionsSaved();
|
||||
// HTTP slots
|
||||
void on_actionDownload_from_URL_triggered();
|
||||
|
||||
|
||||
public slots:
|
||||
void trackerAuthenticationRequired(QTorrentHandle& h);
|
||||
void setTabText(int index, QString text) const;
|
||||
void showNotificationBaloon(QString title, QString msg) const;
|
||||
void downloadFromURLList(const QStringList& urls);
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *);
|
||||
void showEvent(QShowEvent *);
|
||||
bool event(QEvent * event);
|
||||
void displayRSSTab(bool enable);
|
||||
void displaySearchTab(bool enable);
|
||||
|
||||
public:
|
||||
// Construct / Destruct
|
||||
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
|
||||
~GUI();
|
||||
// Methods
|
||||
int getCurrentTabIndex() const;
|
||||
QPoint screenCenter() const;
|
||||
TransferListWidget* getTransferList() const { return transferList; }
|
||||
private:
|
||||
// Bittorrent
|
||||
Bittorrent *BTSession;
|
||||
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
|
||||
// GUI related
|
||||
QTimer *guiUpdater;
|
||||
HidableTabWidget *tabs;
|
||||
StatusBar *status_bar;
|
||||
QPointer<options_imp> options;
|
||||
QPointer<consoleDlg> console;
|
||||
QPointer<about> aboutDlg;
|
||||
QPointer<createtorrent> createTorrentDlg;
|
||||
QPointer<downloadFromURL> downloadFromURLDialog;
|
||||
QPointer<QSystemTrayIcon> systrayIcon;
|
||||
QPointer<QTimer> systrayCreator;
|
||||
QPointer<QMenu> myTrayIconMenu;
|
||||
TransferListWidget *transferList;
|
||||
TransferListFiltersWidget *transferListFilters;
|
||||
PropertiesWidget *properties;
|
||||
bool displaySpeedInTitle;
|
||||
bool force_exit;
|
||||
// Keyboard shortcuts
|
||||
QShortcut *switchSearchShortcut;
|
||||
QShortcut *switchSearchShortcut2;
|
||||
QShortcut *switchTransferShortcut;
|
||||
QShortcut *switchRSSShortcut;
|
||||
// Widgets
|
||||
QAction *prioSeparator;
|
||||
QAction *prioSeparator2;
|
||||
QSplitter *hSplitter;
|
||||
QSplitter *vSplitter;
|
||||
// Search
|
||||
QPointer<SearchEngine> searchEngine;
|
||||
// RSS
|
||||
QPointer<RSSImp> rssWidget;
|
||||
|
||||
private slots:
|
||||
void on_actionSearch_engine_triggered();
|
||||
void on_actionRSS_Reader_triggered();
|
||||
void on_actionSpeed_in_title_bar_triggered();
|
||||
void on_actionTop_tool_bar_triggered();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
BIN
src/Icons/3-state-checkbox.gif
Normal file
After Width: | Height: | Size: 322 B |
BIN
src/Icons/L.gif
Normal file
After Width: | Height: | Size: 66 B |
BIN
src/Icons/flags/saoudi_arabia.png
Normal file
After Width: | Height: | Size: 546 B |
Before Width: | Height: | Size: 1.3 KiB |
BIN
src/Icons/oxygen/chronometer.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
src/Icons/oxygen/cookies.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
src/Icons/oxygen/gear32.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 860 B |
Before Width: | Height: | Size: 1.2 KiB |
BIN
src/Icons/qBitTorrentDocument.icns
Normal file
@@ -1,8 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Categories=Qt;Network;P2P;
|
||||
Comment=V2.1.0
|
||||
Comment=V2.3.0
|
||||
Exec=qbittorrent %f
|
||||
GenericName=Bittorrent client
|
||||
GenericName[ar]=العميل Bittorrent
|
||||
GenericName[bg]=Торент клиент
|
||||
GenericName[cs]=Bittorrent klient
|
||||
GenericName[de]=Bittorren Client
|
||||
@@ -10,6 +11,7 @@ GenericName[el]=Bittorrent πελάτης
|
||||
GenericName[es]=Cliente Bittorrent
|
||||
GenericName[fi]=Bittorrent-ohjelma
|
||||
GenericName[fr]=Client Bittorrent
|
||||
GenericName[hr]=Bittorrent klijent
|
||||
GenericName[hu]=Bittorrent kliens
|
||||
GenericName[it]=Client Bittorrent
|
||||
GenericName[ja]=Bittorrent クライアント
|
||||
|
BIN
src/Icons/qbittorrent_mac.icns
Normal file
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 2.9 KiB |