1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-09 18:32:15 +02:00

Compare commits

...

300 Commits

Author SHA1 Message Date
sledgehammer999
15e7726233 Bump to 3.3.13 2017-06-01 02:32:05 +03:00
sledgehammer999
9258a9ae78 Update Changelog. 2017-06-01 02:29:53 +03:00
Chocobo1
7c2437e5f2 [WebUI]: Implement CSRF defense
Bump API version
2017-06-01 02:28:07 +03:00
sledgehammer999
dc315c080b Revert "Remove workaround". Required since we also support Qt4 in this branch.
This reverts commit 2ba3104337.
2017-06-01 02:28:06 +03:00
sledgehammer999
971c340b53 Fix format-truncation warning. 2017-06-01 01:19:55 +03:00
Chocobo1
76b9b02177 Fix focusing on the previously opened dialog didn't work
Placing modeless dialog A on top of modeless dialog B, then open dialog B again,
the expected behavior is B on top of A.
2017-06-01 01:19:47 +03:00
sledgehammer999
375c2dfd0b Merge pull request #6876 from evsh/fix-cmake-qt4
cmake: fix compilation with Qt 4
2017-05-31 22:41:11 +03:00
Eugene Shalygin
6a3e7a12d8 cmake: fix compilation with Qt 4
In qmake we define QStringLiteral=QLatin1String, so define it in cmake
builds too.
2017-05-31 19:28:32 +02:00
sledgehammer999
d92ef3fa4d Fix Qt4 build. 2017-05-31 00:34:21 +03:00
Eugene Shalygin
89d4cb257f Fix crash in download piece bar
When torrent size is smaller than the image width, bytes per pixel was
set to zero and code was crashing. Set it to -1 instead, as we do when
image is empty. This will disable highliting, but our algorithm does not
work in this case anyway.
2017-05-31 00:34:21 +03:00
Chocobo1
47ebb0df58 Add new webUI API. Closes #6457.
Now getting piece information for a specific torrent is possible via:

* Returns an array of states (integers) of pieces in order. Defined as:
  "0=not downloaded", "1=downloading", "2=downloaded".
  GET /query/getPieceStates/<torrent_hash>

* Returns an array of hashes (strings) of pieces in order:
  GET /query/getPieceHashes/<torrent_hash>
2017-05-31 00:34:20 +03:00
Chocobo1
71169abaa6 [WebUI] Make cookie parsing robust
Previously cookie name such as "<any string>SID" will be mistakenly
accepted as "SID" session ID, this commit fixes it.

Use QString::isEmpty()
2017-05-31 00:34:19 +03:00
Chocobo1
83dd0ae86e Refactor out helper function Utils::String::unquote
Remove redundant include
2017-05-31 00:34:18 +03:00
Chocobo1
c9500d933b Fix renaming files is not case sensitive on Windows platform. Closes #5128. 2017-05-31 00:34:17 +03:00
Naikel Aparicio
b8787460a4 Fix slow filtering in WebUI. Fixup 7aadf644e0. 2017-05-31 00:34:17 +03:00
Naikel Aparicio
d031264d62 Cosmetic fixes for WebUI upload and download windows 2017-05-31 00:34:16 +03:00
KingLucius
63b408c743 remove ExtraTorrent plugin 2017-05-31 00:34:15 +03:00
Eugene Shalygin
1ac4458d13 cmake: fix FindSystemd.cmake
Apparently, recent version of CMake made PkgConfig stuff scooped and we
need to call find_package(PkgConfig) in FindSystemd.cmake too, the call
in FindLibtorrentRasterbar.cmake, that is always used first, is not
enough now.
2017-05-31 00:34:14 +03:00
Chocobo1
6b91510d71 Set icon height in html instead of js
Fixup of d302e4fb92
2017-05-31 00:34:14 +03:00
Chocobo1
f1a7e8921a [WebUI] Fix connection status icon too large. Closes #6804. 2017-05-31 00:34:13 +03:00
Eugene Shalygin
78c34b948e Fix build error. 2017-05-31 00:34:12 +03:00
Frédéric Brière
690db070c7 Properly sort categories case-insensitively in filter widget. Closes #6708. 2017-05-31 00:34:11 +03:00
Frédéric Brière
0979936266 Turn isSpecialItem() into a CategoryFilterModel static method. 2017-05-31 00:34:11 +03:00
Frédéric Brière
ba23b41616 Set "category" column as case-insensitive in TransferListSortModel.
(From what I can tell, it would appear that the sorting was already
case-insensitive by default.  This makes it explicit.)
2017-05-31 00:34:10 +03:00
Frédéric Brière
412584e9c3 Leave categories order intact in "Add new torrent" dialog.
The categories are already properly sorted in AddNewTorrentDialog; this
second case-sensitive sort undid all that.

This partially addresses #6708.
2017-05-31 00:34:09 +03:00
Thomas Piccirello
13aa3c3088 Use less permissive Content Security Policy
Adjust content order
2017-05-31 00:34:08 +03:00
thalieht
067c406c94 webUI: increase the number of digits after the decimal point 2017-05-31 00:34:08 +03:00
Eugene Shalygin
8536e79f2a cmake: include searchengine resources 2017-05-31 00:34:07 +03:00
Thomas Piccirello
70b98d903e Return status indicating if at least one torrent was successfully added 2017-05-31 00:34:06 +03:00
Chocobo1
1997a29769 Tweak CachedSettingValue
* Add another constructor to save a call to proxyFunc when its not needed
  note that this call is a virtual function call
* Pass in proxyFunc by const reference
* Move get methods together
2017-05-31 00:34:05 +03:00
Chocobo1
f6e4f48386 Fix double click on system tray icon causing program to open and
minimize immediately

