Commit graph

445 commits

Author SHA1 Message Date
Vladimir Golovnev
692e4a986a Merge pull request #6757 from glassez/rss
Forward add/remove child RSS Item event as set of add/remove Articles events
2017-05-10 16:58:49 +03:00
Vladimir Golovnev (Glassez)
fbda237cc4 Fix local IP addresses 2017-05-10 13:54:29 +03:00
Vladimir Golovnev (Glassez)
26f645bd6c Don't create redundant "buf" variable 2017-05-10 13:54:29 +03:00
Vladimir Golovnev (Glassez)
a4d2df575e Don't use deprecated torrent_handle::set_tracker_login 2017-05-10 13:54:29 +03:00
Vladimir Golovnev (Glassez)
1d3dbcb9d2 Don't use deprecated fields of torrent-related alerts 2017-05-10 13:54:29 +03:00
Vladimir Golovnev (Glassez)
5dc54aa224 Don't use deprecated torrent_status fields 2017-05-10 13:54:28 +03:00
Vladimir Golovnev (Glassez)
72a54910e9 Don't use deprecated peer_info fields 2017-05-10 13:54:28 +03:00
Vladimir Golovnev (Glassez)
a2f82be6c2 Don't use deprecated url_seed_alert fields 2017-05-10 13:54:28 +03:00
Vladimir Golovnev (Glassez)
13b04f8d2d Don't use deprecated settings_pack members 2017-05-10 13:54:27 +03:00
Vladimir Golovnev (Glassez)
bdca55f15c Use new Session Statistics feature 2017-05-10 13:24:51 +03:00
Vladimir Golovnev (Glassez)
8a6d8f3953 Use cached SessionStatus and CacheStatus 2017-05-10 13:24:37 +03:00
Vladimir Golovnev (Glassez)
78d6b14fe8 Don't use deprecated torrent_info fields 2017-05-10 12:43:49 +03:00
Chocobo1
446b3307f9 Make method const 2017-05-09 14:21:55 +08:00
Chocobo1
b4baeaaf23 Pass arguemnts by const reference 2017-05-09 14:15:45 +08:00
Chocobo1
42c17ea5ce Fix argument name differ in definition & declaration 2017-05-09 14:12:36 +08:00
Chocobo1
3739bcc270 Initialize struct member 2017-05-09 13:51:12 +08:00
sledgehammer999
d61fc7e820 Merge pull request #3858 from Chocobo1/screen_center
Fix dialogs didn't position on the correct screen
2017-05-07 22:17:55 +03:00
Vladimir Golovnev (Glassez)
a36848b5c0 Forward add/remove child RSS Item as add/remove Articles 2017-05-07 18:49:21 +03:00
Vladimir Golovnev (Glassez)
f8debdea67 Fix Item::unreadCountChanged() emit in wrong place 2017-05-07 18:40:42 +03:00
Vladimir Golovnev
c1e3e2a745 Revert "Guard the flag used for deferred session configure." (#6733)
This reverts commit 5cbc7b16c0.
2017-05-02 14:39:47 +03:00
Chocobo1
7d1ac06ce2 Fix stack overflow in Utils::Gzip::decompress
Anyway, use std::vector to allocate memory on the heap (in compress() too)
2017-05-02 12:47:07 +08:00
Chocobo1
2258e4d5ed Fix automatedrssdownloader position 2017-05-01 15:32:08 +08:00
Chocobo1
933f9f1451 Fix optionsdlg position 2017-05-01 15:31:58 +08:00
Chocobo1
7eaa5987c8 Fix dialogs didn't position on the correct screen which qBittorrent window is on. Closes #1690, #2474, #3538. 2017-05-01 14:33:25 +08:00
sledgehammer999
4ea9a2f07e Merge pull request #5532 from briankendall/torrent_command_line_arguments
Command line arguments for specifying options when adding torrents
2017-04-30 22:25:21 +03:00
Brian Kendall
eba41978b0 Added command line arguments for specifying options when adding torrents
Arguments include adding torrents as paused/started, skiping hash check, setting category, downloading in sequential order, downloading first and last pieces first, and skipping the 'add new torrent' dialog. Added TriStateBoolOption class for specifying options that don't have a default value when unused (e.g. add-paused). Also improved command line usage text to include more information, have better organization, and not exceed 80 columns in width. Also also added firstLastPiecePriority field to BitTorrent::AddTorrentData, and modified TorrentHandle so that if first/last piece priority should be on, it will be toggled on after the torrent's metadata has loaded.
2017-04-30 14:22:30 -04:00
sledgehammer999
0a5bb6685f Merge pull request #6654 from Chocobo1/persistence
Webui server fixes
2017-04-30 16:34:23 +03:00
Frédéric Brière
e8f6149a6d findIncompleteFiles(): Replace dir listing with individual checks. Closes #6265.
Looking for incomplete files in a new torrent by using a pre-generated
directory listing presents several disadvantages:

  - It requires us to extract the top-level directory name (in case it
    was renamed).
  - It requires us to know whether the top-level directory was stripped.
  - In the latter case, it may result in recursively traversing the
    entire contents of all downloaded torrents.

Calling QFile::exists() individually for each file solves all these
issues.

In so doing, the handling of single-file and multiple-file torrents are
rendered pretty much identical, and can therefore be merged.
2017-04-30 09:26:58 -04:00
Eugene Shalygin
172991e068 Merge pull request #6703 from evsh/cmake
cmake: set warning and error compiler options
2017-04-29 14:11:09 +02:00
Eugene Shalygin
c4e16aa820 cmake: set warning and error options
The set is far from perfect, but guards against common errors with GCC.
2017-04-29 13:30:28 +02:00
Vladimir Golovnev
93df0ef1d1 Move AddTorrentParams to its own header (#6712)
* Move AddTorrentParams to its own header

* fixup! Move AddTorrentParams to its own header
2017-04-29 11:49:40 +03:00
Vladimir Golovnev
70f1153413 Merge pull request #6694 from glassez/remove-temp
Remove torrent temp folder when it becomes unneeded
2017-04-29 11:44:15 +03:00
Vladimir Golovnev (Glassez)
160b7ff2d3 Remove torrent temp folder when torrent is deleted 2017-04-28 16:52:16 +03:00
Vladimir Golovnev (Glassez)
c56b4a25bc Remove torrent temp folder if it becomes unneeded 2017-04-28 12:30:48 +03:00
sledgehammer999
74fb070e78 Merge pull request #6693 from glassez/drop-qt4
Drop rest of qt4 support code
2017-04-26 15:12:55 +03:00
Vladimir Golovnev (Glassez)
335443e6a0 Drop QThread::msleep wrapper 2017-04-26 10:44:47 +03:00
sledgehammer999
b71ee80ecd
Optimize P2P filter parsing too. 2017-04-26 02:33:57 +03:00
sledgehammer999
fd7e69e1e0
Add helper function for logging messages. 2017-04-26 02:33:56 +03:00
sledgehammer999
51cf6bd2a5
Optimize DAT filter parsing. Parse in memory and in place instead of copying strings around. 2017-04-26 02:33:55 +03:00
sledgehammer999
8f6e04d779
Using new IP parser provided by @evsh. It is faster and uses less memory.
Class `DATIPv4Parser` was written by Eugene Shalygin <eugene.shalygin@gmail.com> (evsh on github).
2017-04-25 04:43:30 +03:00
sledgehammer999
f53dab8ad4
Output log messages for ip filter parsing errors. 2017-04-25 04:43:29 +03:00
sledgehammer999
05ab9fc355
Optimize ip filter parsing. 2017-04-25 04:43:22 +03:00
Vladimir Golovnev (Glassez)
3a3125ea2b Fix remove oldest article 2017-04-24 16:50:28 +03:00
Vladimir Golovnev
e433cbab97 Merge pull request #6677 from glassez/fix-create-subfolder
Allow strip root folder using default settings
2017-04-24 12:21:53 +03:00
Vladimir Golovnev (Glassez)
c799923d7d Allow strip root folder using default settings 2017-04-24 12:03:35 +03:00
Vladimir Golovnev (Glassez)
711be50e9c Fix AddTorrentData field types 2017-04-24 11:59:16 +03:00
sledgehammer999
032eb12585
Remove whitespace. 2017-04-24 04:25:49 +03:00
sledgehammer999
3cdc6fb978
Fix compiler warnings. 2017-04-24 04:24:32 +03:00
zywo
51104a9fb4 Fix CMake build 2017-04-23 09:29:27 +01:00
Vladimir Golovnev (Glassez)
989a70fe60 Redesign RSS subsystem 2017-04-23 09:03:46 +03:00
Eugene Shalygin
090a2edc1a Merge pull request #6651 from evsh/fix-config-dir-on-windows
Migrate from platform-specific code in Private::DefaultProfile to QStandardPaths
2017-04-22 13:09:17 +02:00
Eugene Shalygin
14e168039c Use explicit class for search plugin versions 2017-04-21 09:47:08 +02:00
Chocobo1
0b5de9ff54 Temporary revert to the old behavior. 2017-04-20 22:26:35 +08:00
Chocobo1
a35c6426ab Specify lib requirement: zlib >= 1.2.5.2 2017-04-20 22:26:35 +08:00
Chocobo1
617f19e599 Revise Utils::Gzip::decompress
Rename from uncompress to decompress
Change signature
Use proper casting
Use larger buffer for the output of inflate()
Reserve 1 MBytes for output buffer
Change function signature
2017-04-20 22:26:35 +08:00
Chocobo1
302c8ba850 Revise Utils::Gzip::compress code
Change signature
Add ZLIB_CONST define to make  z_stream.next_in const
Cast to zlib defined type Bytef*
Set memLevel to 9 in deflateInit2() for maximum performance
Revise compression loop
On returning false, free memory correctly by calling deflateEnd()
Reserve space by the estimation of deflateBound()
2017-04-20 22:24:50 +08:00
Chocobo1
94b496354b Rewrite rules for gzipping http response content 2017-04-20 22:22:17 +08:00
Chocobo1
4600e679d1 Implement robust acceptsGzipEncoding()
Adhere more to http/1.1 standard
2017-04-20 22:22:17 +08:00
Chocobo1
129172453b Fix "Content-Encoding" header is always created.
Was side effect of operator[]
2017-04-20 22:22:17 +08:00
Chocobo1
7d36c81949 Cleanup Http::responseGenerator()
Add CRLF definition
Rewrite loop using iterator, slightly more efficient
Rename variables
2017-04-20 22:22:17 +08:00
Chocobo1
6cb2f05a6c Demote to helper function
Rename function
2017-04-20 22:22:17 +08:00
Chocobo1
829e1399ca Convert Qstring to char arrays
Cleanup header
Sort constants
2017-04-20 22:22:17 +08:00
Chocobo1
4b2266a8e2 Send Date http header
It's not strict required but often expected.
change class to namespace
cleanup header
2017-04-20 22:22:17 +08:00
Chocobo1
9496b2a159 Always send Content-Length header.
Because without it, HTTP/1.1 (with persistence connection) clients will
keep waiting for more data.
2017-04-20 22:22:17 +08:00
Chocobo1
0b28fb6c6b Implement http persistence connection
Max simultaneous connection limit set to 500
This also release allocated memory of Connection instances at runtime instead of at program shutdown.
2017-04-20 22:22:14 +08:00
Eugene Shalygin
b06080e2e7 Replace platform-specific code in Private::DefaultProfile with QStandardPaths.
This should also fix Profile::location(SpecialFolder::Config) on
Windows.
2017-04-19 12:51:07 +02:00
sledgehammer999
018574e546 Merge pull request #6475 from OpenGG/master
[WebUI-API] Add "skip_checking" and "paused" to "/command/download" and "/command/upload"
2017-04-17 17:12:24 +03:00
sledgehammer999
48b0cf8a48 Merge pull request #6621 from Chocobo1/webui
Webui: refactor
2017-04-17 17:08:25 +03:00
sledgehammer999
ae0ec716cb
Fix inverted check when applying the IP filter. 2017-04-17 17:07:12 +03:00
sledgehammer999
c27108c97a Merge pull request #6630 from evsh/fix-6454
Start up torrents after UI was created. Fixes #6454.
2017-04-17 16:44:03 +03:00
Vladimir Golovnev (Glassez)
22178f9997 Fix strip torrent root folder 2017-04-15 17:33:20 +03:00
Vladimir Golovnev (Glassez)
6d7d566cdf Fix TorrentHandle rootPath() and contentPath() methods 2017-04-15 10:11:53 +03:00
Vladimir Golovnev (Glassez)
d413bc65ef Improve strip torrent root folder
Fix issue when you rename the "root item" in the "Add New Torrent" dialog
and uncheck "Create subfolder", it will create the subfolder with the
renamed name.
Fix PropertiesWidget first folder is expanded after app restart.
Strip root folder if torrent was added via magnet link.
Fix crash when you get name of torrent without metadata.
2017-04-15 10:11:53 +03:00
sledgehammer999
4b2d8a7941 Setting for creating subfolder on multifile torrents. Closes #588. 2017-04-15 10:11:53 +03:00
Eugene Shalygin
21a72c651f Start up torrents after UI was created. Fixes #6454.
Commit dd0537d changed torrents startup code adding alerts processing
into it. Therefore alerts were processed before UI code subscribed to
signals and therefore part of alerts was not reflected in the UI.

Thus here we do not start torrents in Session constructor, but do that
from Application::exec() after UI was constructed and is ready to process
signals.
2017-04-14 00:58:43 +02:00
Eugene Shalygin
a8d95dd8bd Save relative paths in fastresume files
Conditionally change absolute paths to relative in the fastresume data files.
The condition is specified by user via a command line parameter and
paths are relative to the profile dir.

On Windows the convertion to relative path is performed if the path and
the profile are on the same drive only.
2017-04-12 00:51:37 +02:00
Eugene Shalygin
0bf7fa15c1 Replace wrappers in base/utils/fs.h with Profile::SpecialFolders::location() 2017-04-12 00:50:33 +02:00
Eugene Shalygin
0f746ffd5a Add support for different configurations. Partially closes #465
It may be useful to have different configurations either for portable
versions or for debugging purposes. To implement this we add two
options, avaliable via command line switches
1. An option to change configuration name ("--configuration"). The name
supplied via this option is appended to
QCoreApplication::applicationName() to form "qBittorrent_<conf_name>"
name for the configuration files.
2. An option to provide a path do directory where all the settings are
stored (kind of profile directory). There is a shortcut "--portable"
which means "use directory 'profile' near the executable location".

In order to implement that we have to perform initialisation of the
profile directories before the SettingStorage and Preferences singletones
are initialised. Thus, options parsing shall be performed without defaults
read from preferences.
2017-04-12 00:50:28 +02:00
Chocobo1
d1ee54f6ea Refactor: move methods under the same #if section. 2017-04-11 23:16:16 +08:00
Chocobo1
7f346b49a7 Refactor: move the validation of certificates & key functions under Server class
Rename method
Add log messages
2017-04-10 21:18:59 +08:00
opengg
db3158c410 [WebUI] bugfix: RequestParser::splitMultipartData drop extra trailing newline. 2017-03-11 01:26:22 +08:00
sledgehammer999
9eb01fbe4d Merge pull request #6489 from evsh/fix-fileguard
Fix TorrentFileGuard::setAutoRemove() recursion problem. Closes #6488.
2017-03-08 12:18:58 +02:00
Eugene Shalygin
3091e03a95 Fix CMake build 2017-03-08 09:12:49 +01:00
Eugene Shalygin
3752d112fb Fix TorrentFileGuard::setAutoRemove() recursion problem. Closes #6488.
The problem was created during Qt 4 drop, when FileGuard was promoted
from a member to a base class. The function was blindly changed.
2017-03-08 09:05:58 +01:00
sledgehammer999
729fbb2e50
Change named of getter function. 2017-03-08 00:16:25 +02:00
sledgehammer999
aa51907387
Merge pull request #6369 from magao/issue6367
Use Perl-compatible regexes for RSS rules. Closes #6367.
2017-03-08 00:04:17 +02:00
sledgehammer999
be60b3e046
Change the user-agent format in the session.cpp too. 2017-03-07 23:41:29 +02:00
sledgehammer999
147f4d76e2 Merge pull request #6445 from Chocobo1/fix
Follow http user-agent format
2017-03-07 23:38:14 +02:00
sledgehammer999
7a6da3d3ce
Merge pull request #6479 from Chocobo1/qt4
Remove remainings of Qt4
2017-03-07 23:28:56 +02:00
sledgehammer999
431658bee6
Fix race condition where there was a chance to allow all ips between reparsings of the ip filter. 2017-03-07 23:16:50 +02:00
sledgehammer999
5084c01c2b Merge pull request #5877 from dzmat/to_pull_request
locally banned IP list managment (Closes #1837 )
2017-03-07 23:14:20 +02:00
Vladimir Golovnev (Glassez)
79e8f69fb6 Remove exception-suppress macros
Remove SAFE_* macros from TorrentHandle class.
These macros using seems to be unneeded.
2017-03-07 15:04:57 +03:00
Chocobo1
fa2128cbae Replace Utils::String::fromStdString() by QString::fromStdString() 2017-03-07 19:42:44 +08:00
Chocobo1
87384ca2a2 Replace Utils::String::toHtmlEscaped() by QString::.toHtmlEscaped() 2017-03-07 00:03:53 +08:00
Chocobo1
ffdcfe9686 Replace Utils::String::toStdString() by QString::toStdString() 2017-03-06 23:58:38 +08:00
Chocobo1
7539bee5c5 Remove remaining QBT_USES_QT5 defines.
Fixup of e64bb1de8c.
2017-03-06 23:47:07 +08:00
dzmat
59de1af31b implemented UI for managment of locally banned IP list (Closes #1837 ) 2017-03-06 19:40:34 +07:00
Chocobo1
2091dfaa69 Follow http user-agent format
Add version variable without the starting "v"
2017-03-06 14:42:32 +08:00
Chocobo1
cb1646be32 Prepend QBT_ for preprocessor variables 2017-03-06 13:41:58 +08:00
Eugene Shalygin
008d7dbedc Raise minimal Qt version to 5.5.1 2017-03-05 22:24:59 +01:00