Commit Graph

49 Commits

Author SHA1 Message Date
Vladimir Golovnev
f8a304abdc Implement base classes for application components
PR #17219.
2022-06-25 15:46:55 +03:00
Vladimir Golovnev
4471a6377e Have separate API controller instances per session
PR #16848.
2022-04-12 13:39:35 +03:00
Chocobo1
2854630b1c Use signed integer type for counters 2022-04-03 13:33:55 +08:00
Chocobo1
4ca6de2b54 Revise string literal usage
PR #16703.
2022-03-26 11:53:50 +08:00
Vladimir Golovnev (Glassez)
a4b606c6e9 Fix compilation issues due to inappropriate QString usage 2022-03-21 11:50:32 +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
Vladimir Golovnev
dd1bd8ad10 Implement class for handling filesystem paths
PR #15915.
2022-02-08 06:03:48 +03: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
Vladimir Golovnev (Glassez)
1c0f8b4289 Redesign "Incomplete folder" feature
Change "Incomplete/temp folder" term with "download folder".
Allow to set "download folder" per torrent (in manual mode) and per category (in automatic mode).
2022-01-01 20:58:49 +03:00
Vladimir Golovnev (Glassez)
62b50d1475 Make TorrentInfo immutable 2021-12-19 16:16:16 +03:00
Chocobo1
e3fe66d3ec Store enum type in settings directly
Affected settings will be migrated to new keys so nothing should break.

PR #15800.
2021-12-06 13:53:52 +08:00
Vladimir Golovnev (Glassez)
f022458383 Raise minimum supported Qt version to 5.12 2021-03-13 15:33:58 +03:00
Vladimir Golovnev (Glassez)
561b597031 Improve "info hash" handling
Define "torrent ID" concept, which is either a SHA1 hash for torrents of version 1,
or a SHA256 hash (truncated to SHA1 hash length) for torrents of version 2.
Add support for native libtorrent2 info hashes.
2021-03-12 12:43:14 +03:00
Vladimir Golovnev (Glassez)
7a8c05dc7c Improve tracker entries handling 2021-03-10 19:54:34 +03:00
Vladimir Golovnev (Glassez)
8cfd803222 Drop implicit conversions between InfoHash and QString 2021-03-06 12:35:42 +03:00
Vladimir Golovnev (Glassez)
0b4fef19f6 Remove redundant suffix from TorrentHandle class
Originally, it was just a wrapper for libtorrent::torrent_handle class, so it mimicked its name.
It was then transformed into a more complex aggregate, but the name was retained (just by inertia).
Unlike libtorrent::torrent_handle class in whose name "handle" means the pattern used,
it does not matter for qBittorrent classes and just eats up space in the source code.
2021-01-06 16:28:17 +03:00
Chocobo1
90a1ea4281 Don't use removed stat metric in libtorrent 2.0
For now, the metric is not entirely removed due to WebAPI still needs to
access it.
2020-12-24 12:04:14 +08:00
Vladimir Golovnev (Glassez)
c41df9ffbd Improve coding style 2020-11-17 21:02:37 +03:00
brvphoenix
799ad0feff Fix the issue that IPv6 address can't be banned
The ban action doesn't depend on ipfilter.
2020-10-21 18:21:07 -07:00
FranciscoPombal
8f8f7ebd15 Remove DISABLE_COUNTRIES_RESOLUTION define 2020-07-08 01:07:50 +01:00
Thomas Piccirello
ad4d8d28ec Add Trackers section to Web UI sidebar
Closes #7601.
2020-05-07 19:10:55 -07:00
Thomas Piccirello
84a40c1665 Include trackers in /sync/maindata API endpoint 2020-05-04 00:11:45 -07:00
Vladimir Golovnev (Glassez)
1132b84548 Split TorrentHandle interface and implementation 2020-04-16 20:22:26 +03:00
FranciscoPombal
a81789f4af Fix total connected peers count calculation
Also fix small typo in function name.
2020-03-17 18:01:57 +00:00
Chocobo1
e32ef7f5c5 Use implicit sharing when getting categories from Session class 2019-10-30 01:46:57 +08:00
Chocobo1
e90a2c00a5 Replace QList by QVector 2019-08-05 20:56:15 +08:00
Chocobo1
7f300b757f Use C++11 uniform initialization 2019-07-31 23:48:41 +08:00
Chocobo1
bad588a749 Move data keys into anonymous namespace and sort them 2019-07-31 23:48:41 +08:00
Chocobo1
25a94ee60a Avoid redundant data conversions and lookups 2019-07-31 23:48:41 +08:00
Vasiliy Halimonchuk
b530e19a44 Implement tag management for WebUI 2019-07-23 13:30:11 +03:00
Vladimir Golovnev (Glassez)
ad6a40d5f4 Extract PeerAddress class into separate file 2019-07-23 06:27:35 +03:00
thalieht
7b31868e3c Rename priority to queue in the context of torrents 2019-07-13 14:04:16 +03:00
thalieht
9995967fbf Remove some unused #include 2019-06-04 17:48:55 +03:00
Chocobo1
94aeeed95f Work around the crash occurred in QTimer
See Qt commit:
https://code.qt.io/cgit/qt/qtbase.git/commit/src/corelib/kernel/qtimer.cpp?id=a623fe8d2a60ff333d5779f877e3b20f0e141ff1

