Commit graph

9945 commits

Author SHA1 Message Date
Chocobo1
b19153287b
Expose WebUI ban counter to users 2020-03-24 16:14:36 +02:00
Chocobo1
544d3f9025
Close document properly after writing
Closing document explicitly is recommended by MDN:
https://developer.mozilla.org/en-US/docs/Web/API/Document/write
2020-03-24 16:14:35 +02:00
Nick Korotysh
7a463299ea
Inherit text color for filter list elements
Filter list (left side panel) in WebUI is implemented using <a> tags,
CSS defines default style for all <a> elements, and specific style for
filter list elements. Default style for <a> elements sets color, and
this color also used in list. This is looks not so well. So lets just
inherit text color from parent element, and as so as it is not set, so
default text color will be used.
This makes filter list looks like other UI elemets, making all UI more
consistent (like in desktop app).
2020-03-24 16:14:34 +02:00
Tester798
bbaa3a94c5
Fix portable mode
Try to fix portable mode bug. Closes #11706, #11178, #7765.
2020-03-24 16:14:33 +02:00
an0n666
d2834bd7fd
Keep legacy default for random port 2020-03-24 16:14:33 +02:00
Chocobo1
534549142e
Unify singleton pattern in Profile class
1. Use unified function names `initInstance()` and `freeInstance()` and
make them public.
2. Add `freeInstance()` to avoid noise from memory leak detectors.
3. Let `instance()`return a pointer directly to avoid unnecessary
indirections when invoking functions.
2020-03-24 16:14:32 +02:00
Vladimir Golovnev (Glassez)
5e73afa04e
Handle HTTP redirections manually
Qt doesn't support Magnet protocol so we need to handle all redirections
manually to allow redirections to Magnet URIs.
2020-03-24 16:14:31 +02:00
Vladimir Golovnev (Glassez)
6ad1ba1d35
Keep legacy defaults for existing users 2020-03-24 16:14:31 +02:00
Vladimir Golovnev (Glassez)
f978b3a002
Perform settings upgrade for existing user only 2020-03-24 16:14:30 +02:00
Nick Korotysh
2f70d273b4
Use SVG image for WebUI favicon
This will allow browsers to get high quality icon with required
resolution instead of resizing some small raster image.
Browsers can have even more benefit from it. For example, Firefox uses
high resolution icon to display it in "Top Sites" instead of page
preview.

Nothing changes for browsers which doesn't support SVG favicons, older
PNG icon will be used in such case.
2020-03-24 16:14:29 +02:00
Chocobo1
2289bf4005
Fix singleton class ownership
We shouldn't allow Qt parent ownership in here.
2020-03-24 16:14:28 +02:00
NotTsunami
0cd4900e92
Remove redundant null checks
Attempting to delete a null pointer is a noop in C++.

Closes #2864.

[1] https://isocpp.org/wiki/faq/freestore-mgmt#delete-handles-null
2020-03-24 16:14:28 +02:00
Chocobo1
0ad8dc39e5
Let ReverseResolution always return/emit a result 2020-03-24 16:14:27 +02:00
Chocobo1
60d133ca6d
Speed up lookup time
By adding another variable we can get O(1) lookup time instead of O(n).
Fix up 5f415c292d.
2020-03-24 16:14:26 +02:00
Chocobo1
000a726e20
Manually abort lookup on class destruction
Some lookup might take longer so instead of waiting them, we abort them
manually.
2020-03-24 16:14:26 +02:00
Chocobo1
4006818520
Improve ReverseResolution class
* Use QHostAddress type for IP
* Avoid double lookup
* Use larger cache size
2020-03-24 16:14:25 +02:00
thalieht
756bc3da54
Show any multiple connections from the same IP in peer list
The uniqueness of peers is now determined by their
IP, port and connection type (uTP etc.) instead of just their IP
2020-03-24 16:14:24 +02:00
Chocobo1
fbb01a36e6
Use systematic approach to generate hash
The basic idea is to hash each class member and then mix them with xor
operation.
However the `seed` must be handled with care, it should only be
introduced once when mixing the hashes of each class member, otherwise
under some circumstances the `seed` might xor with itself and thus break
the intended effect.
2020-03-24 16:14:24 +02:00
Chocobo1
21922ed3b4
Revise qHash function
Instead of xor and narrowing the integers ourselves, now we let qHash()
from Qt do the job properly.
2020-03-24 16:14:23 +02:00
Chocobo1
43fe5214d2
Use faster hash function
qHash(QString) will need to hash/loop through all the data while the new
code will only need one memcpy() and a few bit manipulations.
2020-03-24 16:14:22 +02:00
Vladimir Golovnev (Glassez)
ab6079e0d5
Track settings changed event in TransferListModel 2020-03-24 16:14:22 +02:00
Vladimir Golovnev (Glassez)
dc0b1ce227
Fix hide zero values 2020-03-24 16:14:21 +02:00
Sakib-Abrar
1db12e4421
Show "∞" instead of " -1" in Preferences 2020-03-24 16:14:20 +02:00
Vladimir Golovnev (Glassez)
b160b56306
Redesign torrent startup handling 2020-03-24 16:14:20 +02:00
NotTsunami
0e6627b0f6
CMake: Fix WebUI checks
When the CMake system was last revamped, the configure variable was
changed from WEBUI to DISABLE_WEBUI, but we are still checking
against WEBUI. This behavior was changed in fa770871e9
2020-03-24 16:14:19 +02:00
NotTsunami
33390bf463
CMake: Remove glibc version detection
If we were conditionally enabling _BSD_SOURCE or _SVID_SOURCE, I can
understand trying to play nice with the compiler and only pass as
needed, however this is not the case and glibc <= 2.19 will not care
that we are passing _DEFAULT_SOURCE. This removes an unnecessary
build step and gives us less to maintain from a build system
perspective.