Closes #5826.
Simply ignore DoubleClick event, as it always come after Trigger
event
2017-05-31 00:34:05 +03:00
Eugene Shalygin
10002984e6 Follow project coding style. Issue #2192. 2017-05-31 00:34:04 +03:00
Frédéric Brière
2fa2d36c3b 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-05-31 00:34:03 +03:00
Eugene Shalygin
ceed9b468e Do not attempt to show detailed tooltips without torrent metadata. Closes #6768.
Computations for detailed tooltips are not protected against unavailable
metadata, that leads to asserts or crashes. But since those tooltips are
useless in this case, do not show them at all. Inform user that detailed
tooltip becomes available once torrent metadata are fetched.
2017-05-31 00:34:02 +03:00
sledgehammer999
f19854c054 [WebUI]Use the same layout in the Speed tab in preferences as the GUI. 2017-05-31 00:34:02 +03:00
sledgehammer999
989cbda29c Add missing unit sizes in misc.js 2017-05-31 00:34:01 +03:00
sledgehammer999
881f79b76d [WebUI]Use translatable strings in Statistics dialog. 2017-05-31 00:34:00 +03:00
sledgehammer999
51986f3ac8 [WebUI]Make the context obligatory for translatable strings. Also delete duplicate strings from extra translations. 2017-05-31 00:33:59 +03:00
Eugene Shalygin
943a837570 Fix release CMake build
write() is declared with __attribute__ ((__warn_unused_result__)) and as
such we shall check its return value. Took opportunity and adjusted
error reporting a bit: if writing to stderr fails, try to write to
stdout.
2017-05-31 00:33:59 +03:00
Chocobo1
a6cf386073 .gitignore: ignore moc_*.h 2017-05-31 00:33:58 +03:00
Vladimir Golovnev
b6e1b6e501 Revert "Guard the flag used for deferred session configure." (#6733)
This reverts commit 5cbc7b16c0.
2017-05-31 00:33:57 +03:00
Chocobo1
cee308a517 Fix stack overflow in Utils::Gzip::decompress
Anyway, use std::vector to allocate memory on the heap (in compress() too)
2017-05-31 00:33:56 +03:00
Brian Kendall
390d22bc66 Fixed macOS-specific bug in AddNewTorrentDialog
Because AddNewTorrentDialog is a sheet in macOS, repositioning it causes bad things to happen, particularly if the main dialog is on a secondary monitor.
2017-05-31 00:33:56 +03:00
Chocobo1
e4a5b8d352 Setup DPI at startup 2017-05-31 00:33:55 +03:00
Chocobo1
2ba3104337 Remove workaround
Upstream confirmed bug fixed in Qt 5.2
2017-05-31 00:33:54 +03:00
Chocobo1
d1dfdd1306 Refactor 2017-05-31 00:33:53 +03:00
Chocobo1
8a02a69924 Temporary revert to the old behavior. 2017-05-31 00:33:53 +03:00
sledgehammer999
8ffc72b626 TravisCI: Install latest zlib and switch to container-based infrastructure. 2017-05-31 00:33:52 +03:00
Chocobo1
e85479dfd7 Specify lib requirement: zlib >= 1.2.5.2 2017-05-31 00:33:51 +03:00
Chocobo1
104bed7cc8 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-05-31 00:33:50 +03:00
Chocobo1
75f3dd6d1d 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-05-31 00:33:50 +03:00
Chocobo1
751f64c98b Rewrite rules for gzipping http response content 2017-05-31 00:33:49 +03:00
Chocobo1
6353c2ca3c Implement robust acceptsGzipEncoding()
Adhere more to http/1.1 standard
2017-05-31 00:33:48 +03:00
Chocobo1
f51e467ce3 Fix "Content-Encoding" header is always created.
Was side effect of operator[]
2017-05-31 00:33:47 +03:00
Chocobo1
358d182c82 Cleanup Http::responseGenerator()
Add CRLF definition
Rewrite loop using iterator, slightly more efficient
Rename variables
2017-05-31 00:33:47 +03:00
Chocobo1
7d2802cf2c Demote to helper function
Rename function
2017-05-31 00:33:46 +03:00
Chocobo1
a739d86e3d Convert Qstring to char arrays
Cleanup header
Sort constants
2017-05-31 00:33:45 +03:00
Chocobo1
6ff614ebea Send Date http header
It's not strict required but often expected.
change class to namespace
cleanup header
2017-05-31 00:33:44 +03:00
Chocobo1
d9f4141221 Always send Content-Length header.
Because without it, HTTP/1.1 (with persistence connection) clients will
keep waiting for more data.
2017-05-31 00:33:44 +03:00
Chocobo1
415a805818 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-05-31 00:33:43 +03:00
Chocobo1
b8fff68230 WebUI: Fix checkbox hidden. Closes #6642. 2017-05-31 00:33:42 +03:00
Eugene Shalygin
44f81a2d2b cmake: set warning and error options
The set is far from perfect, but guards against common errors with GCC.
2017-05-31 00:33:41 +03:00
Eugene Shalygin
b98ef9905e cmake: use environment variable LIB on Windows
Append its value to CMAKE_LIBRARY_PATH to simplify life of on Windows.
2017-05-31 00:33:41 +03:00
Eugene Shalygin
e4f472e0f8 Replace variable length array with std::vector in print_stacktrace()
The function does memory allocation from heap anyway, so should not be
a problem to use STL container.
2017-05-31 00:33:40 +03:00
Vladimir Golovnev (Glassez)
91a38193f5 Remove torrent temp folder when torrent is deleted 2017-05-31 00:33:39 +03:00
Vladimir Golovnev (Glassez)
66b92f3bb4 Remove torrent temp folder if it becomes unneeded 2017-05-31 00:33:38 +03:00
Eugene Shalygin
a911dc57f3 Fix formatting in CONTRIBUTING.md (#6704)
Fix formatting in CONTRIBUTING.md
2017-05-31 00:33:38 +03:00
Chocobo1
c43c473105 Disable Qt embedding manifest automatically
Embedding manifest fails for me after upgrading to VS2017, this fixes it.
2017-05-31 00:33:37 +03:00
wevsty
d079b71f63 update chinese windows installer translation 2017-05-31 00:33:36 +03:00
ngosang
8b0b398a5f [Search engine] Add btdb plugin 2017-05-31 00:33:35 +03:00
ngosang
9400aac003 [Search engine] Update legittorrents plugin 2017-05-31 00:33:35 +03:00
ngosang
7856863b3e [Search engine] Remove mininova plugin 2017-05-31 00:33:34 +03:00
ngosang
b1f598a1d3 [Search engine] Update demonoid plugin 2017-05-31 00:33:33 +03:00
Eugene Shalygin
9c7ed80292 cmake: use import libraries for Boost and OpenSSL in Libtorrent find module 2017-05-31 00:33:32 +03:00
Eugene Shalygin
1835ec6086 cmake: fix typo in the manifest file name 2017-05-31 00:33:32 +03:00
Chocobo1
3d4cead200 Uncrustify 2017-05-31 00:33:31 +03:00
Chocobo1
112a24f9b6 Relax comparsion for floating point 2017-05-31 00:33:30 +03:00
Chocobo1
cdcafecb44 Cleanup & refactor 2017-05-31 00:33:29 +03:00
Chocobo1
4e173d34d3 Setup parent pointer
Rely on Qt to do the delete, since the parent ownership is setup
correctly.
2017-05-31 00:33:28 +03:00
Chocobo1
df5d31b52b Always draw background 2017-05-31 00:33:28 +03:00
Chocobo1
be745551e6 Fix downloaded/uploaded columns were not highlighted properly when selected.
Refactor
2017-05-31 00:33:27 +03:00
opengg
a3e4bcd1dd [WebUI] Add skip_checking and paused to /command/download and /command/upload 2017-05-31 00:33:26 +03:00
opengg
36cc6909f8 [WebUI] bugfix: RequestParser::splitMultipartData drop extra trailing newline. 2017-05-31 00:33:25 +03:00
Chocobo1
3987e677d5 Refactor: move methods under the same #if section. 2017-05-31 00:33:24 +03:00
Chocobo1
13f27c6d3b Refactor: move the validation of certificates & key functions under Server class
Rename method
Add log messages
2017-05-31 00:33:24 +03:00
Chocobo1
68f88f7907 Rename class variables 2017-05-31 00:33:23 +03:00
Chocobo1
6c2c08c6dd Refactor: group port forwarding code together
Unify log message
2017-05-31 00:33:22 +03:00
Eugene Shalygin
b8eee9e1b8 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-05-31 00:33:21 +03:00
Eugene Shalygin
ef08b4269d Rename .desktop and appdata files to match executable name. Fixes #6625. 2017-05-31 00:33:21 +03:00
schnurlos
b5a67aefdb Update of german.nsi
Translation of 64-bit text done.
2017-05-31 00:33:20 +03:00
Eugene Shalygin
a302c995f8 Create Ukrainian translation for the Windows installer. 2017-05-31 00:33:19 +03:00
ngosang
f2877cbec4 Update Spanish translation for the installer 2017-05-31 00:33:06 +03:00
sledgehammer999
4a95291fcc Merge pull request #6648 from evsh/v3_3_x
CMake 3.8 fixes for v3_3_x branch. Closes #6634.
2017-04-17 20:59:23 +03:00
Eugene Shalygin
6717e3d30c Remove generated include from headers. Closes #6634.
Not only fixes compilation with CMake 3.8 (without messing with include
paths) but makes sources cleaner.
2017-04-17 19:30:38 +02:00
Eugene Shalygin
778209ae49 cmake: fixes for cmake 3.8
AUTOUIC seems to became stricter.
2017-04-17 18:26:11 +02:00
sledgehammer999
258efe261d Bump to 3.3.12 2017-04-06 19:51:12 +03:00
sledgehammer999
59abbab9b9 Update Changelog. 2017-04-06 19:48:23 +03:00
Chocobo1
7cc32cbe97 Bump _WIN32_IE in cmake build 2017-04-06 19:47:21 +03:00
Chocobo1
5783f7bafe Fix NTDDI_VERSION define
Fixup of 5958585e3a
2017-04-06 19:47:08 +03:00
sledgehammer999
0e64e6887a Bump API_VERSION and API_VERSION_MIN to 13. 2017-04-06 02:04:31 +03:00
sledgehammer999
c25cb29e61 Sync translations of .desktop file from Transifex. 2017-04-06 02:04:29 +03:00
sledgehammer999
bca9b60db8 Revert "Refactor: initialize class variable directly"
This reverts commit b4bca7cfb7.
2017-04-06 00:43:03 +03:00
Chocobo1
1ec122c4ab Set cookie SID value to empty on logout
Set cookie SID expiration date to 1 day in the past on logout
2017-04-05 18:40:53 +03:00
Chocobo1
562dd41ab2 Fire up the timer to clean inactive sessions 2017-04-05 18:40:52 +03:00
Chocobo1
b4bca7cfb7 Refactor: initialize class variable directly 2017-04-05 18:40:51 +03:00
Chocobo1
b985bb43fa Refactor: reorder headers 2017-04-05 18:40:50 +03:00
Chocobo1
bf8a438a6f Set HttpOnly attribute to SID cookie 2017-04-05 18:40:48 +03:00
vlakoff
7cd9b6f750 Update French translation for the installer 2017-04-05 18:40:41 +03:00
sledgehammer999
d487c69dcc Fix running the uninstaller if the user chose a different path in the installer. Closes #6080. 2017-04-05 03:05:46 +03:00
sledgehammer999
444c2bdf19 Revert "Use Perl-compatible regexes for RSS rules. Closes #6367."
This reverts commit 8d11af94f2.
2017-04-04 03:25:27 +03:00
sledgehammer999
f86064e322 Revert "Cache rule regular expressions for performance"
This reverts commit bacef1ca24.
2017-04-04 03:25:24 +03:00
sledgehammer999
6675544c23 Revert "Change named of getter function."
This reverts commit 20b30dd4b5.
2017-04-04 03:25:14 +03:00
FranciscoPombal
10205ca67e fixed "remaining" column in WebUI
the key had the wrong name. In the js code, the expected key is "amount_left" and not "remaining".
2017-04-04 02:04:36 +03:00
sledgehammer999
2dfed3c41e Better 64-bit handling in the installer. 2017-04-04 02:04:35 +03:00
Eugene Shalygin
db29a61fbf cmake: fix OSX bundle creation 2017-04-04 02:04:33 +03:00
Chocobo1
3497c5307c Fix cancel "Set location" causes files move to installation dir.
Closes #6568.
2017-04-04 02:04:32 +03:00
Chocobo1
565f263ecb Add log message 2017-04-04 02:04:31 +03:00
Chocobo1
c94a61f434 code formatting 2017-04-04 02:04:30 +03:00
Chocobo1
d390d941eb Add NTDDI_VERSION define 2017-04-04 02:04:29 +03:00
Chocobo1
f1de249c9e NSIS: set exit code to 0 on install/uninstall success
Closes #6129.
2017-04-04 02:04:28 +03:00
Chocobo1
f85768412c NSIS: trim whitespaces 2017-04-04 02:04:26 +03:00
regs01
5a28e8c5e9 Update options.nsi
dpi-aware installer
2017-04-04 02:04:25 +03:00
epicgirl1998
5b72595547 Remove extra space
fixes https://github.com/qbittorrent/qBittorrent/issues/6523
2017-04-04 02:04:24 +03:00
sheeit
a363ed6d7c Fixed Markdown formatting for headers 2017-04-04 02:04:23 +03:00
sledgehammer999
077469d5a0 Indicate bitness in stackstrace and about dialog. Closes #6172. 2017-04-04 01:54:37 +03:00
sledgehammer999
66df7c47b2 Some improvements in travis.yml for macOS. Closes #6089. 2017-04-04 01:54:18 +03:00
sledgehammer999
20b30dd4b5 Change named of getter function. 2017-04-04 01:54:17 +03:00
Tim Delaney
bacef1ca24 Cache rule regular expressions for performance
--HG--
branch : magao-dev
2017-04-04 01:54:16 +03:00
Tim Delaney
8d11af94f2 Use Perl-compatible regexes for RSS rules. Closes #6367.
--HG--
branch : magao-dev
2017-04-04 01:52:02 +03:00
sledgehammer999
02c96fa5e2 Change the user-agent format in the session.cpp too. 2017-04-04 01:48:43 +03:00
Chocobo1
65b491fed0 Add comment 2017-04-04 01:48:41 +03:00
Chocobo1
f0eab3f085 Follow http user-agent format
Add version variable without the starting "v"
2017-04-04 01:48:27 +03:00
Chocobo1
21212fdfe5 Prepend QBT_ for preprocessor variables 2017-04-04 01:48:26 +03:00
FranciscoPombal
f39465c25a Implement statistics window in web UI 2017-04-04 01:48:25 +03:00
Vladimir Golovnev (Glassez)
a3eaee7e7e Remove exception-suppress macros
Remove SAFE_* macros from TorrentHandle class.
These macros using seems to be unneeded.
2017-04-04 01:48:03 +03:00
sledgehammer999
1e28bbb47e Revert "Set default locale". Closes #6436 and #6459.
This reverts commit 75ef6356d3.
2017-04-04 01:48:02 +03:00
sledgehammer999
c5b98339ae Update stuff in appdata.xml and run 'appstream-utl upgrade' on it. 2017-04-04 01:48:01 +03:00
sledgehammer999
edb1b727c6 Add keywords to the .desktop file. 2017-04-04 01:47:38 +03:00
Chocobo1
78aeb5eee7 Capitalize title strings
Remove DISCARDABLE keyword which is ignored on 32-bit windows
2017-04-04 01:47:37 +03:00
Chocobo1
9dd93c3d17 Embed manifest when compiling with MSVC
Update manifest
2017-04-04 01:47:25 +03:00
buinsky
2d64405eb8 Improve performance of updating 'progress' column 2017-03-05 18:47:50 +02:00
Chocobo1
dff560d8c2 Workaround thread_local not supported on OSX
Drop back to xcode7.3 on TravisCI
2017-03-05 18:47:49 +02:00
Chocobo1
b3c973612f Fix compile error: ‘escape’ is not a member of ‘Qt’ 2017-03-05 18:47:48 +02:00
Chocobo1
3480d3d10c Fix incomplete type compile error with Qt4 2017-03-05 18:47:47 +02:00
Chocobo1
f45d21d3a2 Enable thread_local support in TravisCI 2017-03-05 18:47:46 +02:00
Chocobo1
8dcb792ac0 Replace rand() by a true uniform distribution generator 2017-03-05 18:47:37 +02:00
sledgehammer999
cb5174bfa2 Bump to 3.3.11 2017-03-04 01:17:44 +02:00
sledgehammer999
9138156968 Update Changelog. 2017-03-04 01:17:43 +02:00
sledgehammer999
8a0b1fe0be Install qbittorrent-tray.png files. Fixes commit 8b805f4518. 2017-03-04 01:17:42 +02:00
sledgehammer999
3bbe304856 Bump API_VERSION to 12. 2017-03-04 01:17:41 +02:00
Chocobo1
0356172a1d Utilize escapeHtml 2017-03-04 01:17:40 +02:00
Chocobo1
80f3b19356 Add Utils::String::toHtmlEscaped 2017-03-04 01:17:39 +02:00
Chocobo1
39a569b438 Cleanup 2017-03-04 01:17:38 +02:00
Chocobo1
edaa7e85a7 [WebUI]: add X-XSS-Protection, X-Content-Type-Options, CSP header 2017-03-04 01:17:37 +02:00
ngosang
f9f7a8cbf2 [WebUI] Avoid clickjacking attacks 2017-03-04 01:17:35 +02:00
Chocobo1
7aef9828c9 [WebUI]: exclude insecure ciphers 2017-03-04 01:17:34 +02:00
Chocobo1
18ad972936 Code formatting
Remove extra private keyword
2017-03-04 01:17:33 +02:00
sledgehammer999
8b5c275934 Update copyright year. 2017-03-04 01:17:32 +02:00
sledgehammer999
59765954b8 Sync translations from Transifex and run lupdate. 2017-03-04 01:17:30 +02:00
ngosang
f5fff855bb [Search engine] Update Extratorrent plugin 2017-03-04 01:17:27 +02:00
sledgehammer999
26c713851e Use new create_torrent constructor were available. 2017-03-04 01:17:26 +02:00
Eugene Shalygin
f9b64c4e73 Disable proxy in WebUI HTTP server. Closes #6349.
Due to a bug in Qt 5.8 (QTBUG-58706) QTcpServer tries to use HTTP proxy
when it is set as default app proxy (for instance via "http_proxy"
environment variable) and this breaks the server. So we disable any proxy
in it.
2017-03-04 01:17:25 +02:00
thalieht
edf6c30cd8 Seperate seeds from peers for DHT, PeX and LSD 2017-03-04 01:17:17 +02:00
Chocobo1
83860afa60 Turn off port forwarding of WebUI by default for GUI users 2017-03-03 02:34:03 +02:00
murlakatamenka
4b7362aa6b Update mainwindow.h (remove duplicate declaration) 2017-03-03 02:34:02 +02:00
falco
dd0537d8d2 fix queue overload for add torrent at session start 2017-03-03 02:34:00 +02:00
Chocobo1
3c50cc1d2c Fix coverity issues
torrentcontentmodel: Use a variable to store filesCount
optionsdlg: add fallthrough comment to suppress warning
speedPlotview: initialize member
misc: fix wrong type used, add spaces
2017-03-03 02:33:59 +02:00
Chocobo1
78fdb68457 Use QString::toStdString()
Qt5 utilized the desired toUtf8() instead of toAscii().
2017-03-03 02:33:50 +02:00
Tim Delaney
bb1bd34ec0 Fix regex RSS matching. Closes #6337.
--HG--
branch : magao-dev
2017-03-03 02:33:49 +02:00
Tim Delaney
1841834c89 Bugfix RSS feed list and rules editor. Closes #3782, #6281.
--HG--
branch : magao-dev
2017-03-03 02:33:46 +02:00
sledgehammer999
30b70a99f1 Regenerate configure. 2017-03-03 02:32:57 +02:00
sledgehammer999
f0f2e93e4d Use @naikel's suggestions for previous commit. 2017-03-03 02:32:56 +02:00
Zach Bacon
5852c5e318 tests if qmake is in path properly 2017-03-03 02:32:55 +02:00
Zach Bacon
b38827bb8e fixes qmake pathing and also fixes a type in configure.ac 2017-03-03 02:32:54 +02:00
thalieht
240046f720 TransferListWidget: Some coding style 2017-03-03 02:32:52 +02:00
thalieht
78b1194da1 enable RSS, Search and Execution Log widgets before switching to them via hotkeys 2017-03-03 02:32:39 +02:00
thalieht
c1a66dad51 change all existing shortcuts to use Qt::Keys 2017-03-03 02:32:38 +02:00
thalieht
4a10d246c2 add hotkeys for Trackerlist Peerlist etc. 2017-03-03 02:32:37 +02:00
thalieht
125ab378a4 add hotkey for execution log tab 2017-03-03 02:32:36 +02:00
thalieht
4cd8a36b40 Transferlist: add hotkeys for double click and recheck selected torrents 2017-03-03 02:32:35 +02:00
thalieht
364df2e18c change torrentDoubleClicked() so it can be used in a hotkey 2017-03-03 02:32:33 +02:00
Eugene Shalygin
f8f2476aa5 cmake: read version numbers from the version.pri file. Closes #6350. 2017-03-03 02:32:32 +02:00
sledgehammer999
d685c9739b Remove unnecessary semicolon. 2017-03-03 02:32:31 +02:00
sledgehammer999
6fdfcf38f1 Use same casting method and fix code style. 2017-03-03 02:32:30 +02:00
sledgehammer999
7c85866881 Fix previous commit. 2017-03-03 02:32:29 +02:00
Vladimir Sinenko
37673cd86f Fixed sort order for datetime columns with empty values (closes #2988)
A small fix belonging to #2531.
During the sorting empty QDateTime values are shuffled around due to
unstable sort in QSortFilterProxyModel (see #2526 and #2158), causing
the transfer list items to constantly change order.

Fixed by using an already existing correct comparison (with a torrent
hash fallback).
2017-03-03 02:30:18 +02:00
Tim Delaney
a4a38d633c Improve UI responsiveness during RSS downloading. Closes #873, #1089, #1235, #5423.
--HG--
branch : magao-dev
2017-03-03 02:17:34 +02:00
sledgehammer999
93bdc81e3c Fix unused variable warning by gcc. 2017-03-03 02:17:33 +02:00
Vladimir Golovnev (Glassez)
827d5a22fb Save/load category filter widget state 2017-03-03 02:17:32 +02:00
dzmat
34e56eade8 reduce methods accessibility from public to private 2017-03-03 02:17:31 +02:00
Chocobo1
4a23e7da37 Use case-insensitive comparsion for torrent content window.
Closes #6327
2017-03-03 02:17:29 +02:00
sledgehammer999
f577a26fe2 Immediately update torrent_status after manipulating super seeding mode. Partially fixes #6072. 2017-03-03 02:14:35 +02:00
Tim Delaney
3f176d8265 Fix compilation error on Qt<5.4. Closes #6170.
--HG--
branch : magao-dev
2017-03-03 02:14:34 +02:00
Tim Delaney
cbc001e059 RSS allow infinite range to extend beyond current season. Closes #800, #3876, #6170.
--HG--
branch : magao-dev
2017-03-03 02:14:33 +02:00
Tim Delaney
a66ed05ecd RSS parse torrent episodes like 1x01 as well as S01E01. Closes #2749.
--HG--
branch : magao-dev
2017-03-03 02:14:32 +02:00
Tim Delaney
ec347d8dbe Allow episode zero (special) and leading zeroes in RSS episode filter.
--HG--
branch : magao-dev
2017-03-03 02:14:31 +02:00
Tim Delaney
f0acafb853 RSS use red text to indicate invalid filter. Closes #6165.
--HG--
branch : magao-dev
2017-03-03 02:14:30 +02:00
Tim Delaney
1a12e891ec Allow | in RSS must contain. Closes #6171.
--HG--
branch : magao-dev
2017-03-03 02:14:28 +02:00
Tim Delaney
88ba8e2ceb Save rule on enable/disable even if not selected. Closes #6163.
--HG--
branch : magao-dev
2017-03-03 02:14:27 +02:00
Tim Delaney
2e403277f3 RSS: allow resetting rule to no category. Closes #5539.
--HG--
branch : magao-dev
2017-03-03 02:14:26 +02:00
Tim Delaney
89349f60b0 RSS episode filter refactoring and logging (prep for later commits).
--HG--
branch : magao-dev
2017-03-03 02:14:25 +02:00
Chocobo1
0604d3729a Use case-insensitive sort for Name column in Search tab. Closes #407. 2017-03-03 02:14:09 +02:00
ngosang
cf16e3b8a1 [Web UI] Fix category in torrent upload. Closes #6260 2017-03-03 02:14:08 +02:00
Eugene Shalygin
dcb3496651 cmake: RSS target has to depend on qbt_base as it uses its includes 2017-03-03 02:14:07 +02:00
Eugene Shalygin
9d10da3ed2 cmake: fix boost components manipulations in FindLibtorrentRasterbar.cmake
The list of components which we pass to find_package() has to be semicolon
separated (i.e. to be the usual cmake list)
2017-03-03 02:14:06 +02:00
Eugene Shalygin
0524deb496 cmake: make some compile definitions global in Windows 2017-03-03 02:14:05 +02:00
Tim Delaney
787ae43d54 Move old RSS items to separate config file. Closes #6167.
--HG--
branch : magao-dev
2017-03-03 02:14:04 +02:00
Falco
67bb2cc150 fix index overflow for torrents with invalid meta data or empty progress 2017-03-03 02:14:02 +02:00
Tim Delaney
51995c80d1 Ctrl+F search filter. Closes #5797.
--HG--
branch : magao-dev
2017-03-03 02:14:01 +02:00
Tim Delaney
5f43741b09 Follow project coding style. Issue #2192.
--HG--
branch : magao-dev
2017-03-03 02:14:00 +02:00
ngosang
3328d8efd2 [Search engine] Update extratorrent plugin. Closes #6261 2017-03-03 02:13:59 +02:00
Eugene Shalygin
a54a9e5487 cmake: make LibtorrentRasterbar::LibTorrent public dependency of qbt_base
If libtorrent include directory not in the compiler search path, we have
to pass it to all qbt targets, because session.h includes
libtorrent/version.hpp
2017-03-03 02:13:58 +02:00
Eugene Shalygin
0181ca70f4 cmake: get and use only actual boost dependencies of libtorrent
With pkg-config we can get a list of Boost components from Libtorrent
dependencies and make qBittorrent depend only on these libraries in
turn. For Windows user may provide a custom list via
LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES variable or use generic
list which consists of date_time, system, chrono, random, thread. As a
note: in case of using fully C++11 build, the actual list contains only
boost system library.
2017-03-03 02:13:57 +02:00
buinsky
ff665af3f7 Avoid lags in firefox on resizing progress column 2017-03-03 02:13:35 +02:00
buinsky
9275cdc5bf Remove 300px limit of column width 2017-03-03 02:13:34 +02:00
buinsky
b7c3bdd443 Fix scrollbar covers menu item with long text 2017-03-03 02:13:33 +02:00
buinsky
5fd08f8664 Implement resizable progress bar in "Done" column 2017-03-03 02:13:32 +02:00
buinsky
84a4d323c7 Follow project coding style. Issue #2192. 2017-03-03 02:13:31 +02:00
buinsky
8efb13bfaf Add a vertical separator between columns 2017-03-03 02:13:29 +02:00
buinsky
0187b55610 Prevent text wrapping in menus 2017-03-03 02:13:07 +02:00
buinsky
2f606b2728 Make too tall menus scrollable 2017-03-03 02:13:06 +02:00
buinsky
025f75beca Add some missing columns to dynamic tables 2017-03-03 02:13:05 +02:00
buinsky
4711cafd20 Fix columns names 2017-03-03 02:13:04 +02:00
buinsky
8d12ca9477 Implement dynamic table columns hiding 2017-03-03 02:13:03 +02:00
buinsky
67b90bfb51 Implement dynamic table columns reordering 2017-03-03 02:12:49 +02:00
buinsky
ab05c0c326 Implement dynamic table columns resizing 2017-03-03 02:12:47 +02:00
buinsky
c5ea453438 Add tooltips to dynamic table header 2017-03-03 02:12:46 +02:00
buinsky
4f041c16e1 Make torrent peers table scrollable horizontally 2017-03-03 02:12:45 +02:00
buinsky
28cfee7bd3 Simplify dynamic table CSS styles 2017-03-03 02:12:41 +02:00
buinsky
6272287fbb Make torrents table scrollable horizontally 2017-03-03 02:12:04 +02:00
buinsky
e7a1542902 Rename variables in DynamicTable class 2017-03-03 02:12:03 +02:00
ngosang
5e371d8195 Display more information in tracker tab 2017-03-03 02:11:43 +02:00
thalieht
6bb189ea13 friendlyUnit: Properly replace spaces with non-breaking spaces 2017-03-03 02:11:42 +02:00
thalieht
8496f31e39 Increased number of digits after the decimal point for Gibibytes and above 2017-03-03 02:11:41 +02:00
sledgehammer999
08f634f748 Polish previous commit. 2017-03-03 02:11:40 +02:00
thalieht
2b5dc5c4a6 SearchTab: can now save sorting column changes 2017-03-03 02:11:39 +02:00
thalieht
0a2f0aefb3 PeerListDelegate: fix coding style in whole file 2017-03-03 02:11:38 +02:00
thalieht
66e137b8ee PeerList: allow to hide zero values for the "uploaded" and "downloaded" columns 2017-03-03 02:11:36 +02:00
thalieht
f9be39545b TransferListWidget: keep columns width even if they are hidden on qBittorrent startup (unless something goes wrong) 2017-03-03 02:11:35 +02:00
thalieht
789b8046a2 SearchTab: Allow to toggle columns in searchtab 2017-03-03 02:11:34 +02:00
thalieht
129bf497c8 SearchTab: use saveSettings() and loadSettings() to handle header state 2017-03-03 02:11:33 +02:00
thalieht
a6d7693d62 SearchTab: align text to the right in columns that handle numbers 2017-03-03 02:11:32 +02:00
thalieht
4e9fbc4da5 PeerList: align text to the right in columns that handle numbers 2017-03-03 02:11:31 +02:00
Eugene Shalygin
23f6ff4673 Fix cmake compilation 2017-03-03 02:11:30 +02:00
Vladimir Golovnev (Glassez)
3c0dfa6444 Implement category filter widget
Show categories in tree mode when subcategories are enabled.
2017-03-03 02:11:29 +02:00
Tim Delaney
694311b2bd Follow project coding style. Issue #2192.
--HG--
branch : magao-dev
2017-03-03 02:11:28 +02:00
Chocobo1
b77626897f Set default locale 2017-03-03 02:11:27 +02:00
Chocobo1
b8081feac1 Refactor
Move default value to preference class
Rename variable
Reorder headers
Remove extra parentheses
2017-03-03 02:11:25 +02:00
Bilal Elmoussaoui
8b805f4518 fixes default indicator name
copy icons instead of renaming them, create status folder

rename from *-indicator to *-tray
2017-03-03 02:11:24 +02:00
Chocobo1
8bb4f021f1 Remove trailing spaces 2017-03-03 02:11:23 +02:00
Chocobo1
97c79050dc Reset values to default, these are controled elsewhere. 2017-03-03 02:11:22 +02:00
Chocobo1
ac62a708de Speedlimitdlg: raise slider default value to 10000. Closes #6150.
Old value 1000 (KB/s) can be a bit small for modern internet.
2017-03-03 02:08:04 +02:00
Chocobo1
8d9789f51b Code rewrite, no behavior change 2017-03-03 02:08:03 +02:00
Hiro Asari
559d0228fd Allow some Mac jobs to fail
Put `allow_failures` in the correct place.
2017-03-03 02:08:02 +02:00
sledgehammer999
1296e7b891 Fix finding 'English' item in language dropdown menu when an unrecognized locale is requested. Closes #6109. 2017-03-03 02:08:01 +02:00
Chocobo1
0333e23710 After files relocate, don't remove the old folder even if it is empty. 2017-03-03 02:08:00 +02:00
Chocobo1
7320a80caa Refactor 2017-03-03 02:07:59 +02:00
Oke Atime
0579bfc069 Build qbittorrent-nox for macOS 2017-03-03 02:07:57 +02:00
Chocobo1
d20d04299e Use the numbers from tracker scrape response. Closes #5048, #6117.
Add comments
Thanks to Ian Kent for helping investigate
2017-03-03 02:07:56 +02:00
Chocobo1
50b2009e9c Fix webUI used the wrong value. Closes #6232. 2017-03-03 02:07:55 +02:00
dzmat
721d29edda DRY violation fixed 2017-03-03 02:07:54 +02:00
Chocobo1
bc9cae199b Put temp files in .qBittorrent directory. Closes #4462. 2017-03-03 02:07:53 +02:00
Chocobo1
c38b250667 Remove unused header 2017-03-03 02:07:52 +02:00
sledgehammer999
101b2f3ad2 Remove settings to exchange trackers. It wasn't used by non-libtorrent clients. Also it has a privacy risk and you might be DDoSing someone. DHT makes it obsolete anyway. 2017-03-03 02:07:51 +02:00
Eugene Shalygin
9c4f798d93 Print warning to the user if stacktrace contains no function names
Count matched function names, and if there are no, point out to the user
that the stacktrace is useless. If not all stactrace elements contain
function names, suggest user that installing debug packages may improve
the stacktrace usefulness.
2017-03-03 02:07:50 +02:00
Eugene Shalygin
249ff21738 Follow project coding style. Issue #2192. 2017-03-03 02:07:49 +02:00
dzmat
f1149097b6 Clarify options tab page objects names 2017-03-03 02:07:48 +02:00
Chocobo1
111b0df307 Fix warning: unused parameter ‘action’ [-Wunused-parameter] 2017-03-03 02:07:47 +02:00
Eugene Shalygin
8041af72cd Fetch torrent status when generating final fastresume data
This is done to get correct queue position, which has to be written into
the fastresume file. See discussion in #6154.
2017-03-03 02:07:46 +02:00
Eugene Shalygin
4be6d0b30f Add queue repair code
This is a bit adjusted code created by nxd4, who shared it in issue
disappearing).
2017-03-03 02:07:45 +02:00
Tim Delaney
8c757969f2 Fix tab order in RSS downloader. Closes #6164.
--HG--
branch : magao-dev
2017-03-03 02:07:43 +02:00
Oke Atime
ae6a82f814 Avoid unnecessary translation. Closes #6158 2017-03-03 02:07:42 +02:00
Oke Atime
eed3f0559a Webui proxy_type bug fix 2017-03-03 02:07:41 +02:00
Eugene Shalygin
c7884e7621 Do not resize SVG icons
An icon which is loaded from SVG file can be rendered in any size and
resolutions natively. We were generating 16x16, 24x24, and 32x32
pixmaps, and not appending but creating new icon. Therefore for SVG
icons we effectively were reducing their quality.

If icon already contains 7 (or more) sizes (16 to 256 px) we do not
resize it anymore.
2017-03-03 02:07:40 +02:00
Eugene Shalygin
2946ab7e7a Support fallback when selecting theme icons
Fallback icon theme are not supported everywhere. Hence we mimic
signature of QIcon::fromTheme().
2017-03-03 02:07:39 +02:00
Chocobo1
ddb8e4d21a For each cell setting ignore wheel events. Closes #866. 2017-03-03 01:46:57 +02:00
Eugene Shalygin
00d4f6141f Do not remove added files unconditionally. Closes #6248
If removing of added torrents is enabled and dialog for adding torrents
is disabled, file guard was assuming that torrent is added successfully.
And that can be not the case if a user trying to add a broken torrent
file (or not a torrent file at all). Then this file gets deleted always.

Fix this by checking result of addTorrent_impl().
2017-03-03 01:46:56 +02:00
sledgehammer999
7971a25c2a Fix Travis macOS builds. 2017-03-03 01:46:55 +02:00
Eugene Shalygin
ab2411930a Workaround problem with moc from Qt4 and #if
moc from Qt4 ignores Q_ENUMS when it is behind #if QT_VERSION check.
Therefore moc entries for enum in TorrentFileGuard were not generated
and the setting was not saving/loading. This closes #6103, #5451
2017-03-03 01:46:54 +02:00
sledgehammer999
93f972bfca Allow build failures for qt4 and osx for Travis. 2017-03-03 01:46:31 +02:00
sledgehammer999
db638844d0 Use custom qt5 bottle for homebrew (macOS) on Travis. 2017-03-03 01:46:30 +02:00
sledgehammer999
ba99eddc91 Add template for issues. 2017-03-03 01:46:29 +02:00
Eugene Shalygin
92428cee5d Set upper version limit for QTBUG-52633
The bug seems to be fixed in version 5.7.1.
2017-03-03 01:46:28 +02:00
sledgehammer999
2c7d836925 Don't use hardcoded numbers to refer to columns. 2017-03-03 01:46:27 +02:00
sledgehammer999
7703dcf626 Allow to change priority for unselected files through the combobox like it is done via the context menu. 2017-03-03 01:46:09 +02:00
sledgehammer999
157520c4fc Always show progress and remaining bytes for unselected files. 2017-03-03 01:46:08 +02:00
sledgehammer999
5bc728fa33 Use a disabled progressbar's palette for unselected files.
Thanks to evsh(Eugene Shalygin) for example code.
2017-03-03 01:46:07 +02:00
sledgehammer999
35fdc43b3f Update gpg key with new uid. 2017-03-03 01:46:05 +02:00
Eugene Shalygin
ae6ea29f2f cmake: make prefix variables cached
This allows user to override their default value via -D cmake switch
2017-03-03 01:46:04 +02:00
sledgehammer999
4eac2cab31 Bump to 3.3.10 2016-12-17 19:57:52 +02:00
sledgehammer999
87f4f57f8e Update Changelog. 2016-12-17 19:54:49 +02:00
sledgehammer999
a6e250fa43 WINDOWS: Make the updater to look for the x64 installer if running x64 version. 2016-12-17 19:48:46 +02:00
Oke Atime
b118079379 Make resume/pause menu items clickable. Closes #6040 2016-12-17 19:48:45 +02:00
Oke Atime
cb2d39f2a7 Case insensitive sort for client clumn. Closes #6054 2016-12-17 19:48:45 +02:00
sledgehammer999
4cf549ff25 Fix share ratio limiting. Broken by commit 259b5e51c4. Closes #6039 #6048. 2016-12-15 00:06:04 +02:00
sledgehammer999
b5c6342dca Bump to 3.3.9 2016-12-14 18:39:40 +02:00
sledgehammer999
46ec556921 Update Changelog. 2016-12-14 18:37:07 +02:00
sledgehammer999
33ae1a7bee Correctly migrate settings/rss/usage stats in macOS. Closes #6041. 2016-12-14 18:19:20 +02:00
sledgehammer999
87a3a67668 Fix GUI for proxy settings. Closes #6045. 2016-12-14 18:19:19 +02:00
sledgehammer999
055b1e0163 Fix slider for per torrent speed limits when no global speed limit has been set. Closes #6046. 2016-12-14 18:19:19 +02:00
346 changed files with 47706 additions and 37968 deletions

14
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,14 @@
**Please provide the following information**
### qBittorrent version and Operating System:
### If on linux, libtorrent and Qt version:
### What is the problem:
### What is the expected behavior:
### Steps to reproduce:
### Extra info(if any):

1
.gitignore vendored
View File

@@ -17,6 +17,7 @@ Makefile*
# Generated MOC, resource and UI files
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
*.moc

View File

@@ -17,6 +17,12 @@ env:
global:
- secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8="
- coverity_branch: coverity_scan
matrix:
allow_failures:
- os: osx
env: lt_branch=RC_1_0 qt=4 gui=true
- os: osx
env: lt_branch=RC_1_0 qt=4 gui=false
branches:
except:
@@ -28,16 +34,15 @@ notifications:
on_success: change
on_failure: change
# container-based builds
#sudo: false
cache:
ccache: true
directories:
- $HOME/hombebrew_cache
# opt-in Ubuntu Trusty
sudo: required
dist: trusty
# container-based builds
sudo: false
addons:
coverity_scan:
@@ -49,20 +54,27 @@ addons:
branch_pattern: $coverity_branch
notification_email: sledgehammer999@qbittorrent.org
apt:
#sources:
# sources list: https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
#- ubuntu-toolchain-r-test
#- boost-latest
sources:
# sources list: https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
#- ubuntu-toolchain-r-test
#- boost-latest
- sourceline: 'ppa:qbittorrent-team/qbittorrent-stable'
- sourceline: 'ppa:beineri/opt-qt551-trusty'
packages:
# packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
- autoconf
- automake
- colormake
- libssl-dev
- libboost-dev
- libboost-system-dev
# uncomment when Travis upgraded "Ubuntu 12.04 LTS" to a newer version whose repo will have a more up-to-date libtorrent package
#- libtorrent-rasterbar6
# packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
- autoconf
- automake
- colormake
- libssl-dev
- libboost-dev
- libboost-system-dev
- libtorrent-rasterbar-dev
# Qt 5.5.1
- qt55base
- qt55tools
# Qt 4.8
- qt4-default
- libqt4-dev
before_install:
# only allow specific build for coverity scan, others will stop
@@ -73,7 +85,7 @@ before_install:
#- libt_path="$HOME/libt_install"
#- ltconf="$ltconf --prefix="$libt_path" --disable-geoip"
- qbt_path="$HOME/qbt_install"
- qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH="$libt_path/lib/pkgconfig":$PKG_CONFIG_PATH"
- qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH="$libt_path/lib/pkgconfig":/opt/qt55/lib/pkgconfig:$PKG_CONFIG_PATH"
# options for specific branches
- if [ "$qt" = 4 ]; then qbtconf="$qbtconf --with-qt4" ; fi
@@ -82,10 +94,9 @@ before_install:
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# setup virtual display for after_success target
if [ "$gui" = true ]; then export "DISPLAY=:99.0" && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16 ; fi ;
fi
- |
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
qbtconf="$qbtconf --disable-qt-dbus" ;
# Qt 5
PATH=/opt/qt55/bin:${PATH}
fi
# print settings
@@ -95,45 +106,37 @@ before_install:
- echo $qbtconf
install:
- |
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# libtorrent
sudo add-apt-repository --yes ppa:qbittorrent-team/qbittorrent-stable ;
sudo apt-get update -qq ;
sudo apt-get install -qq libtorrent-rasterbar-dev ;
#- |
#if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# build libtorrent from source
#if [ "$lt_branch" != "dist" ]; then
#cd "$HOME" && pwd && git clone --depth 1 https://github.com/arvidn/libtorrent.git --branch $lt_branch ;
#cd libtorrent && ./autotool.sh && ./configure $ltconf && make install ;
#fi ;
# Qt
if [ "$qt" = 4 ]; then sudo apt-get -qq install qt4-default libqt4-dev ; fi ;
if [ "$qt" = 5 ]; then sudo apt-get -qq install qt5-default qtbase5-dev qttools5-dev-tools ; fi ;
# ccache
if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
dpkg-query -L ccache && export use_ccache=true ;
ccache -V && ccache --show-stats && ccache --zero-stats ;
fi ;
fi
#fi
- |
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
mkdir -p "$HOME/hombebrew_cache" ;
# dependencies
brew update > /dev/null
brew install colormake ccache zlib
PATH="/usr/local/opt/ccache/libexec:$PATH"
brew link --force zlib
brew outdated "pkg-config" || brew upgrade "pkg-config"
wget https://builds.shiki.hu/homebrew/version ;
if ! cmp --quiet "version" "$HOME/hombebrew_cache/version" ; then
echo "Cached files are different from server. Downloading new ones." ;
# First delete old files
rm -r "$HOME/hombebrew_cache" ;
mkdir "$HOME/hombebrew_cache";
cp "version" $HOME/hombebrew_cache ;
cd "$HOME/hombebrew_cache" ;
wget https://builds.shiki.hu/homebrew/libtorrent-rasterbar.rb ;
wget https://builds.shiki.hu/homebrew/libtorrent-rasterbar-1.0.10.el_capitan.bottle.tar.gz ;
wget https://builds.shiki.hu/homebrew/qt5.rb ;
wget https://builds.shiki.hu/homebrew/qt5-5.7.1_1.el_capitan.bottle.tar.gz ;
fi
# dependencies
brew update > /dev/null ;
brew install colormake ccache ;
brew outdated "pkg-config" || brew upgrade "pkg-config" ;
# Copy custom libtorrent bottle to homebrew's cache so it can find and install it
# Also install our custom libtorrent formula by passing the local path to it
# These 2 files are restored from Travis' cache.
@@ -142,13 +145,19 @@ install:
# Qt
if [ "$qt" = 4 ]; then brew install qt && ln -s /usr/local/Cellar/qt/4.8.7_2/plugins /usr/local ; fi ;
if [ "$qt" = 5 ]; then brew install qt5 && brew link --force qt5 && ln -s /usr/local/Cellar/qt5/5.7.0/plugins /usr/local ; fi ;
# ccache
if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
export PATH="/usr/local/opt/ccache/libexec:$PATH" && export use_ccache=true ;
ccache -V && ccache --show-stats && ccache --zero-stats ;
fi ;
if [ "$qt" = 5 ]; then
# Copy custom qt5 bottle to homebrew's cache so it can find and install it
# Also install our custom qt5 formula by passing the local path to it
# These 2 files are restored from Travis' cache.
cp "$HOME/hombebrew_cache/qt5-5.7.1_1.el_capitan.bottle.tar.gz" "$(brew --cache)" ;
brew install "$HOME/hombebrew_cache/qt5.rb" ;
brew link --force qt5 ;
fi
fi
- |
if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
export use_ccache=true
ccache -V && ccache --show-stats && ccache --zero-stats
fi
script:
@@ -165,7 +174,11 @@ script:
after_success:
- if [ "$gui" = true ]; then qbt_exe="qbittorrent" ; else qbt_exe="qbittorrent-nox" ; fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cd "$qbt_path/bin" ; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then cd "$TRAVIS_BUILD_DIR/src/" && macdeployqt "$qbt_exe.app" && cd "$qbt_exe.app/Contents/MacOS" ; fi
- |
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
macdeployqt "$TRAVIS_BUILD_DIR/src/$qbt_exe.app" ;
cd "$TRAVIS_BUILD_DIR/src/$qbt_exe.app/Contents/MacOS" ;
fi
- ./$qbt_exe --version
after_script:

View File

@@ -26,28 +26,67 @@ HiShCTSSDBJqFmhfjrCo0nISKnzyxgO/rY9vFlwXsKkTyL7s53ONkjwK34WmGnya
tXdjBWShzAiTfF5hephfBSszmoBG2C8Jcu6P5n4buBY4RCsEa+6jE0R1vCtmpVwx
WrXOeN2kGYMpAkPK1L69Le0FofgUDKlaFMv7KRl4R367xNRukYrsKwVlontJ+Y72
X5t1BeRn8VSp0IzhssNXM8a4bTE8lvs889DOS2vgWEHIi0iyIesJYWPs4AKUw4rG
EDwWxtTS0a7Rfx3DxLkCDQRXDSCMARAAqMIVJizEJp205c546IN75xeYiFszNXcs
3768IY8bOoWj+rTwt2wIwtL/3O5K2dG79CSt2H5o6BPKmq43tOO60YW3Yk3m9BB/
gnAVqk0QOPr5O8+yeBzdElU8CZh6y6zZMWugSkNmTDm6jZzPhgNjcjrit/dl9+0D
GqJQcqoD8WzEWNcWrMHVz9cDewnLSVkwR758mZMaIiL7R10MZ++tNrC0j69UINqx
+9z1r1J07+NNnxqSTxVRcbjPYtM9E+tUiVFS2HPWN9ShVDkBAEdoWh90qzRaMiFl
2NGNGOD1iHx/xr06RMeGEEXt2vhSlhfMW2YQW+UD2jzlFbARf53v39MUKKscGuIp
BhxGw3JCq4l6qLW/bDkgnoXlOhZDmhQm6OpsjAyk9IEdd3ponSc7yYD3mUkJKR9e
TaALD5t6TQGyNHakb4UfoXtE2RR78cbPlLIwag7eQ8GsNA+dfjowmOZdojx3ROsH
ZdGQwb0YFLjuKAusA3TY+lCfbS6kzE2iI2DuaW+3dICcLrYuibbVb0CBNHyD+8KE
tczdur/wm0lhqyVJkGyZKZT8C2cPxywKgy1Rn6F8Yfmj0Lna3nvtaZu0ZUS4/8Li
t5PcOso1lSmYBuD6yq+GEAMCnUmn1Pm8eZRMlxxQuTPvyJKQrRDhbtAAr472MSno
JKlS4SfaUF0AEQEAAYkCHwQYAQgACQUCVw0gjAIbDAAKCRBuSi0CW3zJomZDD/9I
Jmzd5hiEzntlp84pyIJcfyIRe4KImvldAy6T02OSIbF1HzCNnwmqIPob6MOdMZ+K
NwMK0htRkrRr/zM034+lBiWKZt+tVYHu49ioTYXEjAc5qDJE09Sq7HceQnhgE48f
1n54XGT5G2w5gw+/a8Qn1SceE44VwXafL3E1gKaOrrsb1UH/AJhp+W4VMu+7bLXu
7h1tN6v2PhvCYvBt3zyy8Q8xfJ2x7/D1lbF8ATJAiZ/km9x5bRm7OGRliVYaUe1n
yR42fZOj3CBmAR0+lZLgjriqdMXrs+qlBbrmAhkn0XPQXAeaPifKoKIGDAUWIsqD
HqM7imMGT+MR9APfSw8M4enOJWL+HnKpVBEARCEDpaFpJ3u7QRucFybpEhvIymoN
ftyw+urId2Eg2K33NypeZo3M1K2LC65f2Ta7f/sZcIDUTbgW+m334fgVl1KptDA5
DX3U9lTci7mi4uPuAFtbWrB1di4jYrxXYuzFm5g4xTb0Hw3kYIB6WXF+I7i0JaGO
THxPC5X5lIAZrYrkxh+1n1Y1CY+TC8JcTzwORJIbFFm9tD/BHXa4849k4DVvFYCZ
khq+/56FKZfoVByhB+x+2GaMlsBm1uPniO4lAakFPpIi0kaap4UVayQ/7ak+Bhsc
AIHZUy6NtgZkuvW3xdpwp07LYo2ilhMI8RnzmtoRmg==
=tDGM
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
xdpwp07LYo2ilhMI8RnzmtoRmg==
=UBeB
-----END PGP PUBLIC KEY BLOCK-----

View File

@@ -1,15 +1,14 @@
cmake_minimum_required(VERSION 3.5)
cmake_policy(VERSION 3.5)
project(qBittorrent VERSION 3.4.0.0)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
include(FunctionReadVersion)
set(VER_MAJOR ${qBittorrent_VERSION_MAJOR})
set(VER_MINOR ${qBittorrent_VERSION_MINOR})
set(VER_BUGFIX ${qBittorrent_VERSION_PATCH})
set(VER_BUILD ${qBittorrent_VERSION_TWEAK})
set(VER_STATUS "alpha") # Should be empty for stable releases!
read_version("${CMAKE_CURRENT_SOURCE_DIR}/version.pri" VER_MAJOR VER_MINOR VER_BUGFIX VER_BUILD VER_STATUS)
# message(STATUS "Project version is: ${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}.${VER_BUILD} (${VER_STATUS})")
project(qBittorrent VERSION ${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}.${VER_BUILD})
# Don't touch the rest part
set(PROJECT_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}")
if (NOT VER_BUILD EQUAL 0)
@@ -18,19 +17,19 @@ endif()
set(PROJECT_VERSION "${PROJECT_VERSION}${VER_STATUS}")
add_definitions(-DVERSION_MAJOR=${VER_MAJOR})
add_definitions(-DVERSION_MINOR=${VER_MINOR})
add_definitions(-DVERSION_BUGFIX=${VER_BUGFIX})
add_definitions(-DVERSION_BUILD=${VER_BUILD})
add_definitions(-DQBT_VERSION_MAJOR=${VER_MAJOR})
add_definitions(-DQBT_VERSION_MINOR=${VER_MINOR})
add_definitions(-DQBT_VERSION_BUGFIX=${VER_BUGFIX})
add_definitions(-DQBT_VERSION_BUILD=${VER_BUILD})
# os2 {
# DEFINES += VERSION=\'\"v$${PROJECT_VERSION}\"\'
# DEFINES += DQBT_VERSION=\'\"v$${PROJECT_VERSION}\"\'
# DEFINES += DQBT_VERSION_2=\'\"$${PROJECT_VERSION}\"\'
# } else {
add_definitions(-DVERSION="v${PROJECT_VERSION}")
add_definitions(-DQBT_VERSION="v${PROJECT_VERSION}")
add_definitions(-DQBT_VERSION_2="${PROJECT_VERSION}")
# }
list(APPEND CMAKE_MODULE_PATH ${qBittorrent_SOURCE_DIR}/cmake/Modules)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og")
if (UNIX AND NOT APPLE)
include(GNUInstallDirs)
endif (UNIX AND NOT APPLE)

View File

@@ -138,14 +138,14 @@ However, there are cases where curly braces for single statement if blocks **sho
Generally it will depend on the particular piece of code and would be determined on how readable that piece of code is. **If in doubt** always use braces if one of the above exceptions applies.
### 3. Indentation###
### 3. Indentation ###
4 spaces.
### 4. File encoding and line endings.###
### 4. File encoding and line endings. ###
UTF-8 and Unix-like line ending (LF). Unless some platform specific files need other encodings/line endings.
### 5. Initialization lists.###
### 5. Initialization lists. ###
Initialization lists should be vertical. This will allow for more easily readable diffs. The initialization colon should be indented and in its own line along with first argument. The rest of the arguments should be indented too and have the comma prepended.
```c++
myClass::myClass(int a, int b, int c, int d)
@@ -158,7 +158,7 @@ myClass::myClass(int a, int b, int c, int d)
}
```
### 6. Enums.###
### 6. Enums. ###
Enums should be vertical. This will allow for more easily readable diffs. The members should be indented.
```c++
enum Days
@@ -173,7 +173,7 @@ enum Days
};
```
### 7. Names.###
### 7. Names. ###
All names should be camelCased.
#### a. Type names and namespaces ####
@@ -207,7 +207,7 @@ class MyClass
}
```
### 8. Header inclusion order.###
### 8. Header inclusion order. ###
The headers should be placed in the following order:
1. Module header (in .cpp)
2. System/Qt/Boost etc. headers (splitted in subcategories if you have many).
@@ -240,7 +240,7 @@ Example:
```
### 9. Misc.###
### 9. Misc. ###
* Line breaks for long lines with operation:
@@ -304,5 +304,5 @@ for (int a = 0; a < b; ++b) {
* Method definitions aren't allowed in header files
###10. Not covered above###
If something isn't covered above, just follow the same style the file you are editing has. If that particular detail isn't present in the file you are editing, then use whatever the rest of the project uses.
### 10. Not covered above ###
If something isn't covered above, just follow the same style the file you are editing has. If that particular detail isn't present in the file you are editing, then use whatever the rest of the project uses.

View File

@@ -1,4 +1,4 @@
# Filing an issue
# Filing an issue
### Must read
* If you aren't sure, you can ask on the [**forum**](http://forum.qbittorrent.org) or read our [**wiki**](http://wiki.qbittorrent.org) first.
@@ -6,12 +6,11 @@
* Write in **English**!
* Provide **version** information: (You can find version numbers at menu `Help -> About -> Libraries`)
```
qBittorrent:
Qt:
libtorrent:
boost:
OS version:
qBittorrent:
Qt:
libtorrent:
boost:
OS version:
```
* Provide **steps** to reproduce the problem, it will be easier to pinpoint the fault.
* **Screenshots**! A screenshot is worth a thousand words. just upload it. [(How?)](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests)

157
Changelog
View File

@@ -1,3 +1,160 @@
* Thu Jun 01 2017 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.3.13
- BUGFIX: Fixed UI glitch about torrent numbers in the sidepanel. Fixes #6454. (evsh)
- BUGFIX: Fix downloaded/uploaded columns were not highlighted properly when selected. (Chocobo1)
- BUGFIX: Always draw background in files list and search result list (Chocobo1)
- BUGFIX: Remove torrent temp folder if it becomes unneeded (glassez)
- BUGFIX: Remove torrent temp folder when torrent is deleted (glassez)
- BUGFIX: Setup DPI at startup (Chocobo1)
- BUGFIX: Do not attempt to show detailed tooltips without torrent metadata. Closes #6768. (evsh)
- BUGFIX: Better detection of already present files when adding a torrent. (fbriere)
- BUGFIX: Fix double click on system tray icon causing program to open and minimize immediately. Closes #5826. (Chocobo1)
- BUGIFX: Fix categories sorting in AddNewTorrentDialog. Partially fixes #6708. (fbriere)
- BUGFIX: Set "category" column as case-insensitive in transfer list. (fbriere)
- BUGFIX: Properly sort categories case-insensitively in filter widget. Closes #6708. (fbriere)
- BUGFIX: Fix renaming files is not case sensitive on Windows platform. Closes #5128. (Chocobo1)
- BUGFIX: Fix crash in download piece bar (evsh)
- BUGFIX: Fix focusing on the previously opened dialog didn't work (Chocobo1)
- WEBUI: Bugfix: `RequestParser::splitMultipartData` drop extra trailing newline. (OpenGG)
- WEBUI: Add `skip_checking` and `paused` to `/command/download` and `/command/upload` (OpenGG)
- WEBUI: Fix checkbox hidden. Closes #6642. (Chocobo1)
- WEBUI: 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. (Chocobo1)
- WEBUI: Always send Content-Length header. (Chocobo1)
- WEBUI: Send Date http header (Chocobo1)
- WEBUI: Fix "Content-Encoding" header is always created. (Chocobo1)
- WEBUI: Implement robust checking for gzip encoding and revise gzip compressing/decompressing code. (Chocobo1)
- WEBUI: Make the context obligatory for translatable strings. Also delete duplicate strings from extra translations. (sledgehammer999)
- WEBUI: Use translatable strings in Statistics dialog. (sledgehammer999)
- WEBUI: Add missing unit sizes in misc.js (sledgehammer999)
- WEBUI: Use the same layout in the Speed tab in preferences as the GUI. (sledgehammer999)
- WEBUI: Return status indicating if at least one torrent was successfully added (Thomas Piccirello)
- WEBUI: Increase the number of digits after the decimal point (thalieht)
- WEBUI: Use less permissive Content Security Policy (Thomas Piccirello)
- WEBUI: Fix connection status icon too large. Closes #6804. (Chocobo1)
- WEBUI: Cosmetic fixes for WebUI upload and download windows (naikel)
- WEBUI: Fix slow filtering in WebUI. (naikel)
- WEBUI: Make cookie parsing robust (Chocobo1)
- WEBUI: New API for getting torrent piece info (Chocobo1)
- WEBUI: Implement Cross-Site Request Forgery defense. Due to this the HTTP referer header is now expected in (almost) all HTTP requests. qBittorrent will drop the request sent without the referer header. That's why we bump the API_VERSION_MIN too. (reported by OpenGG, fixed by Chocobo1)
- SEARCH: Update demonoid, legittorrents plugins (ngosang)
- SEARCH: Remove mininova, ExtraTorrent plugins (ngosang, KingLucius)
- SEARCH: Add btdb plugin (ngosang)
- WINDOWS: Updated Spanish, Ukrainian, German, Chinese languages of the installer. (ngosang, evsh, schnurlos, wevsty)
- LINUX: Rename .desktop and appdata files to match executable name. Fixes #6625. (evsh)
- MACOS: Fix UI responsiveness after AddNewTorrentDialog received metadata. (Brian Kendall)
* Thu Apr 06 2017 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.3.12
- FEATURE: Indicate bitness in stackstrace and about dialog. Closes #6172. (sledgehammer999)
- BUGFIX: Fix incomplete type compile error with Qt4 (Chocobo1)
- BUGFIX: Fix compile error: escape is not a member of Qt (Chocobo1)
- BUGFIX: Use system locale to format dates/time/etc (sledgehammer999)
- BUGFIX: Follow http user-agent format (Chocobo1)
- BUGFIX: Fix cancel "Set location" causes files move to installation dir. (Chocobo1)
- WEBUI: Improve performance of updating 'progress' column (buinsky)
- WEBUI: Implement statistics window in web UI (FranciscoPombal)
- WEBUI: fixed "remaining" column in WebUI (FranciscoPombal)
- WEBUI: Set HttpOnly attribute to SID cookie (Chocobo1)
- WEBUI: Fire up the timer to clean inactive sessions (Chocobo1)
- WEBUI: Set cookie SID value to empty on logout (Chocobo1)
- WINDOWS: Make the installer DPI aware (regs01)
- WINDOWS: Set exit code to 0 on install/uninstall success. Fixes problem with silent installations. (Chocobo1)
- WINDOWS: The 64-bit installer refuses to install on 32-bit systems. (sledgehammer999)
- WINDOWS: The 64-bit installer uses the correct "Program Files" now. Detection will not work if you install on top of previous installer. (sledgehammer999)
- WINDOWS: Fix running the uninstaller if the user chose a different path in the installer. Closes #6080. (sledgehammer999)
- LINUX: Add keywords to the .desktop file. (sledgehammer999)
- LINUX: Update stuff in appdata.xml and run 'appstream-utl upgrade' on it. (sledgehammer999)
- OTHER: Replace rand() by a true uniform distribution generator (Chocobo1)
- OTHER: Change our user-agent format as indicated earlier in the news section (Chocobo1)
- OTHER: cmake: fix OSX bundle creation (evsh)
* Fri Mar 03 2017 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.3.11
- FEATURE: Always show progress and remaining bytes for unselected files. (sledgehammer999)
- FEATURE: Allow to change priority for unselected files through the combobox like it is done via the context menu. (sledgehammer999)
- FEATURE: Remove settings to exchange trackers. It wasn't used by non-libtorrent clients. Also it has a privacy risk and you might be DDoSing someone. (sledgehammer999)
- FEATURE: Put temp files in .qBittorrent directory. Closes #4462. (Chocobo1)
- FEATURE: Use the numbers from tracker scrape response. Closes #5048, #6117. (Chocobo1)
- FEATURE: Implement category filter widget. Show categories in tree mode when subcategories are enabled. (glassez)
- FEATURE: Allow to toggle columns in searchtab (thalieht)
- FEATURE: PeerList: allow to hide zero values for the "uploaded" and "downloaded" columns (thalieht)
- FEATURE: Display more information in tracker tab (ngosang)
- FEATURE: Use Ctrl+F to search torrents. Closes #5797. (Tim Delaney)
- FEATURE: Transferlist: add hotkeys for double click and recheck selected torrents (thalieht)
- FEATURE: Add hotkey for execution log tab, Trackerlist, Peerlist etc (thalieht)
- FEATURE: Seperate seeds from peers for DHT, PeX and LSD (thalieht)
- BUGFIX: Do not remove added files unconditionally. Closes #6248 (Eugene Shalygin)
- BUGFIX: Ignore mouse wheel events in Advanced Settings. Closes #866. (Chocobo1)
- BUGFIX: Add queue repair code. It should fix missing torrents after restarting. (Eugene Shalygin, nxd4)
- BUGFIX: Fetch torrent status when generating final fastresume data. It should fix missing torrents after restarting. (Eugene Shalygin)
- BUGFIX: Fix queue overload for add torrent at session start. It should fix missing torrents after restarting. (falco)
- BUGFIX: After files relocate, don't remove the old folder even if it is empty. (Chocobo1)
- BUGFIX: Fix finding 'English' item in language dropdown menu when an unrecognized locale is requested. Closes #6109. (sledgehammer999)
- BUGIFX: Speedlimitdlg: raise slider default value to 10000. Closes #6150. (Chocobo1)
- BUGFIX: TransferListWidget: keep columns width even if they are hidden on qBittorrent startup (unless something goes wrong) (thalieht)
- BUGFIX: fix index overflow for torrents with invalid meta data or empty progress (Falco)
- BUGFIX: Immediately update torrent_status after manipulating super seeding mode. Partially fixes #6072. (sledgehammer999)
- BUGFIX: Use case-insensitive comparsion for torrent content window. Closes #6327. (Chocobo1)
- BUGFIX: Fixed sort order for datetime columns with empty values (closes #2988) (Vladimir Sinenko)
- BUGFIX: Disable proxy in WebUI HTTP server. Closes #6349. (Eugene Shalygin)
- COSMETIC: Use a disabled progressbar's palette for unselected files. (sledgehammer999)
- COSMETIC: Support fallback when selecting theme icons (Eugene Shalygin)
- COSMETIC: Do not resize SVG icons (Eugene Shalygin)
- COSMETIC: Align text to the right in columns that handle numbers for PeerList and SearchTab (thalieht)
- COSMETIC: Increased number of digits after the decimal point for Gibibytes and above (thalieht)
- COSMETIC: Use non-breaking spaces between numbers and units (thalieht)
- WEBUI: Fix proxy type bug (Oke Atime)
- WEBUI: Use the correct value for KEY_TORRENT_NUM_COMPLETE/KEY_TORRENT_NUM_INCOMPLETE (Chocobo1)
- WEBUI: Make torrents table scrollable horizontally (buinsky)
- WEBUI: Make torrent peers table scrollable horizontally (buinsky)
- WEBUI: Add tooltips to dynamic table header (buinsky)
- WEBUI: Implement dynamic table columns resizing, reordering and hiding (buinsky)
- WEBUI: Add some missing columns to dynamic tables (buinsky)
- WEBUI: Make too tall menus scrollable (buinksy)
- WEBUI: Prevent text wrapping in menus (buinsky)
- WEBUI: Add a vertical separator between columns (buinsky)
- WEBUI: Implement resizable progress bar in "Done" column (buinsky)
- WEBUI: Fix scrollbar covers menu item with long text (buinsky)
- WEBUI: Remove 300px limit of column width (buinsky)
- WEBUI: Avoid lags in firefox on resizing progress column (buinsky)
- WEBUI: Fix category in torrent upload. Closes #6260 (ngosang)
- WEBUI: Turn off port forwarding of WebUI by default for GUI users (Chocobo1)
- WEBUI: Exclude insecure ciphers. Fixes security issues reported by @beardog108 privately. (Chocobo1)
- WEBUI: Avoid clickjacking attacks. Fixes security issues reported by @beardog108 privately. (ngosang)
- WEBUI: Add X-XSS-Protection, X-Content-Type-Options, CSP header. Fixes security issues reported by @beardog108 privately. (Chocobo1)
- WEBUI: Escape various values that might contain injected html. Fixes security issues reported by @beardog108 privately. (Chocobo1)
- WEBUI: Bump API_VERSION to 12.
- SEARCH: Update extratorrent plugin. Closes #6261 (ngosang)
- SEARCH: SearchTab: can now save sorting column changes (thalieht)
- SEARCH: Use case-insensitive sort for Name column in Search tab. Closes #407. (Chocobo1)
- RSS: Fix tab order in RSS downloader. Closes #6164. (Tim Delaney)
- RSS: Move old RSS items to separate config file. Closes #6167. (Tim Delaney)
- RSS: Episode filter code refactoring (Tim Delaney)
- RSS: Allow resetting rule to no category. Closes #5539. (Tim Delaney)
- RSS: Save rule on enable/disable even if not selected. Closes #6163. (Tim Delaney)
- RSS: Allow | in RSS must contain. Closes #6171. (Tim Delaney)
- RSS: RSS use red text to indicate invalid filter. Closes #6165. (Tim Delaney)
- RSS: Allow episode zero (special) and leading zeroes in RSS episode filter. (Tim Delaney)
- RSS: RSS parse torrent episodes like 1x01 as well as S01E01. Closes #2749. (Tim Delaney)
- RSS: RSS allow infinite range to extend beyond current season. Closes #800, #3876, #6170. (Tim Delaney)
- RSS: Improve UI responsiveness during RSS downloading. Closes #873, #1089, #1235, #5423. (Tim Delaney)
- RSS: Show name of feed list and sort rules in editor. Closes #3782, #6281. (Tim Delaney)
- RSS: Fix regex matching. Closes #6337. (Tim Delaney)
- MACOS: Fix qbittorrent-nox build (Oke Atime)
- LINUX: fixes default indicator name (Bilal Elmoussaoui)
- OTHER: Workaround problem with moc from Qt4 and #if (Eugene Shalygin)
- OTHER: Print warning to the user if stacktrace contains no function names (Eugene Shalygin)
- OTHER: Various cmake fixes (Eugene Shalygin)
- OTHER: Fix finding qmake in configure when cross-compiling (Zach Bacon)
* Sat Dec 17 2016 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.3.10
- BUGFIX: Fix share ratio limiting. Broken by commit 259b5e51c49b744. Closes #6039 #6048. (sledgehammer999)
- BUGFIX: Case insensitive sort for client column. Closes #6054. (Oke Atime)
- BUGFIX: Make resume/pause menu items clickable. Closes #6040. (Oke Atime)
- WINDOWS: Make the updater to look for the x64 installer if running x64 version. (sledgehammer999)
* Wed Dec 14 2016 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.3.9
- BUGFIX: Fix slider for per torrent speed limits when no global speed limit has been set. Closes #6046. (sledgehammer999)
- BUGFIX: Fix GUI for proxy settings. Closes #6045. (sledgehammer999)
- OSX: Correctly migrate settings/rss/usage stats in macOS. Closes #6041. (sledgehammer999)
* Wed Dec 14 2016 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.3.8
- FEATURE: Start using new libtorrent 1.1.x APIs (needs at least 1.1.2). Still unofficial support. (glassez, sledgehammer999)
- FEATURE: Add a new DHT bootstrap node run by libtorrent author arvidn. (sledgehammer999)

View File

@@ -14,6 +14,11 @@
find_package(Threads REQUIRED)
find_package(PkgConfig QUIET)
macro(_detect_boost_components _outComponets librariesList)
string(REGEX MATCHALL "boost_[a-z_]+[-a-z]*" _boost_libraries "${librariesList}")
string(REGEX REPLACE "boost_([a-z_]+)[-a-z]*" "\\1" ${_outComponets} "${_boost_libraries}")
endmacro()
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_LIBTORRENT_RASTERBAR QUIET libtorrent-rasterbar)
endif()
@@ -62,19 +67,38 @@ endif()
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIR})
if(NOT Boost_SYSTEM_FOUND OR NOT Boost_CHRONO_FOUND OR NOT Boost_RANDOM_FOUND)
find_package(Boost REQUIRED COMPONENTS date_time system chrono random thread)
set(LibtorrentRasterbar_LIBRARIES
${LibtorrentRasterbar_LIBRARIES} ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
set(LibtorrentRasterbar_INCLUDE_DIRS
${LibtorrentRasterbar_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
endif()
# Without pkg-config, we can't possibly figure out the correct boost dependencies
if (LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES)
set(_boost_components "${LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES}")
else(LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES)
if(PC_LIBTORRENT_RASTERBAR_FOUND)
_detect_boost_components(_boost_components "${PC_LIBTORRENT_RASTERBAR_LIBRARIES}")
else()
# all possible boost dependencies
set(_boost_components
date_time
system
chrono
random
thread
)
endif()
endif(LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES)
list(SORT _boost_components)
message(STATUS "Libtorrent Boost dependencies: ${_boost_components}")
find_package(Boost REQUIRED COMPONENTS ${_boost_components})
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
foreach(_boost_cmpnt IN LISTS _boost_components)
list(APPEND LibtorrentRasterbar_LIBRARIES "Boost::${_boost_cmpnt}")
endforeach(_boost_cmpnt)
set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIRS})
list(FIND LibtorrentRasterbar_DEFINITIONS -DTORRENT_USE_OPENSSL LibtorrentRasterbar_ENCRYPTION_INDEX)
if(LibtorrentRasterbar_ENCRYPTION_INDEX GREATER -1)
find_package(OpenSSL REQUIRED)
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARIES} ${OPENSSL_LIBRARIES})
set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS})
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto)
set(LibtorrentRasterbar_OPENSSL_ENABLED ON)
endif()
@@ -83,10 +107,7 @@ include(FindPackageHandleStandardArgs)
# if all listed variables are TRUE
find_package_handle_standard_args(LibtorrentRasterbar DEFAULT_MSG
LibtorrentRasterbar_LIBRARY
LibtorrentRasterbar_INCLUDE_DIR
Boost_SYSTEM_FOUND
Boost_CHRONO_FOUND
Boost_RANDOM_FOUND)
LibtorrentRasterbar_INCLUDE_DIR)
mark_as_advanced(LibtorrentRasterbar_INCLUDE_DIR LibtorrentRasterbar_LIBRARY
LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES

View File

@@ -3,6 +3,9 @@
# sets variables
# SYSTEMD_FOUND
# SYSTEMD_SERVICES_INSTALL_DIR
find_package(PkgConfig QUIET REQUIRED)
if (NOT SYSTEMD_FOUND)
pkg_check_modules(SYSTEMD "systemd")
endif(NOT SYSTEMD_FOUND)

View File

@@ -0,0 +1,28 @@
# function for parsing version variables that are set in version.pri file
# the version identifiers there are defined as follows:
# VER_MAJOR = 3
# VER_MINOR = 4
# VER_BUGFIX = 0
# VER_BUILD = 0
# VER_STATUS = alpha
function(read_version priFile outMajor outMinor outBugfix outBuild outStatus)
file(STRINGS ${priFile} _priFileContents REGEX "^VER_.+")
# message(STATUS "version.pri version contents: ${_priFileContents}")
# the _priFileContents variable contains something like the following:
# VER_MAJOR = 3;VER_MINOR = 4;VER_BUGFIX = 0;VER_BUILD = 0;VER_STATUS = alpha # Should be empty for stable releases!
set(_regex "VER_MAJOR += +([0-9]+);VER_MINOR += +([0-9]+);VER_BUGFIX += +([0-9]+);VER_BUILD += +([0-9]+);VER_STATUS += +([0-9A-Za-z]+)?")
# note quotes around _regex, they are needed because the variable contains semicolons
string(REGEX MATCH "${_regex}" _tmp "${_priFileContents}")
if (NOT _tmp)
message(FATAL_ERROR "Could not detect project version number from ${priFile}")
endif()
# message(STATUS "Matched version string: ${_tmp}")
set(${outMajor} ${CMAKE_MATCH_1} PARENT_SCOPE)
set(${outMinor} ${CMAKE_MATCH_2} PARENT_SCOPE)
set(${outBugfix} ${CMAKE_MATCH_3} PARENT_SCOPE)
set(${outBuild} ${CMAKE_MATCH_4} PARENT_SCOPE)
set(${outStatus} ${CMAKE_MATCH_5} PARENT_SCOPE)
endfunction()

View File

@@ -0,0 +1,49 @@
###############################################################
#
# Copyright 2011 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you
# may not use this file except in compliance with the License. You may
# obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
###############################################################
MACRO (GLIBC_DETECT _VERSION)
# there are multiple ways to detect glibc, but given nmi's
# cons'd up paths I will trust only gcc. I guess I could also use
# ldd --version to detect.
set(_GLIB_SOURCE_DETECT "
#include <limits.h>
#include <stdio.h>
int main()
{
printf(\"%d%d\",__GLIBC__, __GLIBC_MINOR__);
return 0;
}
")
file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/build/cmake/glibc.cpp "${_GLIB_SOURCE_DETECT}\n")
try_run(POST26_GLIBC_DETECTED
POST26_GLIBC_COMPILE
${CMAKE_CURRENT_BINARY_DIR}/build/cmake
${CMAKE_CURRENT_BINARY_DIR}/build/cmake/glibc.cpp
RUN_OUTPUT_VARIABLE GLIBC_VERSION )
if (GLIBC_VERSION AND POST26_GLIBC_COMPILE )
set(${_VERSION} ${GLIBC_VERSION})
else()
message(STATUS "NOTE: Could not detect GLIBC_VERSION from compiler")
endif()
ENDMACRO (GLIBC_DETECT)

View File

@@ -5,11 +5,23 @@
macro (target_link_qt_components target)
if (QT4_FOUND)
foreach(_cmp ${ARGN})
list(APPEND _QT_CMPNTS "Qt4::Qt${_cmp}")
if ("${_cmp}" STREQUAL "PRIVATE" OR
"${_cmp}" STREQUAL "PUBLIC" OR
"${_cmp}" STREQUAL "INTERFACE")
list(APPEND _QT_CMPNTS "${_cmp}")
else()
list(APPEND _QT_CMPNTS "Qt4::Qt${_cmp}")
endif()
endforeach()
else (QT4_FOUND)
foreach(_cmp ${ARGN})
list(APPEND _QT_CMPNTS "Qt5::${_cmp}")
if ("${_cmp}" STREQUAL "PRIVATE" OR
"${_cmp}" STREQUAL "PUBLIC" OR
"${_cmp}" STREQUAL "INTERFACE")
list(APPEND _QT_CMPNTS "${_cmp}")
else()
list(APPEND _QT_CMPNTS "Qt5::${_cmp}")
endif()
endforeach()
endif (QT4_FOUND)
target_link_libraries(${target} ${_QT_CMPNTS})

View File

@@ -0,0 +1,89 @@
# Sets cache variable QBT_ADDITONAL_FLAGS and QBT_ADDITONAL_CXX_FLAGS to list of additional
# compiler flags for C and C++ (QBT_ADDITONAL_FLAGS) and for C++ only (QBT_ADDITONAL_CXX_FLAGS)
# and appends them to CMAKE_XXX_FLAGS variables.
# It could use add_compile_options(), but then it is needed to use generator expressions,
# and most interesting of them are not compatible with Visual Studio :(
macro(qbt_set_compiler_options)
# if (NOT QBT_ADDITONAL_FLAGS)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
#-Wshadow -Wconversion ?
set(_GCC_COMMON_C_AND_CXX_FLAGS "-Wall -Wextra"
"-Wfloat-equal -Wcast-qual -Wcast-align"
"-Wsign-conversion -Winvalid-pch -Werror=return-type -Wno-long-long"
# -fstack-protector-all
"-Werror -Wno-error=deprecated-declarations"
)
set (_GCC_COMMON_CXX_FLAGS "-fexceptions -frtti"
"-Woverloaded-virtual -Wold-style-cast -Wstrict-null-sentinel"
"-Wnon-virtual-dtor -Wfloat-equal -Wcast-qual -Wcast-align"
"-Werror=overloaded-virtual"
# "-Weffc++"
"-Werror -Wno-error=cpp"
# we should modify code to make these ones obsolete
"-Wno-error=old-style-cast -Wno-error=sign-conversion -Wno-error=float-equal"
)
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
# GCC 4.8 has problems with std::array and its initialization
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wno-error=missing-field-initializers")
endif()
include(CheckCXXCompilerFlag)
# check for -pedantic
check_cxx_compiler_flag(-pedantic _PEDANTIC_IS_SUPPORTED)
if (_PEDANTIC_IS_SUPPORTED)
list(APPEND _GCC_COMMON_CXX_FLAGS "-pedantic -pedantic-errors")
else (_PEDANTIC_IS_SUPPORTED)
list(APPEND _GCC_COMMON_CXX_FLAGS "-Wpedantic")
endif (_PEDANTIC_IS_SUPPORTED)
if (CMAKE_SYSTEM_NAME MATCHES Linux)
# if Glibc version is 2.20 or higher, set -D_DEFAULT_SOURCE
include(MacroGlibcDetect)
message(STATUS "Detecting Glibc version...")
glibc_detect(GLIBC_VERSION)
if(${GLIBC_VERSION})
if(GLIBC_VERSION LESS "220")
message(STATUS "Glibc version is ${GLIBC_VERSION}")
else(GLIBC_VERSION LESS "220")
message(STATUS "Glibc version is ${GLIBC_VERSION}, adding -D_DEFAULT_SOURCE")
add_definitions(-D_DEFAULT_SOURCE)
endif(GLIBC_VERSION LESS "220")
endif(${GLIBC_VERSION})
endif (CMAKE_SYSTEM_NAME MATCHES Linux)
string(REPLACE ";" " " _GCC_COMMON_C_AND_CXX_FLAGS_STRING "${_GCC_COMMON_C_AND_CXX_FLAGS}")
string(REPLACE ";" " " _GCC_COMMON_CXX_FLAGS_STRING "${_GCC_COMMON_CXX_FLAGS}")
string(APPEND CMAKE_C_FLAGS " ${_GCC_COMMON_C_AND_CXX_FLAGS_STRING}")
string(APPEND CMAKE_CXX_FLAGS " ${_GCC_COMMON_C_AND_CXX_FLAGS_STRING} ${_GCC_COMMON_CXX_FLAGS_STRING}")
set(QBT_ADDITONAL_FLAGS "${_GCC_COMMON_C_AND_CXX_FLAGS_STRING}" CACHE STRING
"Additional qBittorent compile flags" FORCE)
set(QBT_ADDITONAL_CXX_FLAGS "${_GCC_COMMON_CXX_FLAGS_STRING}" CACHE STRING
"Additional qBittorent C++ compile flags" FORCE)
# check whether we can enable -Og optimization for debug build
# also let's enable -march=native for debug builds
check_cxx_compiler_flag(-Og _DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
if (_DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
string(APPEND CMAKE_C_FLAGS_DEBUG " -Og -g3 -march=native -pipe" )
string(APPEND CMAKE_CXX_FLAGS_DEBUG " -Og -g3 -march=native -pipe" )
else(_DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
string(APPEND CMAKE_C_FLAGS_DEBUG " -O0 -g3 -march=native -pipe" )
string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O0 -g3 -march=native -pipe" )
endif (_DEBUG_OPTIMIZATION_LEVEL_IS_SUPPORTED)
endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
set(QBT_ADDITONAL_FLAGS "-wd4290 -wd4275 -wd4251 /W4" CACHE STRING "Additional qBittorent compile flags")
string(APPEND CMAKE_C_FLAGS " ${QBT_ADDITONAL_FLAGS}")
string(APPEND CMAKE_CXX_FLAGS " ${QBT_ADDITONAL_FLAGS}")
endif ()
# endif (NOT QBT_ADDITONAL_FLAGS)
endmacro(qbt_set_compiler_options)

View File

@@ -1,26 +1,30 @@
# Settings for compiling qBittorrent on Windows
list(APPEND CMAKE_LIBRARY_PATH "$ENV{LIB}")
# We want to link with static version of
# libtorrent
set(LibtorrentRasterbar_USE_STATIC_LIBS True)
set(LibtorrentRasterbar_CUSTOM_DEFINITIONS
set(LibtorrentRasterbar_CUSTOM_DEFINITIONS
-DBOOST_ALL_NO_LIB -DBOOST_ASIO_HASH_MAP_BUCKETS=1021
-DBOOST_ASIO_SEPARATE_COMPILATION
-DBOOST_EXCEPTION_DISABLE
-DBOOST_SYSTEM_STATIC_LINK=1
-DTORRENT_USE_OPENSSL
-DUNICODE
-D__USE_W32_SOCKETS
-D_FILE_OFFSET_BITS=64)
add_definitions(-DUNICODE
-D_UNICODE
-DWIN32
-D_WIN32
-DWIN32_LEAN_AND_MEAN
-DNTDDI_VERSION=0x05010000
-D_WIN32_WINNT=0x0501
-D_WIN32_IE=0x0500
-D_WIN32_IE=0x0501
-D_CRT_SECURE_NO_DEPRECATE
-D_SCL_SECURE_NO_DEPRECATE
-D__USE_W32_SOCKETS
-D_FILE_OFFSET_BITS=64)
)
# and boost
set(Boost_USE_STATIC_LIBS True)
# set(Boost_USE_STATIC_RUNTIME True)
@@ -29,16 +33,17 @@ set(Boost_USE_STATIC_LIBS True)
# with usual unix subdirectories (bin, lib, include)
# if so, we just need to set CMAKE_SYSTEM_PREFIX_PATH
# If it is not the case, individual paths need to be specified manually (see below)
set(COMMON_INSTALL_PREFIX "c:/usr")
set(COMMON_INSTALL_PREFIX "c:/usr" CACHE PATH "Prefix used to install all the required libraries")
list(APPEND CMAKE_SYSTEM_PREFIX_PATH "${COMMON_INSTALL_PREFIX}")
# If two version of Qt are installed, separate prefixes are needed most likely
set(QT4_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt4")
set(QT5_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt5")
set(QT4_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt4" CACHE PATH "Prefix where Qt4 is installed")
set(QT5_INSTALL_PREFIX "${COMMON_INSTALL_PREFIX}/lib/qt5" CACHE PATH "Prefix where Qt5 is installed")
# it is safe to set Qt dirs even if their files are directly in the prefix
# Qt4
if(NOT QT5)
# for qt 4 we need qmake, Qt5 provides cmake config files
LIST(APPEND CMAKE_PROGRAM_PATH "${QT4_INSTALL_PREFIX}/bin/")
endif(NOT QT5)

103
configure vendored
View File

@@ -4504,53 +4504,17 @@ fi
fi
as_ac_File=`$as_echo "ac_cv_file_$QT_QMAKE/qmake" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $QT_QMAKE/qmake" >&5
$as_echo_n "checking for $QT_QMAKE/qmake... " >&6; }
if eval \${$as_ac_File+:} false; then :
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "$QT_QMAKE/qmake"; then
eval "$as_ac_File=yes"
else
eval "$as_ac_File=no"
fi
fi
eval ac_res=\$$as_ac_File
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
if test -f "$QT_QMAKE/qmake"; then :
QT_QMAKE="$QT_QMAKE/qmake"
else
as_ac_File=`$as_echo "ac_cv_file_$QT_QMAKE/qmake-qt5" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $QT_QMAKE/qmake-qt5" >&5
$as_echo_n "checking for $QT_QMAKE/qmake-qt5... " >&6; }
if eval \${$as_ac_File+:} false; then :
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "$QT_QMAKE/qmake-qt5"; then
eval "$as_ac_File=yes"
else
eval "$as_ac_File=no"
fi
fi
eval ac_res=\$$as_ac_File
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
if test -f "$QT_QMAKE/qmake-qt5"; then :
QT_QMAKE="$QT_QMAKE/qmake-qt5"
else
QT_QMAKE=""
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Qt5 qmake >= 5.2.0" >&5
$as_echo_n "checking for Qt5 qmake >= 5.2.0... " >&6; }
if test "x$QT_QMAKE" != "x"; then :
@@ -4621,53 +4585,17 @@ fi
fi
as_ac_File=`$as_echo "ac_cv_file_$QT_QMAKE/qmake" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $QT_QMAKE/qmake" >&5
$as_echo_n "checking for $QT_QMAKE/qmake... " >&6; }
if eval \${$as_ac_File+:} false; then :
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "$QT_QMAKE/qmake"; then
eval "$as_ac_File=yes"
else
eval "$as_ac_File=no"
fi
fi
eval ac_res=\$$as_ac_File
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
if test -f "$QT_QMAKE/qmake"; then :
QT_QMAKE="$QT_QMAKE/qmake"
else
as_ac_File=`$as_echo "ac_cv_file_$QT_QMAKE/qmake-qt4" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $QT_QMAKE/qmake-qt4" >&5
$as_echo_n "checking for $QT_QMAKE/qmake-qt4... " >&6; }
if eval \${$as_ac_File+:} false; then :
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r "$QT_QMAKE/qmake-qt4"; then
eval "$as_ac_File=yes"
else
eval "$as_ac_File=no"
fi
fi
eval ac_res=\$$as_ac_File
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
if test -f "$QT_QMAKE/qmake-qt4"; then :
QT_QMAKE="$QT_QMAKE/qmake-qt4"
else
QT_QMAKE=""
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Qt4 qmake >= 4.8.0" >&5
$as_echo_n "checking for Qt4 qmake >= 4.8.0... " >&6; }
if test "x$QT_QMAKE" != "x"; then :
@@ -5044,8 +4972,8 @@ fi
if test "x$BOOST_CPPFLAGS" = "x"; then :
as_fn_error $? "Could not find Boost" "$LINENO" 5
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: Boost CPPFLGAS: $BOOST_CPPFLAGS" >&5
$as_echo "$as_me: Boost CPPFLGAS: $BOOST_CPPFLAGS" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: Boost CPPFLAGS: $BOOST_CPPFLAGS" >&5
$as_echo "$as_me: Boost CPPFLAGS: $BOOST_CPPFLAGS" >&6;}
CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS"
LDFLAGS="$BOOST_LDFLAGS $LDFLAGS"
fi
@@ -5094,6 +5022,7 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
CXXFLAGS_SAVE=$CXXFLAGS
CXXFLAGS=
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -5532,12 +5461,12 @@ if test -n "$zlib_CFLAGS"; then
pkg_cv_zlib_CFLAGS="$zlib_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib") 2>&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.5.2\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib >= 1.2.5.2") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_zlib_CFLAGS=`$PKG_CONFIG --cflags "zlib" 2>/dev/null`
pkg_cv_zlib_CFLAGS=`$PKG_CONFIG --cflags "zlib >= 1.2.5.2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -5549,12 +5478,12 @@ if test -n "$zlib_LIBS"; then
pkg_cv_zlib_LIBS="$zlib_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib") 2>&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.5.2\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib >= 1.2.5.2") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_zlib_LIBS=`$PKG_CONFIG --libs "zlib" 2>/dev/null`
pkg_cv_zlib_LIBS=`$PKG_CONFIG --libs "zlib >= 1.2.5.2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -5575,14 +5504,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
zlib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "zlib" 2>&1`
zlib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "zlib >= 1.2.5.2" 2>&1`
else
zlib_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "zlib" 2>&1`
zlib_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "zlib >= 1.2.5.2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$zlib_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (zlib) were not met:
as_fn_error $? "Package requirements (zlib >= 1.2.5.2) were not met:
$zlib_PKG_ERRORS

View File

@@ -162,7 +162,7 @@ AX_BOOST_BASE([1.35])
# how to test for a set vs unset variable.
AS_IF([test "x$BOOST_CPPFLAGS" = "x"],
[AC_MSG_ERROR([Could not find Boost])],
[AC_MSG_NOTICE([Boost CPPFLGAS: $BOOST_CPPFLAGS])
[AC_MSG_NOTICE([Boost CPPFLAGS: $BOOST_CPPFLAGS])
CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS"
LDFLAGS="$BOOST_LDFLAGS $LDFLAGS"])
@@ -208,7 +208,7 @@ PKG_CHECK_MODULES(libtorrent,
LIBS="$libtorrent_LIBS $LIBS"])
PKG_CHECK_MODULES(zlib,
[zlib],
[zlib >= 1.2.5.2],
[CPPFLAGS="$zlib_CFLAGS $CPPFLAGS"
LIBS="$zlib_LIBS $LIBS"])

8
dist/mac/Info.plist vendored
View File

@@ -37,7 +37,7 @@
</dict>
</array>
<key>CFBundleName</key>
<string>qBittorrent</string>
<string>@EXECUTABLE@</string>
<key>CFBundleIconFile</key>
<string>qbittorrent_mac.icns</string>
<key>CFBundleInfoDictionaryVersion</key>
@@ -45,11 +45,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>3.3.8</string>
<string>3.3.13</string>
<key>CFBundleSignature</key>
<string>qBit</string>
<key>CFBundleExecutable</key>
<string>qbittorrent</string>
<string>@EXECUTABLE@</string>
<key>CFBundleIdentifier</key>
<string>org.qbittorrent</string>
<key>NSPrincipalClass</key>
@@ -59,7 +59,7 @@
<key>NSAppleScriptEnabled</key>
<string>YES</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2006-2016 The qBittorrent project</string>
<string>Copyright © 2006-2017 The qBittorrent project</string>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>

View File

@@ -1,2 +1,3 @@
set(BU_CHMOD_BUNDLE_ITEMS ON)
include(BundleUtilities)
fixup_bundle("$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/qbittorrent.app" "" "")

View File

@@ -20,18 +20,20 @@ install(FILES ${MAN_FILES}
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
COMPONENT doc)
install(DIRECTORY menuicons/
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor
FILES_MATCHING PATTERN "*.png")
if (GUI)
install(DIRECTORY menuicons/
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor
FILES_MATCHING PATTERN "*.png")
install(FILES ${qBittorrent_SOURCE_DIR}/src/icons/qbittorrent.png
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps/
COMPONENT data)
install(FILES ${qBittorrent_SOURCE_DIR}/src/icons/qbittorrent.png
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps/
COMPONENT data)
install(FILES ${qBittorrent_SOURCE_DIR}/src/icons/qBittorrent.desktop
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/
COMPONENT data)
install(FILES ${qBittorrent_SOURCE_DIR}/src/icons/qbittorrent.desktop
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/
COMPONENT data)
install(FILES qBittorrent.appdata.xml
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/appdata/
COMPONENT data)
install(FILES qbittorrent.appdata.xml
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/appdata/
COMPONENT data)
endif()

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 893 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,61 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 sledgehammer999 <sledgehammer999@qbittorrent.org> -->
<component type="desktop">
<id>qBittorrent.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0 and OpenSSL</project_license>
<name>qBittorrent</name>
<summary>A Bittorrent Client</summary>
<description>
<p>
Aiming to be a good alternative to all other bittorrent clients out
there, qBittorrent is fast, stable and provides unicode support as well
as many other features. Additionally, qBittorrent runs and provides those
same features on all major platforms (Linux, Mac OS X, Windows, OS/2, FreeBSD).
</p>
<p>
It is programmed in C++ / Qt and uses libtorrent (sometimes called
libtorrent-rasterbar) by Arvid Norberg. GeoLite data, created by MaxMind,
are included in qBittorrent. Its features include:
</p>
<ul>
<li>Polished µTorrent-like User Interface</li>
<li>Well-integrated and extensible Search Engine</li>
<li>All Bittorrent extensions (DHT, Peer Exchange, Full encryption, Magnet/BitComet URIs, ...)</li>
<li>Remote control through a Web user interface</li>
<li>Advanced control over trackers, peers and torrents</li>
<li>UPnP / NAT-PMP port forwarding support</li>
<li>Available in ~25 languages (Unicode support)</li>
<li>Torrent creation tool</li>
<li>Advanced RSS support with download filters (inc. regex)</li>
<li>Bandwidth scheduler</li>
<li>IP Filtering (eMule and PeerGuardian compatible)</li>
<li>IPv6 compliant</li>
<li>Sequential downloading (aka "Download in order")</li>
</ul>
</description>
<screenshots>
<screenshot type="default">
<image width="1200" height="675">
https://alexpl.fedorapeople.org/AppData/qbittorrent/screens/qbittorrent_01.png
</image>
</screenshot>
<screenshot>
<image width="1200" height="675">
https://alexpl.fedorapeople.org/AppData/qbittorrent/screens/qbittorrent_02.png
</image>
</screenshot>
<screenshot>
<image width="1200" height="675">
https://alexpl.fedorapeople.org/AppData/qbittorrent/screens/qbittorrent_03.png
</image>
</screenshot>
<screenshot>
<image width="1200" height="675">
https://alexpl.fedorapeople.org/AppData/qbittorrent/screens/qbittorrent_04.png
</image>
</screenshot>
</screenshots>
<url type="homepage">http://www.qbittorrent.org/</url>
<update_contact>sledgehammer999@qbittorrent.org</update_contact>
</component>

Some files were not shown because too many files have changed in this diff Show More