Fixes #9985.
2019-04-07 15:13:33 +08:00
thalieht
92a290895b Convert vars into refs to avoid copy construction from const refs 2019-02-16 18:54:17 +02:00
Chocobo1
6d29a3af60 Make use of std algorithms 2019-02-05 13:35:54 +08:00
thalieht
1f36b8b89f Combine qAsConst() with copyAsConst() to asConst() 2018-11-28 23:41:23 +02:00
thalieht
6b1d26d555 Convert all foreach() to range-based for() 2018-11-28 23:40:12 +02:00
Thomas Piccirello
f2957c721d Use QElapsedTimer 2018-10-22 23:17:46 -04:00
Thomas Piccirello
2aea235e34 Add free disk space to WebUI status bar
Closes #6829.
2018-10-22 22:06:14 -04:00
Thomas Piccirello
63c53766b4 Add save path and editing to WebUI new category dialog 2018-08-31 11:27:05 -04:00
Thomas Piccirello
a0e6007fc1 Include category save path in web api sync data 2018-08-18 22:04:21 -04:00
Chocobo1
0217d5b4c0 Replace single-character string with character literal
Also remove unnecessary dynamic allocation.
2018-07-21 23:26:15 +08:00
sledgehammer999
375b15727d Show rechecking progress
When having big torrents, the rechecking might take a while to
complete. Users need some sort of feedback that progress is being made.
Also, I changed the float to qreal since that's the return type.
2018-05-13 12:32:17 +03:00
Thomas Piccirello
9f36b54b04 WebUI Add Limit Share Ratio context menu option
Closes #6815, #7602.
2018-04-11 23:45:54 +08:00
Thomas Piccirello
3f0fbc0810 WebUI rename property to match its definition 2018-04-11 23:45:54 +08:00
Luís Pereira
ac42ccb5e4 Don't create temporary containers just to iterate over them
Stops temporary containers being created needlessly due to API misuse.
For example, it’s common for developers to assume QHash::values() and
QHash::keys() are free and abuse them, failing to realize their
implementation internally actually iterates the whole container, allocates
memory, and fills a new QList.

Added a removeIf generic algorithm, similar to std ones. We can't use std
algorithms with Qt dictionaries because Qt iterators have different
behavior from the std ones.

Found using clazy.
2018-03-18 16:22:12 +03:00
Thomas Piccirello
a8420a43f9 Format Read cache hits as percentage 2018-02-23 14:46:47 -05:00
Vladimir Golovnev (Glassez)
27d8dbf13b Redesign Web API
Normalize Web API method names.
Allow to use alternative Web UI.
Switch Web API version to standard form (i.e. "2.0").
Improve Web UI translation code.
Retranslate changed files.
Add Web API for RSS subsystem.
2018-01-28 19:16:24 +03:00