11328 Commits

Author SHA1 Message Date
Vladimir Golovnev
7cd2445a49 Improve tracker entries handling
PR #19496.

* Add torrent entry status to represent tracker error
* Add torrent entry status to represent unreachable endpoint
* Display tracker entry next/min announce time
* Reset tracker entries when torrent is stopped
2023-09-07 08:58:13 +03:00
Chocobo1
39efd0e9ff Remove thin space
Generally qbt doesn't put a space before percentage symbol.
This change makes the UI elements consistent.
2023-09-04 13:10:12 +08:00
Chocobo1
ff80e0ce66 Use Qt built-in non-breaking space variable 2023-09-04 13:10:12 +08:00
Victor Chernyakin
65930ddf94 Use std::pair instead of QPair
PR #19548.
2023-09-03 09:39:34 +03:00
Chocobo1
4d2015cfed Support creating .torrent with larger piece size
Warning: users are at their own discretion to create .torrent with >= 64 MiB piece size as not
every torrent client supports it.
Larger piece sizes are only available when using libtorrent 2.x. libtorrent 1.x is not
efficient with memory usage and in order to avoid user complaints it is limited to 128 MiB.
Also note that, as of this writing, libtorrent 2.0.9 has an internal limitation that only
allows loading maximum 256 MiB piece size. And therefore > 256 MiB size options are forbidden
for now.

Closes #19527.
PR #19535.
2023-09-03 14:31:32 +08:00
Matic Babnik
145971b915 Add "Add Tags" field for RSS rules in WebUI
PR #19519.
2023-09-02 21:37:53 +03:00
Chocobo1
43e3d0b4b2 Make the title label selectable
And therefore its text is copyable.
2023-09-01 00:18:25 +08:00
Chocobo1
0fdb1b3f53 Add button to copy library versions to clipboard
Closes #18702.
2023-09-01 00:18:25 +08:00
Chocobo1
24da51ffa0 Perform type conversion properly
Closes #19521.
PR #19525.
2023-09-01 00:18:03 +08:00
sledgehammer999
e434812cda Bump copyright year 2023-08-29 00:17:23 +03:00
sledgehammer999
9a1df0c595 Pull translations from Transifex 2023-08-29 00:05:14 +03:00
Xu Chao
9a73a21f3f Don't set parent of "Add new torrent dialog" on macOS
PR #19494.

Closes #12849.
Closes #12852.
Closes #19072.

---------

Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
2023-08-28 13:50:36 +03:00
Victor Chernyakin
e045b4678d Use std::clamp() instead of various custom implementations
PR #19501.
2023-08-27 21:55:08 +03:00
Chocobo1
d8a03cd8d8 Use atomic primitives from standard library
QAtomicInteger underlying is using std::atomic structures, so
using std::atomic directly should not be a problem for us.

PR #19507.
2023-08-28 02:08:40 +08:00
Xu Chao
270c63d64c Open "Save path" if torrent has no metadata
PR #19495.
Closes #18738.
2023-08-27 08:38:59 +03:00
rcarpa
bbac94cc95 Use QThreadPool for torrent creation
The change is in preparation for adding the possibility to create
torrent files via the API.

Rework TorrentCreatorThread to be a more lightweight QRunnable class.
The parameters are now defined on construction time and are fixed
throughout the lifecycle of the TorrentCreator. The lifecycle of the
object is not bound to the one of QDialog anymore; it is now handled
by the QThreadPool. This will enable easier queueing of multiple torrent
creation jobs without risk of spawning many threads.

PR #19500.
2023-08-27 00:27:11 +08:00
Vladimir Golovnev
9ab8203c8a Don't overwrite tracker entry of unrelated protocol
PR #19493.
2023-08-23 12:38:18 +03:00
Vladimir Golovnev
c805606524 Improve tracker entries handling
PR #19468.

* Use QHash to map tracker endpoints
* Don't clear numPeers unexpectedly
* Remove outdated tracker entry endpoints
* Move presentation logic from Core to GUI code
* Show all endpoints per tracker in tree structure

---------

Co-authored-by: Kacper Michajłow <kasper93@gmail.com>
2023-08-21 10:27:19 +03:00
Victor Chernyakin
34d30ed031 Replace Q_UNUSED with [[maybe_unused]] attribute
PR #19471.
2023-08-18 07:09:40 +03:00
Victor Chernyakin
f3f4610ba4 Convert Windows header names to lowercase
PR #19465.
2023-08-16 10:29:13 +03:00
Vladimir Golovnev
dcf3e97291 Implement gateway for adding new torrents
PR #19355.
2023-08-14 18:17:56 +03:00
Victor Chernyakin
e4313d6651 Use using declarations instead of typedef
PR #19458.
2023-08-14 18:14:36 +03:00
Victor Chernyakin
52fbb774a2 Disable clang-tidy for 3rd-party code
PR #19459.
2023-08-14 18:13:28 +03:00
Vladimir Golovnev
a0e41a11de Display error message when unrecoverable error occurred
PR #19462.
2023-08-14 16:03:57 +03:00
Vladimir Golovnev
cab5edb721 Add more precondition checks when handle async operation result
PR  #19460.
2023-08-14 16:02:50 +03:00
Vladimir Golovnev
7a9a102b6f Check returned Bundle ID for NULL
PR #19463.
2023-08-14 16:01:54 +03:00
Omar Abdul Azeez
6ba561dea2 Fix overwriting feeds.json with an incomplete load of it
PR #19444.
Closes #19439.