Small cosmetic changes to MacroQbtCompilerSettings are included.
2020-03-24 16:14:18 +02:00
NotTsunami
2a6ddffb22
CMake: Remove duplicate MSVC check
As of this commit, L98 of winconf.cmake already checks for MSVC
before winconf-msvc calls this macro, so we are guaranteed to be
satisfy the check.
2020-03-24 16:14:17 +02:00
Prince Gupta
06c09f0113
Reorganize UI theme selection 2020-03-24 16:14:17 +02:00
Chocobo1
db258f7461
Migrate away from deprecated settings
Libtorrent has deprecated `upnp_ignore_nonrouters` in
https://github.com/arvidn/libtorrent/pull/4251
2020-03-24 16:14:16 +02:00
NotTsunami
81cec1930b
CMake: Remove additional debugging compiler flags
Our previous setup lead to two unintended consequences:

* Debug flags were included in both release and debug builds instead
of just debug builds
* Clang doesn't support -gX (where X is the level of debugging
optimization), but we checked for -Og support instead

This commit avoids both of these scenarios by removing the additional
flags altogether. Partial resolution to #11856.
2020-03-24 16:14:15 +02:00
NotTsunami
7444227c9a
WebUI: Use correct operators in logical expressions
As suggested in https://github.com/qbittorrent/qBittorrent/pull/11825#discussion_r365557626
2020-03-24 16:14:15 +02:00
FranciscoPombal
07196571e8
Add piece_extent_affinity to AdvancedSettings
Expose option in WebUI settings and WebAPI.

Requires WebAPI version bump.

Closes #11436.
2020-03-24 16:14:14 +02:00
Denis
b083bd78e7
WebUI: Fix first row renaming in files tab
Ids started from zero and first row converts to false.
Closes #11826.
2020-03-24 16:14:13 +02:00
Vladimir Golovnev (Glassez)
e75a65d798
Fix Transfer list sorting 2020-03-24 16:14:13 +02:00
Chocobo1
e1a10a0375
Fix missing string 2020-03-24 16:14:12 +02:00
Chocobo1
080c542953
Bump python version for new installation 2020-03-24 16:14:11 +02:00
Chocobo1
d7ab472363
Bump copyright year 2020-03-24 16:14:10 +02:00
An0n
c4eb6eccaf
Change placement of stop tracker timeout 2020-03-24 16:14:10 +02:00
an0n666
1c091cef76
Expose stop_tracker_timeout in advanced settings 2020-03-24 16:14:09 +02:00
Chocobo1
e37b08a879
Remove unused variable 2020-03-24 16:14:08 +02:00
Chocobo1
39018ef1db
Add explicit semicolon 2020-03-24 16:14:07 +02:00
Chocobo1
c6cadb6800
Remove duplicate line 2020-03-24 16:14:06 +02:00
sledgehammer999
0898196a5f
Tracker is errored only if all local endpoints fail
Closes #11691
2020-03-24 16:14:06 +02:00
thalieht
4b40b80145
Allow double-click in preview dialog 2020-03-24 16:14:05 +02:00
Vladimir Golovnev (Glassez)
6ade38400e
Save resume data after recheck
Closes #11774.
2020-03-24 16:14:04 +02:00
FranciscoPombal
71ca3a5cc9
WebUI: fix populating statistics window
Closes #11665
2020-03-24 16:14:04 +02:00
Vladimir Golovnev (Glassez)
2a3fc0ede1
Use QStyledItemDelegate instead of QItemDelegate 2020-03-24 16:14:03 +02:00
Vladimir Golovnev (Glassez)
1b9fd85497
Fix transfer list architecture
Model returns string for DisplayRole.
Text alignment is set by Model (using TextAlignmentRole).
Delegate performs custom painting only where necessary
(i.e. for Progress bar).
2020-03-24 16:14:02 +02:00
Chocobo1
c73f61c8d4
Remove unused variable 2020-03-24 16:14:02 +02:00
Chocobo1
4205e99479
Migrate away from deprecated API in Qt 5.14 2020-03-24 16:14:01 +02:00