Commit Graph

633 Commits

Author SHA1 Message Date
Chocobo1
4dea03fc74 Remove unused constants 2018-04-17 20:29:43 +08:00
sledgehammer999
ddba79ef3d Fix wrong QString::arg() usage that leads to crash
We need to be careful when using the multi-arg version of
QString::arg() and passing as 2nd, 3rd etc parameter an int.
It doesn't do the same as passing multiple QStrings.
2018-04-11 17:01:43 +03:00
Mike Tzou
38837db8de Merge pull request #8699 from Chocobo1/linking
Add helper for loading Windows system functions
2018-04-11 00:13:55 +08:00
sledgehammer999
341a971cd3 Merge pull request #8711 from sledgehammer999/recheck_paused
Avoid data corruption when rechecking paused torrents
2018-04-10 16:18:12 +03:00
sledgehammer999
747c70a58e Avoid data corruption when rechecking paused torrents
Libtorrent can recheck only unpaused torrents. We get around this by
unpausing the torrent, issuing the recheck and pausing again after we
get alerted by libtorrent that the recheck has finished. This alert is
asyncronous. There is a small time frame where the program might start
downloading and writing data to the file before we pause it. This can
lead to data corruption if the file on disk is totally different that
the one expected by the torrent AND the file on disk is a valid file on
its own. OR in case the user points the new torrent to the wrong
directory by mistake.
To get around this the torrent is placed in upload_mode and out of
automanagement.
2018-04-09 23:25:52 +03:00
Chocobo1
5819b6dd39 Use Unicode version of InitiateSystemShutdown 2018-04-09 21:18:07 +08:00
Chocobo1
644e7d0450 Use dynamic linking for SetSuspendState function 2018-04-09 21:18:07 +08:00
Chocobo1
b0e3d77975 Add helper for loading Windows system functions 2018-04-09 21:18:04 +08:00
Chocobo1
643a209812 Sort include headers
Also add anonymous namespace.
2018-04-09 21:16:00 +08:00
Chocobo1
6bbcf9b3d6 Stop creating Download folder on start
The existence of this folder isn't required to run qbt and it can be
created when adding torrent.
Closes #8290.
2018-04-05 14:12:47 +08:00
Chocobo1
37ea01bd44 Use lightweight printf instead of iostream
Using iostream usually adds a lot of other operators (<<, endl), whereas
*printf takes only 1 function call.

