Commit graph

10670 commits

Author SHA1 Message Date
Vladimir Golovnev
67357e9964
Allow to set torrent stop condition
PR #17814.

Closes #17792.
Closes #929.

(Actually it should close all issues about lack of ability to stop torrent after metadata downloaded or after files are initially checked.)

Also makes explicit the temporary start of the torrent in the case when recheck of the stopped torrent is performed.
2022-10-09 16:07:16 +03:00
Chocobo1
0279b80b46
Don't use hardcoded URL scheme list
This is to avoid the list being outdated.
2022-10-09 14:12:02 +08:00
Chocobo1
d3936c07c7
Capitalize header title
This is the only one not properly capitalized.
2022-10-09 14:12:02 +08:00
Chocobo1
aa022400f7
Use Path internal representation for internal value in model
The internal value is used for sorting comparisons and not displayed
to the user, so make a shortcut.
2022-10-09 14:12:01 +08:00
Chocobo1
66795d533a
Show 'N/A' when there is no hash
This is to follow 'General' tab which show 'N/A' when there is no hash.
2022-10-09 14:12:01 +08:00
Chocobo1
ce7d8dee28
Merge pull request #17829 from Chocobo1/focus
Set proper focus on widget
2022-10-09 13:48:13 +08:00
Chocobo1
1f799689ed
Support 'file exists' situation
The lt::status_t::file_exist is returned when lt::move_flags_t::fail_if_exist is used, which means the whole move operation failed. So hanlde this condition correctly (even if the fail_if_exist isn't used in the code base currently).

PR #17853.
2022-10-09 13:47:52 +08:00
tristanleboss
a71d7e6557
Add infohash and download path columns
PR #17799.
2022-10-08 11:43:52 +08:00
Chocobo1
30c2f9d9f3
Merge pull request #17830 from Chocobo1/trackers
Fix wrong 'tracker error' count
2022-10-06 12:32:16 +08:00
Chocobo1
6fa4305aba
Fix wrong 'tracker error' count
This happens when a torrent contains some tracker URLs that share the same domain.
Closes #17808.
2022-10-05 14:43:52 +08:00
vlakoff
ad59eb4dfc
Revert "Consider brackets within wildcard as regular characters"
The implementation appeared to be broken.

This reverts #16965.
PR #17820.
2022-10-05 12:43:43 +08:00
Chocobo1
21aabfdcb5
Clean up code 2022-10-05 00:58:57 +08:00
Vladimir Golovnev
e7370d1a0f
Don't pollute move queue by torrents w/o metadata
There's really nothing to move if the torrent still doesn't have metadata.
Additionally, such torrents in the queue can lead to unexpected behavior
when reloading the torrent after metadata is received.

PR #17823.
2022-10-04 19:41:36 +03:00
Chocobo1
855f727451
Set proper focus on widget
And also allow keyboard tabbing to the Browse button.
Fix up 6ab35512da.
2022-10-04 16:54:20 +08:00
Chocobo1
9a81cbf4c0
Improve column updates granularity
PR #17806.
2022-10-03 11:56:48 +08:00
Vladimir Golovnev
b568cdb1aa
Correctly load state of use download folder
PR #17807.
Closes #17793.
2022-10-02 08:46:27 +03:00
Chocobo1
bc0d906adc
Merge pull request #17786 from Chocobo1/selection
Fix torrent content checkboxes not updated properly
2022-10-01 14:00:49 +08:00
Chocobo1
2b385e5f92
WebUI: don't disable combobox for file priority
Closes #17794.
PR #17797.
2022-10-01 12:49:02 +08:00
Vladimir Golovnev
616057a433
Improve session statistics handling
PR #17779.
2022-09-29 06:49:34 +03:00
Chocobo1
9a20aa51de
Fix torrent content checkboxes not updated properly
And reduce emitting redundant 'data updated' signals.

Closes #17144, #17764.
2022-09-29 00:00:48 +08:00
Chocobo1
6c8b31420c
Remove unused functions 2022-09-27 14:52:52 +08:00
Chocobo1
0514cb304d
Fix coding style 2022-09-27 14:52:52 +08:00
Vladimir Golovnev
0a4ee60ea0
Avoid blocking call when save resume data
PR #17755.
2022-09-25 16:40:16 +03:00
Chocobo1
dc76a175ad
WebUI: allow string to be translated
Closes #17759.
2022-09-24 15:29:14 +08:00
Chocobo1
92768c36aa
Fix 'Filter Sidebar' size restored incorrectly
And with a bit of code clean up.
Closes #17756.
2022-09-24 15:29:12 +08:00
Chocobo1
2a3a4bff70
Merge pull request #17737 from Chocobo1/logview
Use proper color for highlighted text in log widget
2022-09-23 13:31:04 +08:00
Andrew
cacfe4f3ca
Fix "Open destination folder" delay on Windows
Replaced QDesktopServices by native Windows function
to open destination folder due to QDesktopServices issues on Windows.
The issues are described in #17482 and even more detailed in #17025.

Closes #17482.
PR #17723.
2022-09-23 13:30:31 +08:00
Chocobo1
37150520e1
Use proper color for highlighted text in log widget
The color is either from qbt theme pack or desktop environment.

Note that Windows default theme do not use highlighted text color.
Other themes (either OS default or qbt themes) are closer to native
look when highlighted text color is in action.
2022-09-21 01:04:11 +08:00
Chocobo1
3aadb63d80
Simplify code
Don't use replacement placeholder and use string append which is faster.
2022-09-21 00:42:15 +08:00
Chocobo1
0e0b8d1027
Revive dark theme detection
The code was removed in 199d770e15 and now revived.
2022-09-21 00:42:15 +08:00
sledgehammer999
5e4a94e6b6
Bump to 4.5.0beta1 2022-09-18 20:13:29 +03:00
sledgehammer999
db7850e218
Sync translations from Transifex and run lupdate 2022-09-18 20:13:29 +03:00
Chocobo1
b28704a6ec
Merge pull request #17725 from Chocobo1/downloadsDone
Clean up 'recursive download' related code
2022-09-16 12:07:36 +08:00
Chocobo1
0c6e56a150
Merge pull request #17713 from Chocobo1/trackers
Revise 'Add trackers' dialog
2022-09-16 12:06:22 +08:00
sledgehammer999
d71ff734a9
Merge pull request #17705 from sledgehammer999/gplv2_vs_gplv3
Copyright and license updates
2022-09-15 11:19:23 +03:00
Chocobo1
90652d3555
WebAPI: fix wrong behavior for shutdown action
Qt6 has changed implementation for `QCoreApplication::quit` and therefore it is not suitable
anymore.

Closes #17709.
PR #17720.
2022-09-15 11:56:00 +08:00
Chocobo1
f8a2fbc4c5
Clean up 'recursive download' related code
Don't load .torrent files too early, otherwise qbt might emit a dubious error log message if the
.torrent file is invalid.
2022-09-15 00:15:53 +08:00
Chocobo1
80759f9e69
Reorder operations in 'torrent finished' handler
Avoid redundant data fetch.
Remove debug messages.
2022-09-15 00:12:11 +08:00
Chocobo1
e692a191ed
Revise 'Add trackers' dialog
* Now it allow user to add tracker to different tier.
* The downloaded trackers are now displayed as is (without modifying).
* Now the dialog remember dialog size and last used URL.

Closes #17692.
2022-09-14 01:20:30 +08:00
Chocobo1
4e06a9629a
WebUI: alert when HTTPS settings are incomplete
Closes #17696.
PR #17701.
2022-09-13 13:00:11 +08:00
sledgehammer999
b3334e5fac
Binary distributions are GPLv3+ licensed 2022-09-13 01:33:08 +03:00
Chocobo1
4e326229da
Rename action 2022-09-12 23:25:36 +08:00
Chocobo1
6c60fa5161
Don't reorder URLs when copied from the clipboard
Also process URLs in the same order as from the text edit widget.
Closes #17693.
PR  #17700.
2022-09-12 12:22:45 +08:00
sledgehammer999
cd405ffc32
Remove duplicate information
This information exists in git's commit history and in the AUTHORS file.
2022-09-12 02:26:35 +03:00
Chocobo1
5cfaaa5d1a
Add tooltips 2022-09-08 14:44:18 +08:00
Chocobo1
109c45bb95
Allow to use subnet notation in reverse proxy list
Closes #17475.
2022-09-08 14:44:18 +08:00
Chocobo1
851374e517
Rename function 2022-09-07 14:11:23 +08:00
Chocobo1
4094a4c448
Simplify functions 2022-09-07 14:11:02 +08:00
Tyler Dunn
987e1b544a
Don't autofill background color on macOS
PR #17669.
2022-09-06 09:44:18 +08:00
Vladimir Golovnev
5cf6b1cbde
Handle more torrent conflicts
PR #17668.
This is a continuation of #17576.
Handles the case when you add hybrid torrent by v1-only magnet link and this torrent is already known by its full hybrid info hash (i.e. by both v1 and v2 info hashes).
2022-09-05 06:22:42 +03:00
Vladimir Golovnev
4318de6dc5
Add ability to run external program on torrent added
PR #17646.
2022-09-04 07:51:50 +03:00
summer
459d1cf82c
Allow to pause a checking torrent from context menu
PR #17611.
2022-09-04 12:03:10 +08:00
Chocobo1
fb37b0c147
Suppress warning
Seems `lupdate` tool cannot correctly recognize the class/context of `tr()` here, so specify the
class/context manually.
2022-09-03 15:26:40 +08:00
Chocobo1
9877ff330e
Make strings translatable 2022-09-03 15:23:00 +08:00
Tyler Dunn
6f88609d60
Avoid string lookup when setting row color
PR #17665.
2022-09-03 14:58:53 +08:00
Tyler Dunn
6263c4786b
Allow 'Export .torrent' tooltip to be translatable
Closes #17660.
PR #17664.
2022-09-03 14:58:23 +08:00
Vladimir Golovnev
ca897a8a35
Cache download/upload limit values
PR #17640.
2022-09-01 06:54:51 +03:00
Vladimir Golovnev
77dd8bd27b
Parse torrent info separately from resume data
PR #17639.
2022-09-01 06:54:12 +03:00
Vladimir Golovnev
fe34749cfe
Proactively append extension to incomplete files
PR #17631.
2022-09-01 06:53:29 +03:00
Vladimir Golovnev
646322b2a2
Let Qt handle system tray icon availability
PR #17519.
2022-08-31 08:02:44 +03:00
Chocobo1
670b381df7
Merge pull request #17616 from Chocobo1/webui
Make WebUI images self-contained
2022-08-29 13:09:21 +08:00
sledgehammer999
ddf4b94bc6
Sync translations from Transifex and run lupdate 2022-08-29 00:48:24 +03:00
Vladimir Golovnev
794a92f911
Make qBittorrent compatible with libtorrent master
PR #17604.
2022-08-28 11:38:28 +03:00
Chocobo1
f6e2715f4a
Apply forward declaration
Follow up 525692759d.
PR #17621.
2022-08-28 13:25:38 +08:00
Chocobo1
082e6f8830
Apply i18n translation only to built-in WebUI 2022-08-27 13:55:05 +08:00
Chocobo1
ee38124db7
Optimize symbolic links checking 2022-08-27 13:55:04 +08:00
Chocobo1
e06e1d9911
Throw error exception properly 2022-08-27 13:55:04 +08:00
Chocobo1
3851e76179
Remove special handling of icons 2022-08-27 13:55:04 +08:00
Chocobo1
d693f97a46
Use natural sort in WebUI 2022-08-27 13:55:04 +08:00
Chocobo1
ca274635d5
Make WebUI images self-contained 2022-08-27 13:55:04 +08:00
Vladimir Golovnev
525692759d
Split Session class into interface/implementation parts
PR #17579.
2022-08-27 08:01:24 +03:00
Chocobo1
e5491645e4
Merge pull request #17593 from Chocobo1/remove
Use proper verb when referring to torrent removal
2022-08-26 12:06:10 +08:00
Chocobo1
9f511a47e8
Adjust Edit menu of WebUI to follow GUI 2022-08-25 13:32:07 +08:00
Chocobo1
7b0644cdcd
Use proper verb when referring to torrent removal 2022-08-25 13:32:07 +08:00
Vladimir Golovnev
7527343629
Handle some torrent conflicts
PR #17576.
2022-08-23 07:47:20 +03:00
Chocobo1
d173216941
Merge pull request #17578 from Chocobo1/webui
Fix icon in WebUI being trimmed
2022-08-23 10:54:02 +08:00
Chocobo1
d28b5f7834
Rephrase confirm deletion dialog
Closes #14309.
PR  #17586.

Co-authored-by: xavier2k6 <42386382+xavier2k6@users.noreply.github.com>
2022-08-22 11:36:13 +08:00
Chocobo1
04f6ee79c3
Improve icon readability at small size
https://github.com/qbittorrent/qBittorrent/pull/17578#pullrequestreview-1079562121

Co-authored-by: Nowshed H. Imran <nowshed.imran@gmail.com>
2022-08-21 20:47:07 +08:00
Chocobo1
b046b40668
Fix icon in WebUI being trimmed 2022-08-20 13:27:48 +08:00
Chocobo1
0a289e15b4
Merge pull request #17544 from Chocobo1/test
Add unit testing for Path class
2022-08-19 14:44:44 +08:00
Chocobo1
72941b10bb
Use proper request method 2022-08-16 11:26:47 +08:00
Chocobo1
d6c92704a1
Restrict more WebAPI endpoints to POST method only 2022-08-16 11:26:05 +08:00
Jesse Smick
ba511e07b4
WebUI: Improve pieces bar drawing algorithm
PR #17336.
2022-08-15 12:05:35 +08:00
Chocobo1
aa6b29fe7e
Set HTTP method restriction on WebAPI actions
PR #17548.
2022-08-15 11:56:59 +08:00
Chocobo1
d7d1a90de6
Fix wrong parent path 2022-08-14 13:31:21 +08:00
Chocobo1
16482c507b
Fix drive letter validness check 2022-08-14 13:31:21 +08:00
Chocobo1
5abd72d42a
Add comments about "UNC path" support 2022-08-12 12:56:58 +08:00
Chocobo1
2fa5ad982d
Improve absolute/relative path detection 2022-08-12 12:56:57 +08:00
Chocobo1
43df7d0cd4
Improve path validness test 2022-08-12 12:56:56 +08:00
Chocobo1
06c704c740
Revise quote behavior
Now the behavior of double quotes aligns more as with issuing commands from shell/command line.
Related: https://github.com/qbittorrent/qBittorrent/pull/17453#issuecomment-1203372027

PR #17515.
2022-08-10 13:19:34 +08:00
Vladimir Golovnev
916e53c260
Show progress dialog on second instance run
PR #17516.
2022-08-09 19:12:12 +03:00
xavier2k6
3f94a68e62
Sync nonstd/expected with upstream
* Used commit: `95b9cb015fa17baa749c2b396b335906e1596a9e` (Release v0.6.2)
* Source: https://github.com/martinmoene/expected-lite/releases
PR #17508.
2022-08-09 11:22:45 +08:00
Vladimir Golovnev (Glassez)
d27dd85dfd
Correctly replace desktop integration menu 2022-08-06 19:40:04 +03:00
Vladimir Golovnev (Glassez)
15515200ee
Avoid race conditions between dialogs on startup 2022-08-06 15:01:35 +03:00
Vladimir Golovnev
7f40602da9
Fill in initial data in add_torrent_alert handler
libtorrent < 2.0.7 has a bug that add_torrent_alert is posted too early
(before torrent is fully initialized and torrent extensions are created)
so we have to fill initial torrent data in add_torrent_alert handler.

PR #17491.
2022-08-06 06:09:35 +03:00
Chocobo1
33e6ca6778
Redesign Version class
PR #17484.
2022-08-06 11:06:16 +08:00
summer
54b50c3a8a
Do not inhibit system sleep/auto shutdown for torrents stuck at downloading metadata
PR #17481.
2022-08-04 13:10:58 +08:00
Chocobo1
fa3d98aa37
Add keyboard shortcut to Download URL dialog
Closes #17436.
PR #17490.
2022-08-04 13:03:38 +08:00
Vladimir Golovnev
e24aaa4ce1
Show startup progress dialog
PR #17389.
2022-08-03 07:14:26 +03:00
Chocobo1
aed492b881
Merge pull request #17471 from Chocobo1/cmake
Improve constructor of Version class
2022-08-02 13:50:56 +08:00
Chocobo1
a4c2363f43
Improve constructor of Version class
Now we can write `Version<int, 3, 1>(1)` and provide only 1 parameter
instead of all 3 parameters at once at the constructor. Note that for
this instance of `Version` 3 numbers were specified but only 1 is truly
mandatory.

The added code are required to specify conditions of the template
instantiation for the compiler.
2022-08-01 14:53:55 +08:00
Vladimir Golovnev
0056a61db3
Clear RSS parsing error after use
PR #17465.
2022-08-01 08:15:16 +03:00
Vladimir Golovnev
6d1573f901
Prevent multiple session refreshes from being enqueued 2022-08-01 08:14:09 +03:00
Vladimir Golovnev
1c0479a795
When duplicate torrent is added set metadata to existing one
PR #17454. 
Closes #907.
2022-07-31 08:53:26 +03:00
Nowshed H. Imran
748226be29
Rename Icons according to the actions
Fixes #17357.
PR #17366.
2022-07-31 13:31:38 +08:00
Chocobo1
27e1a8ad80
Merge pull request #17453 from Chocobo1/i18n
Fix empty string parameter was omitted
2022-07-30 14:30:12 +08:00
Chocobo1
0802b6d506
Fix empty string parameter was omitted
`QProcess::splitCommand()` will omit empty strings like `""` so provide
our own replacement.

Closes #13124.
2022-07-30 00:17:31 +08:00
Vladimir Golovnev
29f8b4b786
Don't merge trackers by default
PR #17446.
2022-07-29 15:40:40 +03:00
Chocobo1
2ebdf6060d
Translate app help text 2022-07-29 11:13:59 +08:00
brvphoenix
b98e7cb69f
Fix reply data can't be decompressed correctly
If the "Accept-Encoding" is not manually specified, it will be
automatically set to the supported encodings by QT and the reply data
will also be automatically decompressed in this case. Setting
"Accept-Encoding" manually will disable the "autodecompress" feature
before QT 6.3.0. Although QT 6.3.x has different behaviors, let QT
specify the "Accept-Encoding" and we will always obtain the decompressed
data.

The macro "QT_NO_COMPRESS" defined when QT is compiled will disable
the zlib support. We can manually address this exceptions.

PR #17438.
2022-07-29 11:03:21 +08:00
summer
2071ec0c96
Fix peer count issue when tracker responds with zero figure
Sometimes tracker may respond with 0 for num_complete and num_incomplete and we should display that instead of deducing the peer count from peer list. We should only fallback to peer list if tracker does not respond with any information. In such cases num_incomplete and num_complete is set to -1 by libtorrent.

PR #17432.
2022-07-27 13:09:06 +08:00
Chocobo1
36bc77e2e2
Merge pull request #17416 from Chocobo1/icon
Split code to smaller functions
2022-07-26 12:47:21 +08:00
Chocobo1
88556078be
Merge pull request #17412 from Chocobo1/stat
Improve free disk space reporting
2022-07-26 12:45:10 +08:00
Chocobo1
27a07e20f5
Split code to smaller functions 2022-07-25 01:22:33 +08:00
Chocobo1
5d1115f591
Remove compile-time conditional
This checking should be universally applied and not limited to certain OS.
2022-07-25 01:18:42 +08:00
Chocobo1
88d9e82fc9
Improve free disk space reporting
For non-existent directories (which will be created on demand) `Utils::Fs::freeDiskSpaceOnPath`
will return invalid value so instead query its parent path.
2022-07-25 01:18:42 +08:00
Chocobo1
50b01ed45d
Revise function for checking "same file" 2022-07-25 01:18:37 +08:00
Chocobo1
243d130667
Clean up code 2022-07-24 18:07:52 +08:00
Chocobo1
e33f73d08e
Avoid performance impact over network or removable drives 2022-07-24 12:58:24 +08:00
Chocobo1
f505d742d8
Merge pull request #17392 from Chocobo1/validatePath
Fix path validator
2022-07-24 09:54:30 +08:00
Chocobo1
727d20cc92
Simplify implementation
This also enable each platform to provide its own optimal implementation of it.
2022-07-23 22:41:26 +08:00
Chocobo1
a9906e5d2a
Fix validation text doesn't update on mouse click selection 2022-07-22 21:27:00 +08:00
Chocobo1
6ab35512da
Fix browse icon cannot be selected/focused via keyboard 2022-07-22 21:27:00 +08:00
Chocobo1
cfcbe3d6e1
Use less intimidating icon for intermediate state 2022-07-22 21:27:00 +08:00
Chocobo1
39c0c1a088
Simplify operations 2022-07-22 21:27:00 +08:00
Chocobo1
f7ae010274
Rename interface 2022-07-22 21:27:00 +08:00
Chocobo1
4fd5037c10
Avoid redundant operation
The default is the same as the one specified here.
2022-07-22 21:27:00 +08:00
Chocobo1
3fe09aa673
Fix path validator
And revise tooltip message.

Closes #11152.
2022-07-22 21:26:57 +08:00
Chocobo1
3a6858a277
Adjust height to hide scrollbar by default 2022-07-22 13:23:19 +08:00
Chocobo1
c287c7bb01
Revise action capitalization 2022-07-22 13:23:19 +08:00
Chocobo1
99061d92c1
Fix "Add torrent dialog" spill-over on smaller screens
Done by adding an QScrollArea to the layout.

Closes #17387.
2022-07-22 13:23:19 +08:00
Vladimir Golovnev
5b269a782a
Prevent tray menu from being accessed after destruction
PR #17400.
2022-07-21 09:30:05 +03:00
Chocobo1
275387a972
Don't show validation result dialog on every key input
Instead of showing dialog, now it relies on icon to show the validation
result.

PR #17391.
2022-07-21 12:19:58 +08:00
Chocobo1
e68e3b516e
Improve performance of "filesystem line edit" widgets
Also prevent unnecessary querying on the filesystem by omitting
calling setRootPath().
2022-07-21 02:27:48 +08:00
summer
3f7376f26b
Add transfer list refresh interval settings to WebUI
Specially useful for qbt-nox users
PR #16713.

Co-authored-by: An0n <79678786+an0n666@users.noreply.github.com>
2022-07-19 11:14:45 +08:00
Dmitry Vodopyanov
f20f479a4b
Improve sender field in mail notifications
Problem statement: user sees its email address in email notification,
while it is better to have sender field app-personalized, like it did
in Nextcloud: they send notifications from user's email address and
add alias 'Nextcloud' to it.

This patch adds alias 'qBittorrent' to qBittorrent email notifications,
so user sees more user-friendly email notification.

PR #17374.
2022-07-18 13:22:30 +08:00
Chocobo1
e95066a37c
Merge pull request #17367 from Chocobo1/pr_17005
Split the OS cache settings into Disk IO read/write modes
2022-07-17 16:14:58 +08:00
Chocobo1
e281b667c6
Properly release settings class before further operations
Fix up d3e7e8a630.

PR #17376.
2022-07-17 12:41:18 +08:00
Chocobo1
56bb379024
Add workaround for payload upload/download rate
The graphs are showing 0 for both payload upload & download rate but
torrent statistics aren't, so suppress it manually.
The workaround only applies to paused state for now.

Closes #17294.
2022-07-15 12:20:09 +08:00
Chocobo1
bafe4e909c
Use switch() statement 2022-07-15 12:20:09 +08:00
Chocobo1
b6b0b54cdb
Rename variable 2022-07-15 12:17:39 +08:00
xavier2k6
a9a45b9569
Sync flag icons with upstream
* Contains numerous flag fixes.
* Upstream commit: `494ace54e3c413dcebcb071f583b441b267c984f` - (Release v6.6.3)
* Update `AUTHORS` file with upstream `copyright/repo url change`

PR #17199.
2022-07-15 12:08:37 +08:00
summer
4cda5d89fb
Clean up WebUI preferences
PR #17319.
2022-07-15 12:07:09 +08:00
summer
5b730ffb72
Split the OS cache settings into Disk IO read/write modes
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2022-07-14 18:37:38 +08:00
nmariusp
e2b140b8dd
Remove meaningless checking for nullptr
Fix PVS-Studio issue "rss_autodownloader.cpp:111: warning: V668
There is no sense in testing the 'm_fileStorage' pointer against null,
as the memory was allocated using the 'new' operator.
The exception will be generated in the case of memory allocation error".

PR #17347.
2022-07-14 13:19:38 +08:00
Chocobo1
d2a29c2f87
Correctly remove incomplete settings file
PR #17362.
2022-07-14 13:05:08 +08:00
Vladimir Golovnev
d3e7e8a630
Refactor SettingsStorage implementation
Remove redundant fragmentation of logic.

PR #17354.
2022-07-13 07:09:15 +03:00
Vladimir Golovnev
cfdf5cffac
Show remote access info after it is available
PR #17329.
2022-07-11 08:38:45 +03:00
Chocobo1
d6314b30a2
Merge pull request #17341 from Chocobo1/tray
Revise behavior of initializing checkboxes
2022-07-11 12:39:05 +08:00
Chocobo1
03da68b1cf
Add support for unit testing
* Downgraded macOS CI to Qt 6.2.0 due to a bug in Qt Test module
* Revised cmake build scripts
* For now, only building via cmake is supported

PR #17338.
2022-07-10 13:20:27 +08:00
Vladimir Golovnev
890630944d
Extract desktop integration stuff into separate class
PR #17313.
2022-07-09 08:06:22 +03:00
Chocobo1
8d73ab65b2
Don't needlessly hide Options dialog
The dialog should only close after all operations are done, not before.
2022-07-09 11:34:47 +08:00
Chocobo1
e54124fdb8
Add tooltip message when system tray icon isn't available
Also don't hide the sub-options as they are already in disabled state.
2022-07-09 11:34:47 +08:00
Chocobo1
e4fafb911a
Revise behavior of initializing checkboxes
The checkboxes initial value should not depend on parent state and
should be restored anyway.
2022-07-09 11:34:43 +08:00
Chocobo1
dba711d099
Use helper function for logging messages 2022-07-07 12:17:52 +08:00
Chocobo1
ec13bba4da
Revise classes startup sequence
1. Initialize Logger class earlier so that it can record messages from other classes (for
   debugging purpose).
2. Deprioritize WebUI port adjustment. It is not a high priority in here.
3. Slightly deprioritize file logger initialization.
2022-07-07 12:16:48 +08:00
luzpaz
8736c9ec4c
Fix various typos
Found via `codespell -q 3 -S *.ts,*.desktop,./src/base/3rdparty,./dist/windows/installer-translations -L ba,doas,ist,ro,ths`

PR #17317.
2022-07-06 13:11:11 +08:00
Chocobo1
286df8f560
Merge pull request #17311 from Chocobo1/memPrio
Work around application stuttering on Windows
2022-07-05 14:18:02 +08:00
Nowshed H. Imran
92afbd45e8
Remove option of using icons from system theme
PR #17292.
Closes #17150.
2022-07-05 12:32:35 +08:00
summer
c660c9df8e Try to recover missing tags
Tags can go missing from config/resume data. Try to recover them to avoid inconsistent behavior.
2022-07-04 18:18:56 +06:00
Chocobo1
ed2eadaf56
Work around application stuttering on Windows
This is observed by unusual high page faults when the stuttering occurs.
With this workaround, the high page faults still occurs but the GUI remains responsive.
2022-07-04 18:38:23 +08:00
Chocobo1
fa26333a5b
Move "memory priority" settings to Application class 2022-07-04 18:38:20 +08:00
Vladimir Golovnev
be7cfb78de
Restore BitTorrent session asynchronously
Reduce the total startup time of the application and maintain sufficient responsiveness of the UI during startup due to the following:
1. Load resume data from disk asynchronously in separate thread;
2. Split handling of loaded resume data in chunks;
3. Reduce the number of emitting signals.

PR #16840.
2022-07-04 12:48:21 +03:00
Chocobo1
ec1d2cba40
Merge pull request #17305 from Kolcha/fix/open-dest-dir
Fix "Open destination folder" on macOS
2022-07-04 08:38:10 +08:00
Nick Korotysh
a93cd20e4d
Open destination folders on macOS in separate thread
In some unknown way, the one line in Objective-C affects Qt's main
loop causing the crash in QApplication::exec() on processing next
event after that call.

Even crash doesn't happen exactly after this call, it will happen
on application exit. Call stack and disassembly are the same in
all cases.

But running that code in another thread solves the issue.
2022-07-02 09:16:22 +02:00
Chocobo1
25b3f2d1a6
Raise priority of the main "event loop" thread
The goal is to improve responsiveness of qbt when CPU resources are scarce.

Instead of lowering libtorrent threads priority, it is chosen to raise main event loop thread
priority to avoid getting messy with libtorrent internals.

Also on Windows, threads doesn't inherit thread priority from the parent thread and it always
use the default (normal) priority.

PR #17278.
2022-07-02 14:57:47 +08:00
Chocobo1
b44bdd21cb
Merge pull request #17281 from Chocobo1/creator
Fix filename not populated correctly
2022-07-02 14:41:50 +08:00
Nick Korotysh
53ea1843ab
Pass Torrent::contentPath() to MacUtils::openFiles()
it already provides absolute path, no additional manipulations
are required.
2022-07-01 23:23:26 +02:00
Chocobo1
34091176d5
Fix wrong root path generated on Windows
Fix cannot create torrent when the source file is at the root of a
drive.
Fix created torrent cannot be seeded when the source file is at the root
of a drive.

Fix up dd1bd8ad10.
Closes #17279.
2022-07-01 13:34:14 +08:00
Vladimir Golovnev
ac8a6887b6
Improve D-Bus notifications handling
Make notifications clickable on Linux by assigning "default" action.
Don't react to unrelated notifications clicked by keeping track of qBittorrent notifications IDs and filter out unrelated ones.
Make D-Bus Notifications interface proxy class to be maintained manually and fix coding style in it.
Closes #9084.
PR #17282.
2022-06-30 08:01:17 +03:00
summer
cc0a0b56ed
Make working set limit available only on libtorrent 2.0.x builds
You can already control the cache size in libtorrent 1.2.x so it doesn't make sense to implement this limit for all use cases. Also there are some downsides to using working set size to limit memory usage such as unresponsive GUI when limit gets hit.

PR #17275.
2022-06-30 11:23:48 +08:00
sledgehammer999
0e989185ce
Merge pull request #15769 from now-im/flow
Implement new icon/color theme
2022-06-28 23:23:25 +03:00
Chocobo1
aadf961184
Fix filename not populated correctly
Fix up dd1bd8ad10.
Related #17279.
2022-06-26 19:30:17 +08:00
summer
1abeac8811
Remove unnecessary force reannounce on interface alerts
This isn't necessary since it can cause issues by doing unnecessary reannounce during startup and network address refresh. This impact of this can be great if it happens on a regular basis and if someone has a lot of torrents.

PR #17261.
2022-06-26 07:26:21 +03:00
Vladimir Golovnev
f8a304abdc
Implement base classes for application components
PR #17219.
2022-06-25 15:46:55 +03:00
Chocobo1
41a38428fc
Merge pull request #17259 from Chocobo1/cleanup
Make use of chrono literals from std library
2022-06-25 13:23:27 +08:00
Mike Lei
d3850cf98f
Improve WebUI progress bar rendering
PR #17258.
2022-06-24 13:18:33 +08:00
Chocobo1
02d906d3ae
Initialize pointer to a default value 2022-06-23 21:31:16 +08:00
Chocobo1
6de72ecc77
Make use of chrono literals from std library 2022-06-23 21:31:16 +08:00
Chocobo1
2a5dbe840c
Clean up coding style 2022-06-23 13:40:42 +08:00
Li Z
86b6bcc1d9
Fix incorrect "max outgoing port" setting
PR #17252.
2022-06-23 11:49:45 +08:00
Chocobo1
f3a4764a1d
Merge pull request #17233 from Chocobo1/log
Add shutdown logging
2022-06-20 13:08:46 +08:00
Chocobo1
0d46a108b8
Revise Statistics class 2022-06-19 15:51:19 +08:00
Chocobo1
8114c11d58
Add shutdown logging 2022-06-18 17:14:54 +08:00
Chocobo1
e3425cfa9e
Defer closing logger instance
So that logger can still be used in shutdown stage.
2022-06-18 17:14:54 +08:00
Chocobo1
af78344e5d
Use coarse timestamp format
Since format in milliseconds doesn't add additional value and is
slower than just seconds.
2022-06-18 17:14:42 +08:00
Vladimir Golovnev
a2121f2483
Improve RSS subsystem initialization
PR #17227.
2022-06-18 09:56:49 +03:00
Vladimir Golovnev
7d97905716
WebAPI: Add endpoint to set speed limit mode 2022-06-18 06:12:43 +03:00
Chocobo1
61adfea196
Fix garbage text appeared in log file
Fix up fed969ed64.
2022-06-18 04:18:27 +08:00
Chocobo1
3dd616f6ff
Use proper method for manipulating text
`innerText` is too powerful for the job here, use a more
restricted/secure way to manipulate text.

Related: #17211.
PR #17212.
2022-06-17 13:00:32 +08:00
Prince Gupta
d5e6d161f2
Cache last traverse result while parsing file tree
PR #16376.
2022-06-15 20:14:53 +03:00
thalieht
d1515456bc
Add checkbox for "Excluded file names"
PR #17206.
2022-06-15 13:16:01 +08:00
brvphoenix
7faa8b7a02
Don't use QCollator when it works on posix mode
PR #17204.
2022-06-14 13:22:30 +08:00
Chocobo1
5b0cbf9eb1
Merge pull request #17187 from Chocobo1/names
Fix wrong file names displayed in tooltip
2022-06-11 12:27:41 +08:00
xavier2k6
74db0576af
Sync nonstd/expected with upstream
* Used  `commit: b78dd92cc92b0cfe4eedad823cfd411c13afeb66` (Release v0.6.0)
* Source https://github.com/martinmoene/expected-lite/releases/tag/v0.6.0

PR #17192.
2022-06-11 12:27:13 +08:00
Emil M George
29a964d5b7
Add support for custom SMTP ports
The port can be optionally specified by appending `:<port>` to the existing SMTP Server field in settings. If no port is specified, then the default port (25 for insecure or 465 for SSL) is used.

Closes #12212.
PR #17157.
2022-06-10 14:02:51 +08:00
mxtsdev
5e6174c087
Add file name filter/blacklist
Blacklist filtered file names from being downloaded from torrent(s).
Files matching any of the filters in this list will have their priority automatically set to "Do not download".
See Options > Downloads >Do not download.

Closes #3369.
PR #17106.
2022-06-10 13:37:46 +08:00
Nowshed H. Imran
199d770e15
Implement new icon/color theme
Co-authored-by: xavier2k6 <42386382+xavier2k6@users.noreply.github.com>
2022-06-09 18:18:14 +06:00
Prince Gupta
c47e29c7c8
Do RSS serializing on worker thread
PR #16357.
2022-06-09 15:16:37 +03:00
Chocobo1
fed969ed64
Avoid string encoding conversion
Use UTF-16 string literals to match QTextStream internal buffer
encoding.
2022-06-09 12:24:31 +08:00
Chocobo1
9cb686a6b7
Fix wrong file names displayed in tooltip
Also rename variable.
Closes #17179.
2022-06-09 12:24:31 +08:00
Chocobo1
eddeda7bab
Remove usage of QTextStream
Other classes already provide rich methods so avoid another
layer of QTextStream which slow things down (slightly).

PR #17180.
2022-06-09 11:18:41 +08:00
Vladimir Golovnev
ca07540675
Fix rate calculation when interval is too low
PR #17155.
2022-06-08 08:51:48 +03:00
Chocobo1
fb5f563537
Merge pull request #17148 from Chocobo1/gui
Fix wrong dialog sizes on first start up
2022-06-05 13:36:41 +08:00
thalieht
2f9c5cdb22
Add "Filter files" field in new torrent dialog
PR #16344.
2022-06-04 12:57:50 +08:00
Chocobo1
fcf50820e8
Don't resize dialog with invalid sizes
This fixes wrong dialog sizes on first startup.
2022-06-03 16:07:36 +08:00
Chocobo1
3fd0241abb
Set dialog properties at the caller site
Redundant `setModal(true)` are removed since the dialog is already opened via `open()`.
2022-06-02 23:53:30 +08:00
Vladimir Golovnev
ab0c82965c
Avoid redundant checks of category names
PR #17130.
2022-05-31 10:42:40 +03:00
Kacper Michajłow
5173a56ebd
Fix DHT/PeX/LSD status when it is globally disabled
Global status takes precedence over specific torrent private status.

PR #17126.
2022-05-31 12:45:28 +08:00
Chocobo1
9cd993d1da
Merge pull request #17116 from Chocobo1/cleanup
Clean up usage of `static` keyword
2022-05-31 12:39:30 +08:00
Chocobo1
73faf67084
Clean up usage of static keyword
They are either misused or redundant, so remove it.
2022-05-30 13:25:34 +08:00
brvphoenix
fd51362545
Don't decompress the reply data for Qt 6.3
PR #17120.
2022-05-30 13:10:29 +08:00
sledgehammer999
56b99f4e19
Merge pull request #17125 from sledgehammer999/cmake_lupdate
Use CMake to update translation files
2022-05-29 20:46:15 +03:00
sledgehammer999
242874e705
Use CMake to update translation files
It uses lupdate directly.
Qt's `qt_add_lupdate()` cmake function doesn't help much.
First of all it is Qt6 only.
Secondly, our project is split into multiple targets but we need all
strings into a single .ts file per language.
Thirdly, it looks like it will skip source files that are added conditionally into the build
via cmake condition checking (eg DBUS source files). We need to gather all strings present
in the source files regardless of the build configuration.

On another note, this is a step towards reducing dependency on qmake/autoconf.
2022-05-29 02:49:57 +03:00
Vladimir Golovnev
a5caa807f5
Initialize torrent status using libtorrent extension
PR #17096.
2022-05-28 09:30:50 +03:00
Chocobo1
c2c17fd053
Revise icon cache look up
Find in `m_iconCache` first because it is cheaper than calling
`QIcon::fromTheme()`.
2022-05-27 16:23:19 +08:00
Chocobo1
f54cc5796e
Move function into anonymous namespace 2022-05-27 16:23:19 +08:00
Chocobo1
a9f99aed48
Revise code 2022-05-27 16:23:18 +08:00
Chocobo1
7eaaa8f92a
Turn static variable into class member 2022-05-27 04:01:37 +08:00
Chocobo1
ca9f5a18d4
Suppress type narrowing warnings 2022-05-27 04:01:34 +08:00
Vladimir Golovnev
4f62900cd3
Update torrent status filter counters consistently
PR #17097.
Closes #15981.
Closes #16490.
2022-05-26 19:55:00 +03:00
sledgehammer999
2c9e1d942b
Merge pull request #17091 from sledgehammer999/ts_newlines_fix
Sync translations from Transifex and run lupdate
2022-05-25 20:44:11 +03:00
Vladimir Golovnev
4032393c0e
Pause torrent in all "fastresume rejected" cases
PR #17087.
Addition to #17064.
2022-05-25 08:24:53 +03:00
xavier2k6
8e854062e8
Sync flag icons with upstream
Upstream commit 1f861ac27d8a3b46e78eaa8ac30d7de35279ab01
Upstream release v6.4.2

PR #17077.
2022-05-25 12:41:16 +08:00
sledgehammer999
cbf9c8ec1a
Sync translations from Transifex and run lupdate 2022-05-25 00:16:57 +03:00
Priit Uring
494593c745
Update clipboard.js to v2.0.11
https://github.com/zenorocha/clipboard.js/releases

PR #17073.
2022-05-24 12:55:30 +08:00
sledgehammer999
3af832ec18
Sync translations from Transifex and run lupdate 2022-05-22 19:14:00 +03:00
Vladimir Golovnev
7e0cd223fd
Revamp tracker entries handling
PR #17017.
2022-05-22 09:09:11 +03:00
Vladimir Golovnev
8c0cd09823
Handle all "fastresume rejected" cases consistently
PR #17064.
2022-05-22 07:23:52 +03:00
Chocobo1
c8b4611d8d
Disable copy, move constructors when inheriting from QObject 2022-05-19 19:07:23 +08:00
Chocobo1
7764169aa3
Disallow narrowing conversions in signal connection 2022-05-19 12:55:07 +08:00
Chocobo1
8d3c19c599
Merge pull request #17031 from Chocobo1/net
Fix wrong GUI behavior in "Optional IP address to bind to" setting
2022-05-19 12:52:35 +08:00
vlakoff
b84333f8a1
Consider brackets within wildcard as regular characters
In glob patterns, square brackets have a special meaning, that may be unexpected by the users.

Thus we escape these brackets, so that the only remaining special characters are the * and ? wildcards.

PR #16965.
2022-05-18 08:33:14 +03:00
thalieht
acdd08e9a2
Consistently emit signal when file "ignored" state is changed
PR #17042.
Closes #17037.
2022-05-18 07:47:48 +03:00
Chocobo1
dbfd6a2368
WebUI: enforce coding style
Actually, not all of them but some that can be enforced by eslint.
The changes are made by eslint with minor manual tweaking.

PR #17046.
2022-05-18 11:37:05 +08:00
Chocobo1
9d858d5cd7
Fix compilation with qmake
Fix up 7c35904062.
2022-05-16 01:15:19 +08:00
Chocobo1
e82c50ed73
Clean up code 2022-05-16 01:15:08 +08:00
Chocobo1
4ce98d57dd
Fix wrong GUI behavior in "Optional IP address to bind to" setting
Previously the address field got erroneously reset to "All addresses"
when the network interface is down.
2022-05-14 18:42:13 +08:00
Chocobo1
114c6d36d1
Clean up code
Add const.
Move template implementation to .cpp file.
2022-05-14 18:30:10 +08:00
Chocobo1
538c88ced4
Improve logic when interfacing settings with combobox
PR #17023.
2022-05-13 12:13:04 +08:00
Chocobo1
7c35904062
Use stacktrace dialog when GUI is enabled
PR #17022.
2022-05-13 12:12:36 +08:00
Chocobo1
5c3c6b63ba
Migrate to Boost.Stacktrace
PR #17014.
2022-05-12 11:06:05 +08:00
Coda
e698c09298
Allow to use POSIX-compliant disk IO type
This patch allows user to switch disk IO type between memory mapped files based type (default in libtorrent 2, and seems causing memory issues) and POSIX-compliant type which is more conservative on memory usage.

Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
Co-authored-by: Vladimir Golovnev (Glassez) <glassez@yandex.ru>

PR #16895.
2022-05-11 21:28:06 +03:00
Vladimir Golovnev
a048ea668f
Use uniform way to export .torrent files
PR #17013.
2022-05-10 15:36:05 +03:00
Vladimir Golovnev
5af78ad2cd
Preserve "skip hash check" when there is no metadata
When torrent is added without metadata libtorrent doesn't honor "seed mode" and doesn't save it in resume data so when metadata is available torrent will still check file hashes. This patch will add a logic that preserves originally enabled "seed mode" until the metadata is received.
PR #17009.
2022-05-10 15:34:38 +03:00
Vladimir Golovnev
338e89176d
Mark all files as complete if torrent is in "seed mode"
Fixes regression of bcfa486.
Closes #16999.
PR #17008.
2022-05-10 15:29:46 +03:00
itlezy
a266599118
Add keyboard navigation keys
* Added keyboard navigation keys for context menu with `&`
* Added `CTRL+M` for force resume.

PR #16988.

Co-authored-by: itLezy <itLezy@users.noreply.github.com>
Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
2022-05-10 11:34:43 +08:00
Chocobo1
002d56d8b3
Fix type mismatch
msys2 was reporting the following error:
```
D:/a/qbittorent_msys2/qbittorent_msys2/src/qBittorrent/src/app/application.cpp: In member function 'void Application::applyMemoryWorkingSetLimit()':
D:/a/qbittorent_msys2/qbittorent_msys2/src/qBittorrent/src/app/application.cpp:777:36: error: no matching function for call to 'min(unsigned int, long unsigned int)'
  777 |     const SIZE_T minSize = std::min((64 * MiB), (maxSize / 2));
      |                            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
```
2022-05-08 16:48:29 +08:00
Chocobo1
be4a1e7fd7
Suppress wrong print specifier
By removing unimportant debug message.
2022-05-08 16:46:36 +08:00
Chocobo1
a0a45333f1
Don't use old style casts 2022-05-08 14:53:27 +08:00
Chocobo1
dba998fea0
Don't use hardcoded path for temp folder 2022-05-08 14:00:59 +08:00
Tom Piccirello
fb7f7d0c75
Add support for exporting .torrent from WebUI
PR #16968.
2022-05-04 12:13:24 +08:00
Chocobo1
e9d3928fe0
Store WebUI port setting in human readable number
Previously it was wrapped in QVariant type.

PR #16977.
2022-05-04 12:11:17 +08:00
Chocobo1
2a6f02fa29
Fix empty selection in WebUI language combobox
This mostly happens with a clean install.

PR #16978.
2022-05-04 12:10:06 +08:00
summer
ce0e5be7ce
Increase limit of maximum number of articles per feed
Closes #16690.
PR #16698.

Co-authored-by: An0n <79678786+an0n666@users.noreply.github.com>
2022-05-03 10:59:47 +08:00
Chocobo1
88a91e0769
Merge pull request #16971 from Chocobo1/dialog
Move stacktrace dialog to gui folder
2022-05-03 10:56:41 +08:00
Chocobo1
21f4676b16
Rename method 2022-05-02 12:35:53 +08:00
Chocobo1
bb2a874fd5
Reset widget property to default
This property wasn't been customized.
2022-05-02 12:35:38 +08:00
summer
56667e717b
Prevent the new update box from blocking input on other dialogues
PR #16678.
2022-05-01 16:18:22 +03:00
Chocobo1
caaaa05710
Move conditionals to the bottom 2022-05-01 14:24:56 +08:00
Chocobo1
d69e6bb7aa
Move stacktrace dialog to gui folder 2022-05-01 14:24:39 +08:00
Chocobo1
a1903e5d67
Delete unreachable code 2022-05-01 13:55:26 +08:00
Chocobo1
64d8db0c93
Move system signal related functions to its own file
And revise "signal safe print" function.
PR #16953.
2022-05-01 12:32:51 +08:00
summer
7b608fd0c9
Reduce the number of hashing threads by default
This seems to be the culprit responsible for slower hash rate in RC2_0 releases.
https://github.com/qbittorrent/qBittorrent/issues/16043#issuecomment-1113774868

PR #16951.
2022-05-01 12:30:25 +08:00
Chocobo1
19cbffb5e2
Remove artificial max limits from "Torrent Queueing" related options
Closes #16936.

PR #16942.
2022-04-30 12:26:18 +08:00
Chocobo1
639ed40314
Disable Linux-specific function when compiling for Windows 2022-04-29 13:49:31 +08:00
Chocobo1
c5cbda0bbe
Avoid splitting code over ifdef boundary
By removing unimportant debug message.
2022-04-29 13:49:31 +08:00
Chocobo1
59e37210f3
Use correct type for comparisons
`_write()` actually returns `int` type.

And fix wrong function parameters.

Closes #16938.
Closes #16944.
2022-04-29 13:49:31 +08:00
Chocobo1
9351f66c26
Add support for exporting .torrent data to buffer
Related: https://github.com/qbittorrent/qBittorrent/pull/16886#discussion_r855882018
PR #16931.
2022-04-27 12:29:00 +08:00
Vladimir Golovnev (Glassez)
1069bea273
Cache native torrent info to avoid extra blocking calls 2022-04-25 09:25:45 +03:00
Vladimir Golovnev (Glassez)
c740d105c9
Don't force update torrent status 2022-04-25 08:32:49 +03:00
Vladimir Golovnev (Glassez)
66a5a9863f
Fill torrent status with initial values when reload 2022-04-25 08:32:44 +03:00
Vladimir Golovnev (Glassez)
7ca47b8916
Delay event processing until status updated 2022-04-25 08:31:50 +03:00
Vladimir Golovnev (Glassez)
bcfa4866fe
Cache indexes of completed files
This avoids extra blocking calls to libtorrent.
2022-04-25 08:31:39 +03:00
xavier2k6
b85b1e8834
Update grunt dependency
Use `*` so we don't need to care about its version anymore.
PR #16917.
2022-04-25 11:38:12 +08:00
Chocobo1
eba5a48abd
Merge pull request #16886 from Chocobo1/export
Add "Export .torrent" action
2022-04-24 12:43:13 +08:00
Chocobo1
a90ade0446
Add "Export .torrent" action 2022-04-23 15:11:09 +08:00
xavier2k6
0b86eb9b4c
Update clipboard.js to v2.0.10
PR #16918.
2022-04-23 12:39:06 +08:00
Vladimir Golovnev
359c4fef9d
Avoid dereferencing null pointers
PR #16896.
Closes #16884 and similar issues.
2022-04-19 13:52:56 +03:00
Chocobo1
71b1cb3b9c
Remove unused header 2022-04-19 11:35:51 +08:00
Vladimir Golovnev
613e9866aa
Merge pull request #16876 from glassez/blocking
Avoid some blocking calls to libtorrent

Under some conditions (when libtorrent is doing heavy work), blocking calls can wait quite a long time, thereby suspending the main application thread. In some cases, we can avoid this, since we have enough data to make the job without call to libtorrent. Although in some cases it may require a little more work to be done in the main thread, but overall responsiveness still benefits greatly in the end, especially when the libtorrent working thread is heavily loaded.
2022-04-16 19:27:41 +03:00
Chocobo1
bc937d38a2
Allow to set "working set limit" on non-Windows OS
PR #16874.
2022-04-16 11:36:58 +08:00
Vladimir Golovnev (Glassez)
35fcf39fc8
Add additional trackers without extra blocking call 2022-04-15 11:45:10 +03:00
Vladimir Golovnev (Glassez)
bd45dc5d0f Avoid some blocking calls to libtorrent 2022-04-14 15:22:32 +03:00
Vladimir Golovnev
7377974731
Improve path extension handling
PR #16867.
2022-04-14 09:43:07 +03:00
Requi
669b67e666
WebAPI: return correct status
Fix web API returning Not Found instead of Forbidden.

When not having a session the API would return "Not Found" instead of "Forbidden" when trying to access a non-public endpoint.

PR #16866.
2022-04-14 08:26:19 +03:00
Chocobo1
a2b85ba1fd
Provide interface for Application class
PR #16864.
2022-04-14 12:04:58 +08:00
Chocobo1
dc22109fa7
Merge pull request #16863 from Chocobo1/run
Remove redundant function
2022-04-13 12:05:58 +08:00
Vladimir Golovnev
4471a6377e
Have separate API controller instances per session
PR #16848.
2022-04-12 13:39:35 +03:00
Chocobo1
3f762a416d
Use proper method for deferred calls 2022-04-12 16:23:39 +08:00
Chocobo1
a59a6ce8e4
Remove redundant function
This helper function is useless after using `Path` class.
2022-04-11 13:07:53 +08:00
Chocobo1
189514c6de
Fix wrong v2 hash string displayed in WebUI
Previously `0000...` was erroneously displayed when v2 hash is absent,
now it correctly shows the `N/A`.

PR #16846.
2022-04-10 12:46:24 +08:00
Vladimir Golovnev
dded874350
Correctly apply content layout when "Skip hash check" is enabled
PR #16825.
2022-04-06 14:01:41 +03:00
Chocobo1
e42fa0e027
Merge pull request #16820 from Chocobo1/comparisons
Move comparison operator out of class
2022-04-06 13:35:34 +08:00
Vladimir Golovnev
33ffe95294
Correctly populate trackers filter list
PR #16814.
2022-04-05 07:28:00 +03:00
Vladimir Golovnev
0657238ad1
Don't forget to create 'download_path' field
PR #16468.
2022-04-05 07:27:11 +03:00
Vladimir Golovnev
4efece4ab8
Use an appropriate method to show modal dialog
PR #16809.
2022-04-05 07:26:17 +03:00
Chocobo1
b9b2ed64f9
Assign temporary data to a variable
This is mainly to avoid dangerous code pattern: getting an iterator on a
temporary object. Previously `data()` returns a const reference so the
code wasn't doing any harm.
2022-04-05 11:49:32 +08:00
Chocobo1
16bc0531f4
Simplify code 2022-04-05 10:39:23 +08:00
Chocobo1
39c34078d6
Move comparison operator out of class 2022-04-04 16:32:14 +08:00
Chocobo1
9318f05e2b
Merge pull request #16801 from Chocobo1/int
Migrate away from unsigned integer types
2022-04-04 13:13:36 +08:00
sledgehammer999
95f3073e6f
Merge pull request #16745 from sledgehammer999/drop_qt_translations_folder
Drop qt translations folder
2022-04-04 01:56:56 +03:00
Chocobo1
6f4a9390ba
Fix wrong conversion to QVariant
It was converted to bool-like type which is wrong.
2022-04-03 13:34:29 +08:00
Chocobo1
0eb6967bb2
Migrate away from unsigned integer types
Signed integers should be preferred in these cases.
2022-04-03 13:34:29 +08:00
Chocobo1
2854630b1c
Use signed integer type for counters 2022-04-03 13:33:55 +08:00
Chocobo1
bbd781c420
Omit redundant cast 2022-04-03 13:01:44 +08:00
Chocobo1
af7c32d3aa
WebUI: remove temporary element 2022-04-02 17:26:26 +08:00
Chocobo1
0d334369f0
WebUI: show correct location path
The `path` might contains '&' (delimit character) so it must be
encoded.
Closes #15976.
2022-04-02 17:26:26 +08:00
Chocobo1
08f3630f01
WebUI: make various dialog resizable
And enlarge dialog default width.
2022-04-02 17:26:24 +08:00
Vladimir Golovnev
df2d449f9b
Revamp content layout handling
Apply content layout only if desired file names aren't provided.
Remove helpers with confusing signatures.
Don't remove root folder twice.

PR #16724.
Closes #16259.
2022-04-01 09:35:45 +03:00
Chocobo1
eab455422f
Add missing header
Fix up 75c93d72be.
2022-03-29 11:19:37 +08:00
Chocobo1
75c93d72be
Revise string literal usage
This commit covers src/gui folder.
PR #16757.
2022-03-29 10:41:17 +08:00
sledgehammer999
f5239ffb0b
CMake: Use installed Qt's translations for packaging 2022-03-29 01:52:23 +03:00
Chocobo1
7c1a986e61
Implement stringable interface for Version type 2022-03-26 13:58:25 +08:00
Chocobo1
c6b772da11
Improve function interface
`SettingsStorage` methods require `QString` so make `SettingValue` follow it.
`Path::operator+` can use `QStringView` to accept wider audience.
2022-03-26 12:41:02 +08:00
An0n
11cfe38d1c
Fix WebUI crash due to missing tags from config
Tags can be missing from config but set inside .fastresume. May happen due to corrupted/deleted config.
Closes #11906.
PR #16711.
2022-03-26 11:56:18 +08:00
Chocobo1
4ca6de2b54
Revise string literal usage
PR #16703.
2022-03-26 11:53:50 +08:00
Chocobo1
bbd936fdfa
Don't use explicit memory management
And avoid dangling pointers.
2022-03-24 14:44:38 +08:00
Chocobo1
8a708fd97e
Use proper type to represent a path 2022-03-23 22:04:05 +08:00
An0n
bf8d993743
Change Downloaded to Times Downloaded in trackers tab
PR #16677.
2022-03-23 12:57:45 +08:00
Vladimir Golovnev
c029122a8e
Avoid integer overflow when calculating working set size 2022-03-23 07:56:59 +03:00
Chocobo1
6c10aa33e1
Provide interface for serialization to string type
PR #16685.
2022-03-23 12:55:41 +08:00
sledgehammer999
b7c098c5e6
Sync translations from Transifex and run lupdate 2022-03-22 15:47:05 +02:00
Vladimir Golovnev (Glassez)
386f99cb1d
Fix "Set location" to be really applied 2022-03-21 11:58:37 +03:00
Vladimir Golovnev (Glassez)
a4b606c6e9
Fix compilation issues due to inappropriate QString usage 2022-03-21 11:50:32 +03:00
AbeniMatteo
baa8d2c326
Add option to toggle filters sidebar
PR #15409.
2022-03-21 12:41:06 +08:00
Chocobo1
e1ca0f3ff9
Merge pull request #16669 from Chocobo1/literal
Use QString literals
2022-03-21 12:09:43 +08:00
Vladimir Golovnev
ca2be2f499
Prevent Digest32 shared data from being detached
Delayed hash string generation should not cause detaching of shared data.

PR #16664.
2022-03-20 12:26:13 +03:00
Vladimir Golovnev
5960e7dda6
Prevent crash when open torrent destination folder
Uses the same workaround as Qt does to call ShellExecute() when you use QDesktopServices::openUrl().
PR #16670.
Closes #16423.
2022-03-20 11:08:27 +03:00
Chocobo1
efc04645b7
Use QString literals
It covers src/webui and enables `QT_NO_CAST_FROM_ASCII`.
2022-03-20 13:33:40 +08:00
Chocobo1
f888fb4ac7
Remove unused code 2022-03-19 15:57:37 +08:00
Chocobo1
1b4c5fd34d
Remove unused variable 2022-03-18 12:48:37 +08:00
Chocobo1
802ec5a14e
Use QString literals
This patch covers src/gui and some leftovers from previous commit.
2022-03-18 12:46:01 +08:00
Chocobo1
5341478036
Merge pull request #16647 from NotTsunami/hscroll
Add horizontal scrolling for tracker list and torrent content
2022-03-18 12:43:32 +08:00
Chocobo1
7694b21dff
Enlarge "speed limits" icons
And make use of QStyle pixelMetric().
PR #16630.
2022-03-18 12:27:45 +08:00
Tyler Dunn
cf061b7d30
Allow buttons to be focusable
This improves accessibility.
PR #16648.
2022-03-17 12:51:47 +08:00
Chocobo1
7fffb6526c
Remove redundant properties
And revise tooltip messages.
PR #16651.
2022-03-17 12:50:08 +08:00
NotTsunami
dd5b16831c Unify coding style 2022-03-16 21:45:24 -04:00
Vladimir Golovnev
b3ca2ea179
Merge pull request #16573 from glassez/resume-data
Prevent loading resume data with inconsistent ID
2022-03-16 20:30:04 +03:00
NotTsunami
b5d67f90e4 Add horizontal scrolling for tracker list and torrent content 2022-03-15 15:05:47 -04:00
Vladimir Golovnev (Glassez)
ce42f7c9f1
Properly handle metadata download for an existing torrent 2022-03-15 18:17:24 +03:00
Chocobo1
02869d7428
Avoid unnecessary lookups
Fix up 30319e51e5.
PR #16629.
2022-03-15 12:33:12 +08:00
Aleksandr Cupacenko
67b35b76ac
Fix C++ word breaking
Fixes #13805.
PR #16636.
2022-03-14 12:27:44 +08:00
Chocobo1
154ee1a73e
Use hashing helpers provided by Qt6 2022-03-13 17:37:54 +08:00
Chocobo1
b3fb6bd990
Avoid redundant hashing
The return type of `std::hash()` is larger (or equal) than what
`qHash()` requires so we can omit hashing it again.
2022-03-13 17:37:54 +08:00
Chocobo1
926d51839f
Update function signature for Qt6 qHash()
Since the `qhash()` signature has changed in Qt6.
2022-03-13 16:05:11 +08:00
Chocobo1
8de966ea88
Merge pull request #16585 from Chocobo1/qstring
Use QString literals
2022-03-12 12:49:08 +08:00
Chocobo1
85b0a40a0e
Merge pull request #16587 from jagannatharjun/tracker-filter
Optimize torrent filters in GUI
2022-03-12 12:48:49 +08:00
Chocobo1
88fe94bd6a
Remove obsoleted functions from Utils::Gui namespace
`widget` parameter is kept for now to avoid major disruption for other PR.
Also add comments for loading svg images.

PR #16613.
2022-03-11 13:40:58 +08:00
Aleksandr Cupacenko
1b53c590f2
Allow blank lines in multipart form-data input
Fixes #11298.
PR #16579.
2022-03-11 13:40:22 +08:00
Chocobo1
2ee5b35f48
Use proper image loading path for SVG icons 2022-03-11 00:11:30 +08:00
Chocobo1
f0dd7b7dae
Use QString literals
This patch covers src/app and src/base folders.
Follow up of ab64ee872b.
2022-03-11 00:11:30 +08:00
Chocobo1
9f32e6e50d
Fix wrong parentheses
Fix up 294ea17222.
2022-03-08 13:58:02 +08:00
An0n
801cfdbc24
Allow setting the number of maximum active checking torrents
This is to allow re-checking of multiple torrents simultaneously. This will benefit users who
have multiple disks or SSD.
Closes #15296.

Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2022-03-08 13:24:12 +08:00
xavier2k6
889d994dbc
Remove unnecessary UI properties from "IP Filter Refresh" button
PR #16575.
2022-03-08 13:22:23 +08:00
Chocobo1
97c28e1e51
Merge pull request #16594 from Chocobo1/alert
Add option for enable/disable performance warnings from libtorrent
2022-03-08 13:19:54 +08:00
Prince Gupta
ad6e2b4b94 Create hash string of Digest on demand
most of the time hash string is not needed and InfoHash is often used as
temporaries for torrent searching in handling of torrent alerts. This
improves the creation time of Infohash
2022-03-08 01:14:36 +05:30
Prince Gupta
da12daffee Cache tracker item in TrackerFilterList 2022-03-08 01:12:06 +05:30
Prince Gupta
30319e51e5 Improve Status Filter
replaces quadratic update operation with linear
2022-03-08 01:12:06 +05:30
Chocobo1
294ea17222
Provide upstream documentation link for performance warning 2022-03-07 13:26:37 +08:00
Chocobo1
fad954df18
Add option for enable/disable performance warnings from libtorrent 2022-03-06 21:05:17 +08:00
Prince Gupta
25be00931a Optimize tracker insertion in TrackerFiltersList 2022-03-06 12:04:01 +05:30
Prince Gupta
cd9ed1706d Improve torrent event handling in TrackerFiltersList 2022-03-06 12:04:01 +05:30
An0n
aa189a7fc6
Disable force reannounce when it is not possible
Closes #12080.
PR #16551.
2022-03-06 12:59:31 +08:00
Vladimir Golovnev (Glassez)
cbc0ef860b
Prevent loading resume data with inconsistent ID 2022-03-04 09:22:56 +03:00
Chocobo1
ab64ee872b
Use QString literals
The plan is to define `QT_NO_CAST_FROM_ASCII` eventually.
PR #16561.
2022-03-04 13:25:22 +08:00
Aleksandr Cupacenko
2c8447853b
Focus save path when Manual mode is selected initially
Closes #15972.
PR #16536.
2022-03-02 13:27:22 +08:00
Vladimir Golovnev
213b18e33b
Merge pull request #16531 from glassez/save-path
Correctly handle changing of global save path
2022-03-01 19:59:35 +03:00
Vladimir Golovnev
299f981441
Allow to limit max memory working set size
PR #16485.
2022-03-01 16:42:25 +03:00
An0n
7ea827f8d3
Add right click menu for status filters
This will allow users to perform action on all torrents with a single click instead of having to select all with ctrl+A or other cumbersome ways. Basically it copies the function found in tracker/category filters.

Closes #13398.
PR #16547.
2022-03-01 13:18:48 +08:00
An0n
c2af5c6a3f
Allow setting priority for partially downloaded multi-file torrent
Currently you can't directly change the priority of a partially completed multi file torrent. You'll have to start downloading those files and then change their priority.

Closes #10994.
Closes #8673.
PR #16546.
2022-03-01 12:53:39 +08:00
thalieht
63812ca951
Don't use hack to make the first column movable
PR #16545.
2022-03-01 12:50:10 +08:00
Aleksandr Cupacenko
98bdfcef65
Fix scrolling to the lowermost visible torrent
Fixes #3221.
PR #16543.
2022-03-01 12:49:40 +08:00
Chocobo1
ac97ed685f
Add tuning options related to performance warnings
Related: #16462.
PR #16538.
2022-03-01 12:44:48 +08:00
Vladimir Golovnev (Glassez)
c5ff9b353c
Allow to disable Automatic mode when "temp" path changed 2022-02-28 09:41:44 +03:00
Vladimir Golovnev (Glassez)
04c1988665
Correctly handle changing of global save path 2022-02-28 09:04:37 +03:00
Aleksandr Cupacenko
d2aad3a3ca
Rename content tab "Size" column to "Total Size"
Closes #7348.
PR #16526.
2022-02-27 12:48:11 +08:00
Aleksandr Cupacenko
ca09b0491e
Enable shortcut folders for the Open and Save directory dialogs
PR #16527.
2022-02-26 22:24:50 +03:00
Aleksandr Cupacenko
2e08ae82b1
Enable Combobox editor for the "Mixed" file download priority
Fixes #1544.
PR #16522.
2022-02-26 12:53:41 +08:00
Chocobo1
a21bff1dbd
Merge pull request #16483 from Chocobo1/preference1
Convert to QString literals
2022-02-22 14:15:49 +08:00
Chocobo1
14fc3dc9b3
Suppress conversion warning 2022-02-21 13:58:51 +08:00
Chocobo1
5cb295341c
Convert to QString literals 2022-02-21 13:58:51 +08:00
Chocobo1
b854c3b00e
Unify log messages format
This improves readability and may allow users to match log message with
better accuracy.
Now log message is consisted of 2 parts:
The first part is a short sentence describing the event. It should avoid
writing out the specifics of the event as it will be described in the
next part of the message. The sentence should use correct tense of the
event.
The second part consist of `Name: Value` pairs which will provide
sufficient info for the event.

Note that none of the message parts is mandatory, one of them can be
omitted when the resulting log message is clear enough.

PR #16437.
2022-02-21 13:07:04 +08:00
Vladimir Golovnev
2d3ff6a97c
Use std::optional to represent "any value" filters
PR #16460.
2022-02-20 13:17:34 +03:00
Vladimir Golovnev
70ec183fca
Merge pull request #16444 from glassez/path-has-ext
Improve performance of checking path extension
2022-02-19 07:08:54 +03:00
Vladimir Golovnev (Glassez)
1e45b7f50b
Add fast way of removing suggested extension 2022-02-18 11:37:51 +03:00
Vladimir Golovnev (Glassez)
293479a1f2
Improve performance of checking path extension 2022-02-18 11:37:51 +03:00
Chocobo1
852a14992c
Add literal operator to efficiently construct QString in Qt5
PR #16448.
2022-02-18 11:28:04 +08:00
Kevin Cox
37e6a9ebc2
Fix UI crash when torrent is in non-existent category.
This checks that `category_list[categoryHash].torrents` is truthy before dereferencing it. In some cases the API response will have a torrent in a category that doesn't exist resulting in the check to return `undefined` which is not `null`. This broadens the check so that it will create the category even if null.
PR #16432.
2022-02-17 12:20:54 +08:00
Vladimir Golovnev
b3f5bf1583
Try to recover missing categories
PR #16430.
2022-02-16 10:27:36 +03:00
sledgehammer999
a3a8c19dc2
Sync translations from Transifex and run lupdate 2022-02-14 19:28:07 +02:00
Chocobo1
bc94de5626
Merge pull request #16428 from Chocobo1/path
Improve Path constructor
2022-02-14 14:02:50 +08:00
Vladimir Golovnev
c3a64b3d6c
Cache file priorities
Speedup access to file priorities by avoiding extra blocking call to libtorrent thread.
Improve the Torrent interface by hiding the asynchrony of file priority changes behind the scenes.

PR #16425.
2022-02-13 08:07:30 +03:00
Chocobo1
70eed10a34
Fix wrong size
Fix up cf96e6c642.
2022-02-12 16:54:38 +08:00
Chocobo1
56c3983885
Improve Path constructor performance 2022-02-12 16:54:38 +08:00
Vladimir Golovnev
78eaa49cd6
Correctly register PathList alias
PR #16411.
2022-02-10 08:12:33 +03:00
Chocobo1
2668a42f0c
Merge pull request #16408 from Chocobo1/vararray
Use QVarLengthArray whenever applicable
2022-02-10 12:44:41 +08:00
Vladimir Golovnev
4a7f1116ac
Improve tracker status handling
PR #16383.
2022-02-09 18:23:41 +03:00
Chocobo1
f12ce78b5c
Remove hack for outdated IE 6 browser
The `mask()` isn't valid in CSS.
2022-02-09 19:00:28 +08:00
Chocobo1
610009fb7f
Make Path::operator== a free function 2022-02-09 19:00:27 +08:00
Chocobo1
4cb075b168
Use "table look-up" method for reversing byte
This method takes constant time and is less prone to (CPU) pipeline stalling due to less
computation. Also it is slightly faster than the previous method.
2022-02-09 19:00:27 +08:00
Chocobo1
cf96e6c642
Use QVarLengthArray whenever applicable 2022-02-09 19:00:24 +08:00
Vladimir Golovnev
dd1bd8ad10
Implement class for handling filesystem paths
PR #15915.
2022-02-08 06:03:48 +03:00
Vladimir Golovnev
facfa26eed
Allow to use Category paths in "Manual" mode
If the option is enabled any relative save path will be resolved against an appropriate Category path instead of Global default one.

PR #16330.
2022-02-02 09:24:09 +03:00
Prince Gupta
0012a3ede7
Optimize completed files handling
PR #16329.

Co-authored-by: Vladimir Golovnev (Glassez) <glassez@yandex.ru>
2022-02-01 08:29:54 +03:00
Vladimir Golovnev
b61a818a3f
Merge pull request #16333 from thalieht/newdlg
Add Select All/None buttons in new torrent dialog
2022-01-31 15:38:33 +03:00
Chocobo1
a2c44dedce
Fix crash when shutting down and clicked on system tray icon
Disconnect all signals of system tray icon when shutting down.

Closes #16324.
PR #16328.
2022-01-31 11:54:44 +08:00
thalieht
a8ad4f784a Fix "Free space on disk" in new torrent dialog
Always initialize it.
2022-01-30 18:52:18 +02:00
thalieht
78d69bcbf0 Add Select All/None buttons in new torrent dialog 2022-01-30 18:52:18 +02:00
Prince Gupta
414361a3db
Improve tracker error handling
* Improve tracker error handling
* Fix typo in function name

PR  #16298.
2022-01-30 08:56:31 +03:00
Prince Gupta
1d4071d6d8
Don't rename file because of difference in path separator
PR #16317.
2022-01-30 08:54:37 +03:00
Vladimir Golovnev
47daf1b358
Allow to open incomplete files from content view
Fixes regression from f44341a8e2.

PR #16318.
2022-01-30 08:52:16 +03:00
Chocobo1
7a910a8cc1
Merge pull request #16256 from Chocobo1/bitarray
Speed up bitfields conversion
2022-01-28 11:59:57 +08:00
Vladimir Golovnev
9818c7b6a4
Open correct directory when clicked on Browse button
PR #16252.
2022-01-27 07:41:30 +03:00
Vladimir Golovnev
ca9e5e8531
Change torrent moving state when it is cancelled
PR #16267.
2022-01-27 07:40:17 +03:00
Chocobo1
aafee60033
Allocate memory on stack whenever feasible
The fast path gives another 20% speed up than the slower path.
2022-01-27 03:36:06 +08:00
Vladimir Golovnev
adf7c4ffb6
Merge pull request #16268 from glassez/fix-15955
Store hybrid torrents using "torrent ID" as basename
2022-01-26 15:17:31 +03:00
Prince Gupta
96965ae347
CMake: Call UIC on the .ui files manually
Fixes unnecessary recompilation when editing GUI files.

PR #16151.
2022-01-26 14:44:44 +03:00
Vladimir Golovnev
bc2ef5d726
Add confirmation for enabling Auto TMM from context menu
* Add confirmation for enabling Auto TMM from context 
* Add tooltip to Automatic Torrent Management context menu action

PR #16241.
2022-01-26 06:56:46 +03:00
Vladimir Golovnev (Glassez)
7a539d9890
Store hybrid torrents using "torrent ID" as basename 2022-01-25 11:39:32 +03:00
Vladimir Golovnev (Glassez)
c40408b337
Make Digest32 implicitly shared class 2022-01-25 10:18:23 +03:00
Chocobo1
4e2daf117b
Speed up bitfields conversion
The old code took 3~5 times longer than the newer version.
2022-01-25 12:19:50 +08:00
Chocobo1
9553afc3c2
Merge pull request #16247 from Chocobo1/count_bits
Speed up piece relevance calculation
2022-01-25 12:11:36 +08:00
Vladimir Golovnev
26352c9eb4
Cache pieces info
PR #16238.
2022-01-25 06:05:16 +03:00
thalieht
62c167fc77 Add tooltip to Automatic Torrent Management context menu action 2022-01-24 18:32:43 +02:00
thalieht
03c774eae7 Add confirmation for enabling Auto TMM from context menu
Closes #16046
2022-01-24 18:32:43 +02:00
Chocobo1
53992bf0d5
Initialize class variable in initializer list 2022-01-24 13:47:34 +08:00
Chocobo1
ff99e5ac9a
Speed up piece relevance calculation
For ~800 pieces, this roughly cuts the run time (of this function) in
half.
2022-01-24 12:04:26 +08:00
Prince Gupta
0cc318664d
Improve Torrent content tree structure creation
Use QHash to cache folder items.
PR #16183.
2022-01-24 10:55:06 +08:00
Chocobo1
44c8d60a70
Remove unused parameter 2022-01-23 15:03:26 +08:00
Chocobo1
54252184ab
Make use of std algorithms
Since the result code is shorter.
2022-01-23 15:03:26 +08:00
Chocobo1
7ae68b20e7
Add "Auto resize columns" functionality 2022-01-23 15:03:05 +08:00
Chocobo1
208234b934
Clean up code related to show/hide columns 2022-01-21 22:59:21 +08:00
thalieht
1729b9f29c
Fix wrong closing brace position
Regression from 0086bf8958.
PR #16172.
2022-01-20 12:30:46 +08:00
Vladimir Golovnev
5d69334287
Don't start separate event loop for QFileDialog
It conflicts with QMenu on Qt6 that causes the crash.

PR #16158.
2022-01-20 07:22:16 +03:00
Vladimir Golovnev
4d54fb675f
Correctly handle received metadata
It did not work correctly, since it assumed that 'lt::torrent_plugin' is created at an earlier stage and is able to track all changes in the torrent state, but in reality it turned out that it was created after the torrent moved to the `downloading_metadata` state, so we had to additionally handle it in the constructor.

PR #16121.
2022-01-16 16:06:15 +03:00
Chocobo1
e93de54eb5
Merge pull request #16099 from Chocobo1/errormsg
Revise error message
2022-01-15 12:01:55 +08:00
Vladimir Golovnev
43441d8291
Handle missing torrent alerts
PR #16085.
2022-01-14 15:18:18 +03:00
Chocobo1
5ebbed8160
Revise error message
Remove the period mark at the end of error message since
`errc.message()` already contains one.
2022-01-14 14:48:41 +08:00
thalieht
3fdb330bd9
Restore all settings to the torrent list's context menu
Set location
Category
Sequential download
Download first/Last pieces first
Automatic Torrent Management

PR #16016.
2022-01-14 14:45:03 +08:00
Vladimir Golovnev
5f623e32c4
Correctly handle XML parsing errors
PR #16071.
2022-01-13 09:36:08 +03:00
thalieht
7c37c5c06f
Update the torrent's download path field when changing category
In torrent options dialog while in Automatic Management Mode.
PR #16026.
2022-01-13 12:44:50 +08:00
Chocobo1
e4a67183bd
Update default value of "Type of service for peers"
Upstream change:
3d701c7380
PR #16036.
2022-01-12 11:53:07 +08:00
sledgehammer999
d25be686ee
Merge pull request #16030 from sledgehammer999/migrate_proxy_enum
Migrate proxy settings
2022-01-12 02:51:57 +02:00
Vladimir Golovnev
a3be239a60
Keep "torrent info" alive while generating .torrent file
PR #16018.
2022-01-11 07:29:42 +03:00
Vladimir Golovnev
709a053c7c
Merge pull request #16009 from glassez/dont-move-into-itself
Don't try to move storage into its current location
2022-01-11 07:26:22 +03:00
Vladimir Golovnev
d39c6bef4b
Correctly handle Auto TMM in Torrent Files Watcher
PR #13690.
2022-01-11 07:25:30 +03:00
Vladimir Golovnev
84a8158aa2
Correctly track the root folder name change
PR #16004.
2022-01-11 07:24:24 +03:00
sledgehammer999
a7c5826e05
Migrate proxy settings
Q_ENUM_NS(ProxyType) was introduced in 4.4.0.
Before that wrapping QMetaEnum used the int value itself for loading/storing.

Closes #15994
2022-01-11 02:50:03 +02:00
Chocobo1
d6e0164766
WebAPI: fix wrong key used for categories
Regression from 1c0f8b4289.
Closes #15969.
PR #15988.
2022-01-10 13:31:15 +08:00