---------

Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
2023-08-12 18:59:24 +03:00
Vladimir Golovnev
56ba5e5182 Correctly load colors from custom themes
PR #19448.
Closes #19447.
2023-08-12 18:57:34 +03:00
Chocobo1
69d60b5f1c Specify interface requirements as an C++ concept
PR #19440.
2023-08-12 20:53:03 +08:00
Victor Chernyakin
850da9dd83 Replace Q_UNLIKELY with [[unlikely]] attribute
PR #19445.
2023-08-11 08:54:26 +03:00
Chocobo1
502b3d3228 Merge pull request #19427 from Chocobo1/cleanup
Remove unused include
2023-08-11 13:49:35 +08:00
Chocobo1
31fe327763 Move to separate headers
Hopefully this can speed up compilation times.
https://doc.qt.io/qt-6/qtglobal.html#details

PR #19430.
2023-08-11 13:47:55 +08:00
Chocobo1
870bcc7a19 Switch to QHash 2023-08-09 20:36:41 +08:00
Victor Chernyakin
f2b4aa6570 Remove unused parameter in Utils::Gui::scaledPixmap()
PR #19426.
2023-08-09 20:34:12 +08:00
Chocobo1
5c06d0aa75 Replace template conditionals with C++20 requires clause
Related: https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-constraints.html

PR #19424.
2023-08-09 20:33:19 +08:00
Vladimir Golovnev
33d767b765 Disable using Qt functions deprecated up to Qt 6.5
* Disable using Qt functions deprecated up to Qt 6.5
* Utilize QSet::removeIf()

PR #19419.
2023-08-08 08:52:13 +03:00
Vladimir Golovnev
06581636a1 Utilize QByteArrayView
PR #19417.
2023-08-07 11:21:32 +03:00
Vladimir Golovnev
a0fa1709d5 Raise minimum supported Qt version to 6.5
PR #19394.
2023-08-07 07:19:43 +03:00
Chocobo1
699dc1689a Remove column span
The property widget already has scroll bars and thus we don't need this span.

Closes #15000.
PR #19404.
2023-08-04 13:01:08 +08:00
Chocobo1
a427b9228d Ensure file name is valid when exporting torrents
Closes #19275.
Closes #19329.
PR #19403.
2023-08-04 13:00:48 +08:00
Jimmy Axenhus
c4ed40b82f Set property instead of set attribute
This commit resolves an issue with Safari not properly selecting an `<option>`.

Closes #17866.
PR #19024.
2023-08-03 13:34:24 +08:00
Chocobo1
e68cf87f05 Merge pull request #19396 from Chocobo1/ci
GHA CI: specify a category for CodeQL analysis
2023-08-03 11:41:40 +08:00
Vladimir Golovnev
fccdeb4e78 Don't use variable after it is moved
PR #19397.
2023-08-02 15:04:15 +03:00
Chocobo1
6c16a09385 Guard against potential negative number 2023-08-01 15:27:04 +08:00
Chocobo1
b35c2bca5d Merge pull request #19390 from Chocobo1/openssl
Remove unused conditional
2023-08-01 12:57:12 +08:00
Chocobo1
852927bf50 Use qreal type whenever feasible
The idea is follow Qt and use `qreal` instead of `double` for generic code.
2023-07-31 03:50:49 +08:00
Chocobo1
a5a4ea9ba0 Remove unused conditional 2023-07-31 03:03:02 +08:00
Vladimir Golovnev
11efd26acc Fix crash on application exit (Qt 6.5)
PR #19169.
2023-07-27 15:09:14 +03:00
Vladimir Golovnev
006ad23d0d Map selected indexes to source before modify the data
Changing the data may affect the layout of the sort/filter model, which in turn may invalidate the indexes previously obtained from selection model before we process them all. Therefore, we must map all the selected indexes to source before start processing them.

PR #19372.
Closes #19359.
2023-07-26 18:19:32 +03:00
Peter Dave Hello
9975230dea Update Transifex link in TRANSLATION_INSTRUCTIONS
PR #19366.
2023-07-25 15:28:56 +03:00