Also use qUtf8Printable whenever possible.
2018-03-31 03:21:53 +08:00
Chocobo1
65921eaf7b Remove QPointer wrapper 2018-03-25 15:53:31 +08:00
Chocobo1
bfbd978d3f Move helper function to Utils::Fs 2018-03-25 13:26:03 +08:00
Chocobo1
1876dbd523 Fix typo 2018-03-25 13:26:02 +08:00
Chocobo1
ea7eb7c0ec Add delay before processing FS changes
This prevents file renaming errors in monitored folder on linux, for
example: ABC.torrent.part -> ABC.torrent
2018-03-25 13:26:02 +08:00
Chocobo1
19c733ce95 Use specific name for rejected files 2018-03-25 13:26:02 +08:00
Chocobo1
2ba5dd1344 Reduce debug messages 2018-03-25 13:26:02 +08:00
Chocobo1
61eddfce90 Refactor functions in FileSystemWatcher
Use c++11 range-loop
Add const
Better ifdef placement
Inline functions
2018-03-25 13:26:02 +08:00
Chocobo1
0840556f77 Do cleanups in FileSystemWatcher
Use Qt5 connect syntax
Sort headers
Add license
Add anonymous namespace
Replace macro defines with const variables
2018-03-25 13:25:28 +08:00
Vladimir Golovnev
a5294e1e08 Merge pull request #8558 from luis-pereira/containter-anti-pattern
Don't create temporary containers just to iterate over them
2018-03-19 13:06:01 +03:00
Vladimir Golovnev
a8dbff06a3 Merge pull request #8607 from glassez/rss
Process loaded RSS articles in case of parsing error
2018-03-19 09:35:30 +03:00
Vladimir Golovnev (Glassez)
d9cd5d4680 Resolve (X)HTML entities in RSS content
Many sites include various HTML entities in the content of RSS feeds.
The most of these entities are not declared in the underlying XML,
so the documents are considered by parser to be malformed.
This patch allows you to successfully parse such soft-malformed
RSS feeds.
Closes #8527.
Closes #8569.
2018-03-18 18:59:55 +03: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
Vladimir Golovnev (Glassez)
8d285c66aa Process loaded RSS articles in case of error
For some reason, the RSS feed may contain malformed XML data and it may not be
successfully parsed by the XML parser. We are still trying to load as many articles
as possible until we encounter corrupted data. So we can have some articles even in
case of parsing error.
Closes #8527.
Closes #8569.
2018-03-16 18:29:38 +03:00
Chocobo1
423511765a Fix typo 2018-03-14 23:37:08 +08:00
Mike Tzou
e78b5202bc Merge pull request #8585 from Chocobo1/lint
Fix compiler/clazy warnings
2018-03-13 22:36:10 +08:00
Vladimir Golovnev
931af6c97e Merge pull request #8313 from Piccirello/search-categories
Calculate search categories based on selected plugin
2018-03-12 14:29:51 +03:00
Vladimir Golovnev
cea2948593 Merge pull request #8556 from Piccirello/compiler-warnings
Fix missing initializer warning during build
2018-03-12 14:28:38 +03:00
Thomas Piccirello
7278625f53 Calculate supported categories based on selected plugin 2018-03-12 01:33:45 -04:00
Thomas Piccirello
7b3e692f68 Fix missing initializer warning
This issue occurs when using gcc versions < 5.
2018-03-12 01:21:21 -04:00
Chocobo1
fdb0d97b28 Remove unused function 2018-03-11 23:27:04 +08:00
Chocobo1
141a2d2856 Prevent detach from containers 2018-03-11 22:25:07 +08:00
Mike Tzou
7233274110 Merge pull request #8562 from Chocobo1/lint
Fix warnings from clazy
2018-03-11 12:41:58 +08:00
Vladimir Golovnev
4f206f987a Merge pull request #8561 from glassez/tracker
Properly reply to announce request
2018-03-10 17:08:29 +03:00
Vladimir Golovnev (Glassez)
dfddda57b9 Properly reply to announce request 2018-03-09 17:41:06 +03:00
Chocobo1
b4f23d8154 Use faster code path
From Qt doc: Using this function is faster than using QFileInfo(file).exists() for
file system access.
2018-03-09 01:34:35 +08:00
Chocobo1
ed310c2dac Avoid temporary QString allocations
Fix up 0457fd260e
2018-03-09 01:34:35 +08:00
Chocobo1
50167d40d7 Allow ADL lookup for helper function 2018-03-09 01:34:19 +08:00
Mike Tzou
5261d4375f Merge pull request #8551 from Chocobo1/override
Fix warnings from linters
2018-03-09 00:36:52 +08:00
Chocobo1
0457fd260e Avoid temporary QString allocations
This fixes clazy warning: Use multi-arg instead [-Wclazy-qstring-arg]
2018-03-07 20:06:00 +08:00
Vladimir Golovnev (Glassez)
1aca3b0adc Parse URL query string at application level 2018-03-04 17:08:48 +03:00
Vladimir Golovnev (Glassez)
34295a78f2 Move ByteArray utils into Utils::ByteArray namespace 2018-03-02 17:23:21 +03:00
Mike Tzou
57163612ff Merge pull request #8427 from Chocobo1/server2
Rewrite RequestParser
2018-03-02 16:07:12 +08:00
Mike Tzou
55c3db339b Merge pull request #8455 from Chocobo1/large_torrent
Fix loading very large torrents. Closes #8449
2018-03-01 13:22:43 +08:00
Vladimir Golovnev
b26eb3d146 Merge pull request #8373 from glassez/search
Improve Search handling
2018-02-28 10:46:33 +03:00
Vladimir Golovnev
7cb6100c9c Merge pull request #8471 from luis-pereira/use-qstring-ref
Don't create temporary substrings
2018-02-28 10:44:59 +03:00
Luís Pereira
0e421ae415 Don't create temporary substrings
Avoid temporary string allocations. They are only used to convert to
something else.
QString::xxxRef() returns a QStringRef. QStringRef avoids the memory
allocation and reference counting overhead of a standard QString by simply
referencing a part of the original string.
2018-02-26 11:39:36 +00:00
Vladimir Golovnev
6207855f3b Merge pull request #8372 from thalieht/inactiverate
Expose the libtorrent fields for "dont_count_slow_torrents" to GUI.
Closes #5713.
2018-02-24 14:13:39 +03:00
Vladimir Golovnev
a65a70ab48 Merge pull request #8479 from thalieht/ratioLimitsCrash
Fix possible crash when using both share limits
2018-02-24 14:11:09 +03:00
Vladimir Golovnev (Glassez)
279bce2014 Make SearchManager singleton 2018-02-23 20:26:32 +03:00