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

Compare commits

...

186 Commits

Author SHA1 Message Date
sledgehammer999
c1ee91cd2a Bump to 3.3.6 2016-07-20 01:38:11 +03:00
sledgehammer999
036b4e1a85 Update Changelog. 2016-07-20 01:35:20 +03:00
sledgehammer999
3a4dc08304 Update qt-translations and related installer files. 2016-07-20 01:35:14 +03:00
sledgehammer999
e805e6806a Sync translations from Transifex and run lupdate. 2016-07-20 00:49:07 +03:00
Chocobo1
f2163f6c3d Fix icons are missing when using RTL languages in Options dialog. Closes #5398. 2016-07-20 00:41:39 +03:00
Chocobo1
6288cb4fd3 [TravisCI] lock-on to libtorrent-rasterbar 1.0.9 version 2016-07-20 00:41:31 +03:00
Chocobo1
409e877f8a Workaround space issues in file path
References:
https://github.com/qbittorrent/qBittorrent/issues/5439#issuecomment-228616817
https://github.com/qbittorrent/qBittorrent/issues/5439#issuecomment-232214712
2016-07-20 00:41:22 +03:00
Chocobo1
f2d5ba2907 Invoke system's cmd.exe directly. 2016-07-20 00:41:14 +03:00
Chocobo1
b33d0f0a59 Fix upper-bound limit of command line for "Run External Program" in Windows. Closes #5399. 2016-07-20 00:41:05 +03:00
Vladimir Golovnev (Glassez)
63245de69b Do not create save folder in advance
Closes #5422.
2016-07-20 00:40:58 +03:00
Vladimir Golovnev (Glassez)
b9fd9f1d8d Show type name in btjson.cpp@processMap assert
This may help to solve #5381
2016-07-20 00:40:49 +03:00
sledgehammer999
c6fe1d3620 Bump to 3.3.5 2016-06-20 04:22:46 +03:00
sledgehammer999
73f08dd6e1 Update Changelog. 2016-06-20 04:19:41 +03:00
sledgehammer999
22dc71f365 Fix build. 2016-06-20 04:13:44 +03:00
ngosang
455cc29dad [search engine] Remove filters from Demonoid 2016-06-20 02:40:47 +03:00
ngosang
9d39a2cddc [search engine] Remove filters from Torrentreactor and BTDigg 2016-06-20 02:40:46 +03:00
sledgehammer999
efeb46571b Sync translations from Transifex and run lupdate. 2016-06-20 02:36:16 +03:00
sledgehammer999
a7b564bb2e Fix parsing of eMule .DAT filters. Closes #5281. 2016-06-20 02:25:12 +03:00
sledgehammer999
10df509bce Fix API_VERSION and API_VERSION_MIN numbers. 2016-06-20 02:18:19 +03:00
sledgehammer999
7b394d6e99 Don't use QCollator for sorting on Windows. Closes #5238 and #5240. 2016-06-20 02:04:37 +03:00
Chocobo1
f1968de2c9 Improve usability of "Run External Program"
Users can write (platform dependent) shell scripts now.
2016-06-20 02:04:37 +03:00
Chocobo1
b5db0eeec1 Add log messages 2016-06-20 02:04:37 +03:00
Chocobo1
3ed803f59b Fix widget name collision.
Small cleanup on Downloads page.
2016-06-20 02:04:36 +03:00
Chocobo1
ff10702bfd Let user able to specifiy a filter when choosing an IP filter file 2016-06-20 02:04:36 +03:00
Chocobo1
73d3664f92 Fix reload button size is not the same size as "..." button.
Rename Connection tab page
2016-06-20 02:04:36 +03:00
Chocobo1
aa6025aa87 Rename "options.ui" to "optionsdlg.ui"
Rename class name "options_imp" to "OptionsDialog"
Rename "options_imp.cpp" to "optionsdlg.h"
2016-06-20 02:04:35 +03:00
Chocobo1
a344886ef6 Move options ui as a pointer member variable 2016-06-20 02:04:35 +03:00
Chocobo1
c181019f40 Follow header inclusion rule 2016-06-20 02:04:21 +03:00
Chocobo1
5962efde23 Cleanup Connection page in Option dialog.
Add vertical spacer, closes #845.
2016-06-20 02:04:21 +03:00
Eugene Shalygin
d43466d466 Fix empty tooltips showed at the progress bar borders
If tooltip text contains an empty HTML body, Qt still shows it as an
empty rectangle. Thus, output HTML tags only if we are within the
image region, and return true empty string if we are at the borders.
2016-06-20 02:04:21 +03:00
Eugene Shalygin
29fb8e8085 Replace TorrentHandle::fileExtremityPieces() with TorrentInfo::filePieces() 2016-06-20 02:04:20 +03:00
Eugene Shalygin
b076ff68ac Show files in tooltips for pieces progress bars
In addition to the current tooltip, which shows color legend, if user
holds the Shift key during hovering we show another tooltip which
contains a table of contents for the piece under the moue cursor. The
table lists file sizes and names. If the cursor points to a part of a
file which spans several pieces, those pieces are highlighted.
2016-06-20 02:04:20 +03:00
Eugene Shalygin
5f2da3a529 Follow project coding style. Issue #2192. 2016-06-20 02:04:20 +03:00
ngosang
576fbe5dc1 Update Python version requirements 2016-06-20 02:04:19 +03:00
Eugene Shalygin
8fc7f3fdc0 uncrustify: replace "add" with "force" for sp_ parameters
This will make uncrustify able to remove excessive spaces
2016-06-20 02:04:19 +03:00
Chocobo1
becd67ac84 Delete all mainwindow child widgets. Closes #4871, #5049.
Some of the `delete` can be handled by the findChild loop
2016-06-20 02:04:19 +03:00
Chocobo1
7761a2604a Use QAtomicInt to guarantee cleanup() is only executed once 2016-06-20 02:04:18 +03:00
ngosang
c6546db138 Minor changes in Search UI 2016-06-20 02:04:18 +03:00
ngosang
f0dd4d5673 [Search engine] Update Torrentz 2016-06-20 02:04:18 +03:00
ngosang
7f245b63d7 [Search engine] Update PirateBay 2016-06-20 02:04:17 +03:00
ngosang
af17f4df9e Minor fix: typo and two warnings 2016-06-20 02:04:17 +03:00
sledgehammer999
3ec2f94b27 Fixup previous commits and allow IPv6 interface addresses too. 2016-06-20 02:04:17 +03:00
Sjoerd van der Berg
d7f1beb7f1 Use a combo box to select the IP address you want to listen on for a specific interface 2016-06-20 02:04:16 +03:00
Sjoerd van der Berg
8c7a4ab86c Fix variable name 2016-06-20 02:04:16 +03:00
Sjoerd van der Berg
ce2d42a264 Change back to the original names for the announce address
Only allow ip's through that match the currenrly selected network interface and address
2016-06-20 02:04:16 +03:00
Sjoerd van der Berg
dc011a5599 Add option to bind directly to an IP instead of using a network Interface 2016-06-20 02:04:16 +03:00
Eugene Shalygin
3c6b79805c Use QPalette::LinkVisited color for downloaded items in search results 2016-06-20 02:04:15 +03:00
sledgehammer999
7e7055f2ff Sync translations from Transifex and run lupdate. 2016-06-20 02:04:12 +03:00
sledgehammer999
18c9a65340 Rename ASM to TMM and related stuff. 2016-06-20 02:03:08 +03:00
sledgehammer999
f5ce39a36a Add tooltip to the saving mode checkbox. 2016-06-20 02:03:08 +03:00
sledgehammer999
58e4f9d38e Slim down 'Downloads' page of options window. 2016-06-20 02:03:08 +03:00
botmtl
5bd7dce396 default RSSRefreshInterval to 30 mins
closes issue #5235 (https://github.com/qbittorrent/qBittorrent/issues/5235)
2016-06-20 02:03:07 +03:00
sledgehammer999
d9d49b6d0b Fix gcc 6 compilation with qmake. See #5237. 2016-06-20 02:03:07 +03:00
Chocobo1
cc48ca1fdc Use QString::localeAwareCompare for comparsion 2016-06-20 02:03:07 +03:00
Chocobo1
2dc6002064 Use boost:circular_buffer instead of QList.
QList has to store an additional pointer for each element which leads to bad space efficiency.
2016-06-20 02:03:06 +03:00
ngosang
1478b21e8d [WebUI] Expose Add trackers feature 2016-06-20 02:03:06 +03:00
Gabriele
726c2fd56d WebUI: Add command to get the logs
Add /query/getLog and /query/getPeerLog to respectively retrieve
the main log and the peer log.

GET /query/getLog
Params:
 - normal (bool): include normal messages (default true)
 - info (bool): include info messages (default true)
 - warning (bool): include warning messages (default true)
 - critical (bool): include critical messages (default true)
 - last_known_id (int): exclude messages with id <= 'last_known_id'

GET /query/getPeerLog
Params:
 - last_known_id (int): exclude messages with id <= 'last_known_id'
2016-06-20 02:02:49 +03:00
SeigneurSerpent
df86d66702 Improve stack trace for windows by including source filenames and line numbers 2016-06-20 02:02:48 +03:00
Eugene Shalygin
223415fb69 update uncrustify config 2016-06-20 02:02:48 +03:00
thalieht
a4c9b667a7 resize column to contents only when they're visible
refactor updatePeerCountryResolutionState
deprecate m_resolveCountries var
2016-06-20 02:02:48 +03:00
Chocobo1
5f8e05ba50 Cleanup headers
Code formatting
2016-06-20 02:02:47 +03:00
Chocobo1
ed2689de15 Add lookup function to get PathType display names 2016-06-20 02:02:47 +03:00
Chocobo1
9e124527e1 Improve error messages for "Auto download torrents" 2016-06-20 02:02:47 +03:00
Vladimir Golovnev (Glassez)
59971aa577 Use new alert dispathing API 2016-06-20 02:02:47 +03:00
Ibrahim Tachijian
164ca0289a Add 'Added on' column in Webui. Closes #5145,#1092,#738 2016-06-20 02:02:46 +03:00
Chocobo1
c0aa50d74b Change ambiguous text "Copy selected" to "Copy IP:port" 2016-06-20 02:02:46 +03:00
Chocobo1
66d7dc751c Change "Auto download torrent" default save path to "default location". 2016-06-20 02:02:46 +03:00
Chocobo1
c1738f97f1 Improve wordings in "Auto download torrent" section 2016-06-20 02:02:45 +03:00
Eugene Shalygin
105874613a Fix crash when adding torrent via a magnet url
The file guard object has to be initialised in this case too because it
is accessed when dialog gets accepted or cancelled. Initialise it with
empty path.
2016-06-20 02:02:45 +03:00
Eugene Shalygin
d6829b253b Fix a typo in TorrentFileGuard 2016-06-20 02:02:45 +03:00
Eugene Shalygin
c1291539bf uncrustify: add constructor initialization list options 2016-06-20 02:02:45 +03:00
Eugene Shalygin
3060c979f4 Add option to automatically remove .torrent files upon adding
Some browsers do not download files, intended for immediate opening,
into a temporary directory, and thus a regular download directories
accumulate those unneeded files.

The option allows qBittorrent to clean after itself and delete those
files whether they were succesfully added or not (user-selectable
policy).
2016-06-20 02:02:41 +03:00
sledgehammer999
d71a18b945 Update definition of QBT_USES_QT5 to be true for qt >= 5.2.0 2016-06-20 02:01:34 +03:00
Chocobo1
4078fc5e2d Add case-sensitive & case-insensitive natural sort helper function
Fix helper function not being thread-safe
Use QBT_USES_QT5 define
2016-06-20 02:01:34 +03:00
Chocobo1
b7cb53a251 Cleanup headers
Move `class NaturalCompare` to .cpp file
2016-06-20 02:01:33 +03:00
Chocobo1
275a775769 Minor code formatting 2016-06-20 02:01:33 +03:00
Chocobo1
1c49ff1df6 Sort labels with naturalCompare(). Closes #3919. 2016-06-20 02:01:18 +03:00
Chocobo1
fc77fdbcb5 Replace naturalSort() with naturalCompare(). 2016-06-20 02:01:18 +03:00
Chocobo1
e0e757b610 Use qmake built-in test function files to locate translation files 2016-06-20 02:01:18 +03:00
Chocobo1
33fe9b6d87 Use POSIX shell 2016-06-20 02:01:17 +03:00
Chocobo1
fca78d1a3f Re-enable cache for linux builds
Enable cache for OSX builds
2016-06-20 02:01:17 +03:00
Chocobo1
92794a786f Suppress warning on OSX builds 2016-06-20 02:01:17 +03:00
zywo
08d9ad7f80 Set about tab font-size to default 2016-06-20 02:01:16 +03:00
Chocobo1
6023093329 Fix "IP Filtering - Apply to trackers" wasn't being applied. Closes #5217. 2016-06-20 02:01:16 +03:00
Eugene Shalygin
c070193c30 uncrustify: honour pointer and reference symbols alignment rules
Stick the '*' and '&' symbols to the variable name if there is one.
Also fix empty function bodies collapse option: replace it with the
eat_blanks_before_close_brace setting.
2016-06-20 02:01:16 +03:00
Eugene Shalygin
633fb7a7de refactor SettingsStorage class
1. Extract "transaction" support for QSettings into separate class
TransactionalSettings.
2. Define macrto with explicit name for the case when this "transaction"
support is needed.
3. A bit optimize QHash <-> QSettings copying: replace assign with
insert() and remove repetitive key lookups.
4. In save() check dirty status before getting the lock too.

The changes from items 1 and 2 make text more structured and the logic
of the SettingsStorage class gets separated from the implementation level
task of guarding the settings serialization. The changes in 3 and 4 do not
make the app much faster, but neither make any harm to the code readability.
2016-06-20 02:01:15 +03:00
Eugene Shalygin
14a37e8d45 cmake: add Qt::DBus library dependency for base module
This is needed for powermanagement and was mistakenly forgotten
2016-06-20 02:01:15 +03:00
Eugene Shalygin
d03a71899e cmake: mark libtorrent and qtsingleapplication include dirs as system 2016-06-20 02:01:15 +03:00
sledgehammer999
283338f5f3 Don't show added torrent notification during startup. 2016-06-20 02:01:15 +03:00
sledgehammer999
b600253313 Display notifications when a torrent is added. Closes #334 and #915. 2016-06-20 02:01:14 +03:00
Vladimir Golovnev (Glassez)
c97b5ab617 Fix .!qB extension is added when disabled 2016-06-20 02:01:14 +03:00
Vladimir Golovnev (Glassez)
9016b698c9 Use truncated torrent hash in temp path 2016-06-20 02:01:14 +03:00
Vladimir Golovnev (Glassez)
eb7a7b9c04 Use unique temp directories
Save torrent in temp_path/<torrent_hash> directory.
Closes #5154.
2016-06-20 02:01:13 +03:00
Eugene Shalygin
9e0a3ee692 cmake: reflect qmake project changes 2016-06-20 02:00:51 +03:00
ngosang
c899ed5b50 Fix duplicate network interfaces. Closes #5131 2016-06-20 02:00:50 +03:00
Vladimir Golovnev (Glassez)
a6c50aff95 Delete Import Torrent Dialog 2016-06-20 02:00:50 +03:00
Vladimir Golovnev (Glassez)
ab4a608342 Fix rechecking after torrent is finished 2016-06-20 02:00:50 +03:00
Vladimir Golovnev (Glassez)
e7cfd7a31d Try to find incomplete files for new torrent 2016-06-20 02:00:49 +03:00
Vladimir Golovnev (Glassez)
c4ea13b284 Fix torrent adding with existing data 2016-06-20 02:00:49 +03:00
Chocobo1
5d09639109 Fix mutually exclusive radio buttons can be unselected. 2016-06-20 02:00:49 +03:00
Chocobo1
885f5b4bee Enable word wrap for "Run external program" help text 2016-06-20 02:00:49 +03:00
Chocobo1
3cd06c457a Fix toolbar resizing when m_searchFilter appears/disappears. Closes #5120. 2016-06-20 01:53:08 +03:00
Chocobo1
373e22660d Disable comboHideZero when checkHideZero is unchecked.
Disable `checkLimituTPConnections` when `checkuTP` is unchecked.
Minor code formatting
2016-06-20 01:53:08 +03:00
Chocobo1
92f58a40e7 Morph QToolButton to QPushButton 2016-06-20 01:53:07 +03:00
Chocobo1
dbf5a264bd Fix path to resource 2016-06-20 01:52:54 +03:00
ngosang
145dcf9efe [Search engine] Fix LegitTorrents plugin 2016-06-20 01:52:54 +03:00
ngosang
f05e25c750 [Search engine] Fix Mininova plugin 2016-06-20 01:52:54 +03:00
ngosang
fc02377171 [Search engine] Fix Torrentz plugin for Python2 2016-06-20 01:52:53 +03:00
Eugene Shalygin
3816052b0a Add "slots" to WORDS keyword.
Uncrustify inserts line break between an access specifier and "slots".
However, it keeps these words combinations if "Q_SLOTS" is used.
Its built-in parser classifies "Q_SLOTS" as WORD token, thus let's add
"slots" to that class.
2016-06-20 01:52:53 +03:00
ngosang
fae583e0da Fix Add tracker dialog URL download 2016-06-20 01:52:53 +03:00
ngosang
1114c198ca Fix Add tracker dialog empty trackers 2016-06-20 01:52:52 +03:00
Eugene Shalygin
c5f9567c0b cmake: raise minimal cmake version to 3.5 and use its features 2016-06-20 01:52:52 +03:00
Eugene Shalygin
e9a5768e4f cmake: drop explicit Boost dependency
We get it implicitly from libtorrent
2016-06-20 01:52:52 +03:00
Eugene Shalygin
858e5f8db8 cmake: add imported target for Libtorrent 2016-06-20 01:52:51 +03:00
Vladimir Golovnev (Glassez)
0afa83dbfa Add coding style rule for header inclusion order 2016-06-20 01:52:51 +03:00
ngosang
fc95ce310e Fix Update all button height in RSS tab 2016-06-20 01:52:51 +03:00
ngosang
e2c9e7b877 Minor change in Stats dialog 2016-06-20 01:52:51 +03:00
sledgehammer999
b1e62ca006 Display the filepath when a torrent fails to load. Closes #100 and #805. 2016-06-20 01:52:50 +03:00
Jerome Leclanche
a063ebd396 LICENSE: Fix mixed indenting 2016-06-20 01:52:50 +03:00
Jerome Leclanche
728dd744bb LICENSE: Remove copy/paste error 2016-06-20 01:52:49 +03:00
Chocobo1
a0c1ee76a2 Fix qBittorrent doesn't exit immediately when "all donwloads are done -> exit" option enabled.
This fix is provided by glassez.
2016-06-20 01:52:49 +03:00
Chocobo1
c7b15b9cc5 Enable access to shutdown functions when configured with --disable-gui option 2016-06-20 01:52:29 +03:00
Chocobo1
0770fe8b09 Fix Coverity Scan 143909.
Also, the setting "Confirmation on auto-exit when downloads finish" wasn't working before.
2016-06-20 01:52:28 +03:00
sledgehammer999
cf98220c40 Fix log menu item position broken by 1760beed17. 2016-06-20 01:52:28 +03:00
sledgehammer999
2eb393ae9a Bump API_VERSION to 11. 2016-06-20 01:52:26 +03:00
buinsky
d65d11d64c WebUI: Select category on right click 2016-06-20 01:50:55 +03:00
buinsky
f4fdb80cc9 WebUI: Don't show several context menus at the same time 2016-06-20 01:50:54 +03:00
buinsky
50a0ce1da2 WebUI: Adjust context menu position 2016-06-20 01:50:54 +03:00
buinsky
2e9370481d WebUI: Implement delete torrents by category 2016-06-20 01:50:54 +03:00
buinsky
c60c58b092 WebUI: Implement pause torrents by category 2016-06-20 01:50:53 +03:00
buinsky
ba5dded076 WebUI: Implement start torrents by category 2016-06-20 01:50:53 +03:00
buinsky
eb36949e87 WebUI: Implement removing unused categories 2016-06-20 01:50:53 +03:00
buinsky
b7358a3039 WebUI: Implement removing categories 2016-06-20 01:50:52 +03:00
buinsky
d0f082e238 WebUI: Implement adding categories 2016-06-20 01:50:52 +03:00
buinsky
b301444f5e WebUI: Add empty context menu to categories filter 2016-06-20 01:50:52 +03:00
buinsky
900a80adc1 WebUI: Rename function updateCategoryFN to setCategoryFN 2016-06-20 01:50:51 +03:00
buinsky
d4887ee736 WebUI: Refactor ContextMenu class 2016-06-20 01:50:37 +03:00
Chocobo1
e23566cde1 Rename files:
confirmshutdowndlg.ui => shutdownconfirmdlg.ui
shutdownconfirm.cpp => shutdownconfirmdlg.cpp
2016-06-20 01:50:36 +03:00
Chocobo1
b5f30a6efb Enlarge dialog size. Closes #5091.
This avoids text clipping when using Qt4 lib.
2016-06-20 01:50:36 +03:00
Chocobo1
deb1d54999 Rename enum
Change identifier from ShutdownAction to ShutdownDialogAction
Change enum value from None to Exit
2016-06-20 01:50:36 +03:00
Chocobo1
7779efbc30 Refactor
Add helper function to initialize shutdown message.
Group similar functions together.
Merge shutdown() function into its only caller.
Add override keyword
2016-06-20 01:50:35 +03:00
Chocobo1
acd65e3185 Cleanup header include
Code formatting
2016-06-20 01:50:35 +03:00
Chocobo1
f2dd050ade Fix Coverity Scan cid 143911.
`filesCount()` could return a negative value.
2016-06-20 01:50:35 +03:00
Chocobo1
9c28a48f2e Fix class member initialize order 2016-06-20 01:50:35 +03:00
Chocobo1
3e8af95d30 Fix warnings in mainwindow.ui. Closes #5117.
gui/mainwindow.ui: Warning: The name 'actionExecutionLogs' (QAction) is already in use, defaulting to 'actionExecutionLogs1'.
gui/mainwindow.ui: Warning: action `actionSearch_engine' not declared
gui/mainwindow.ui: Warning: action `actionRSS_Reader' not declared
2016-06-20 01:50:19 +03:00
Eugene Shalygin
cba9d222de cmake: add imported target for QtSingleApplication
This simplifies cmake code a bit: we remove if's and just generate
different target (imported or alias) with the same name and use it
unconditionally.
2016-06-20 01:50:18 +03:00
Eugene Shalygin
b137eb01ed cmake: fix Qt resources linkage. Closes #5080
Qt resource is innitialized by a static object constructor (see
https://wiki.qt.io/QtResources). When we put resources into a static
library, the linker removes that static objects and thus the resources
themselves. To correct that we append resources to the main executable
sources list. This is done via custom function qbt_target_sources which
knows where to read the executable' name.
2016-06-20 01:50:18 +03:00
Vladimir Golovnev (Glassez)
fd156580a0 Fix coding style rules
Closes #5075
2016-06-20 01:50:18 +03:00
Chocobo1
21c17f2a81 Move m_searchPattern widget from code to .ui file 2016-06-20 01:50:18 +03:00
Chocobo1
5f19cd2c0e [Search] Add seperator for categories & plugins
Sort categories & plugins entries
Rename & reorder entries
Use full name for plugins
2016-06-20 01:50:17 +03:00
Chocobo1
9279fedd49 [Search] match combobox height to button height 2016-06-20 01:50:17 +03:00
Chocobo1
2361d6f12d [Search] minor cleanups 2016-06-20 01:50:00 +03:00
Vladimir Golovnev (Glassez)
78bfbc5669 Use nova2dl.py script instead of DownloadManager
Closes #5026
2016-06-20 01:49:59 +03:00
sledgehammer999
6101f11673 Sync translations from Transifex and run lupdate. 2016-06-20 01:49:56 +03:00
sledgehammer999
15361a6c16 Follow project coding style. Issue #2192. 2016-06-20 01:36:35 +03:00
Anton Lashkov
835a999464 SpeedPlotView: code correction 2016-06-20 01:36:34 +03:00
Anton Lashkov
b9b0739efd SpeedPlotView: Simplify code using PointData struct 2016-06-20 01:36:21 +03:00
Anton Lashkov
a34c072b7a SpeedPlotView: Use separate buffers for periods with reduce number of points. Fix coding style. 2016-06-20 01:36:20 +03:00
Anton Lashkov
72e88ba7ec SpeedPlotView: Save int's instead of double's 2016-06-20 01:36:20 +03:00
Anton Lashkov
afb143cad1 SpeedPlotView: Replace QQueue by boost::circular_buffer, reduce number of points to draw, increase legend background size 2016-06-20 01:36:20 +03:00
Chocobo1
1ca5d10abb Fix resizing bug in "add torrent dialog". Closes #5036.
1. Place all widgets in "Torrent information" into the same grid layout
instead of different layouts.
2. Tweak tab order.
2016-06-20 01:36:01 +03:00
Chocobo1
67675b6cdc Fix long text clipping. Closes #5091. 2016-06-20 01:36:00 +03:00
Eugene Shalygin
ef47983d8d Remove duplicated code from search tab and widget
Both download handlers (in the tab and widget classes) convert model
index into an URL, set row color, and call download function.
Make the download button handler (in the SearchWidget class) call the
slot of the SearchTab class.
2016-06-20 01:36:00 +03:00
Eugene Shalygin
cf47517ee3 cmake: reflect qmake project changes 2016-06-20 01:36:00 +03:00
sledgehammer999
33199bbd74 Fix qt5 bundle on OSX. Closes #4014. 2016-06-20 01:35:59 +03:00
sledgehammer999
4fb735c6d1 Change gpg signing key.
I forgot the passphrase to the old one.
2016-06-20 01:35:59 +03:00
Vladimir Golovnev (Glassez)
99ca42bf48 Fix MainWindow coding style (Issue #2192) 2016-06-20 01:35:59 +03:00
Vladimir Golovnev (Glassez)
f6b4b5f6f0 Fix macro define cross over access specifiers 2016-06-20 01:35:59 +03:00
Vladimir Golovnev (Glassez)
6f73c32fcc Delete old RSS cookies dialog 2016-06-20 01:35:42 +03:00
Vladimir Golovnev (Glassez)
c1611988b4 Create basic cookies management dialog 2016-06-20 01:35:42 +03:00
Vladimir Golovnev (Glassez)
fbe1d2d78a Implement basic cookies model 2016-06-20 01:35:41 +03:00
Chocobo1
34fec15ceb Improve TransferListDelegate::sizeHint 2016-06-20 01:35:41 +03:00
ngosang
1977e4f24d Fix uic warnings. Closes #5056 2016-06-20 01:35:41 +03:00
Chocobo1
5774d27c7b Follow project coding style. Issue #2192. 2016-06-20 01:35:17 +03:00
Chocobo1
3a6a857371 Let windows handle all widgets scaling.
Declare ourselves as a Non DPI–aware app.
Tested with Qt 5.6.
2016-06-20 01:02:07 +03:00
Eugene Shalygin
e2f88feaf9 Optimize widgets inside of the search tab
Since we already have searchtab.ui, let's set up all the widgets there.
Additionally, save a bit of vertical space by putting results label in
a row with the filter widgets.
2016-06-20 01:02:07 +03:00
Eugene Shalygin
16fec04b6a Implement search filters in the proxy model. Partially closes #972 2016-06-20 01:02:06 +03:00
sledgehammer999
fbac4afa2d Fix indentation. 2016-06-20 01:02:06 +03:00
Eugene Shalygin
d6e9736af1 update uncrustify config 2016-06-20 01:02:06 +03:00
sledgehammer999
76b3c72c86 Fix memory leak. 2016-06-20 01:02:05 +03:00
sledgehammer999
ef954fea55 Use SettingsStorage instead. 2016-06-20 01:00:18 +03:00
Chocobo1
11d085712e Minor refactor 2016-06-20 01:00:10 +03:00
Vladimir Golovnev (Glassez)
e4bc7852e5 Fix save path bugs 2016-06-20 00:59:57 +03:00
Vladimir Golovnev (Glassez)
3d107e0588 Implement Advanced Saving Management subsystem
Closes #4696
2016-06-20 00:59:37 +03:00
Vladimir Golovnev (Glassez)
8e5c31ae82 Move Preferences backend code into SettingsStorage class
Closes #4764
2016-06-20 00:52:50 +03:00
Vladimir Golovnev (Glassez)
3c03ccc14a Make AddNewTorrentDialog behavior uniform 2016-06-20 00:52:44 +03:00
284 changed files with 113626 additions and 105143 deletions

View File

@@ -30,10 +30,7 @@ notifications:
# container-based builds
#sudo: false
# TODO: osx builder does not enable cache yet, see: https://github.com/travis-ci/travis-ci/issues/4011
#cache:
#directories:
#- $HOME/.ccache
cache: ccache
# opt-in Ubuntu Trusty
sudo: required
@@ -80,12 +77,6 @@ before_install:
- if [ "$gui" = false ]; then qbtconf="$qbtconf --disable-gui" ; fi
- |
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# ccache
#if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
#dpkg-query -L ccache && export PATH="/usr/lib/ccache/:$PATH" && export use_ccache=true ;
#ccache -V && ccache --show-stats && ccache --zero-stats ;
#fi ;
# 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
@@ -117,27 +108,47 @@ install:
# 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
- |
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
# dependencies
brew update > /dev/null && brew install colormake libtorrent-rasterbar ;
brew update > /dev/null ;
brew install colormake ccache ;
# libtorrent-rasterbar 1.0.9
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/477d5060fa093883204d70323965375353e03084/Formula/libtorrent-rasterbar.rb ;
# Qt
if [ "$qt" = 4 ]; then brew install qt ; fi ;
if [ "$qt" = 5 ]; then brew install qt5 && brew link --force qt5 ; fi ;
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.6.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 ;
fi
script:
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then exit ; fi # skip usual build when running coverity scan
- cd "$TRAVIS_BUILD_DIR" && ./bootstrap.sh && ./configure $qbtconf
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then sed -i "" -e 's/^\(CXXFLAGS.*\)$/\1 -Wno-unused-local-typedefs/' src/Makefile ; fi
- |
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
sed -i "" -e "s/^\(CC.*&&\).*$/\1 $CC/" src/Makefile ; # workaround for Qt & ccache: https://bugreports.qt.io/browse/QTBUG-31034
sed -i "" -e "s/^\(CXX.*&&\).*$/\1 $CXX/" src/Makefile ;
sed -i "" -e 's/^\(CXXFLAGS.*\)$/\1 -Wno-unused-local-typedefs -Wno-inconsistent-missing-override/' src/Makefile ;
fi
- make && make install
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/$qbt_exe.app/Contents/MacOS" ; fi
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then cd "$TRAVIS_BUILD_DIR/src/" && macdeployqt "$qbt_exe.app" && cd "$qbt_exe.app/Contents/MacOS" ; fi
- ./$qbt_exe --version
after_script:

View File

@@ -1,53 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
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
x8m1+aYiYlKfcKWm1nKQG0hF04Axq5AYezjKvA==
=Zdwm
-----END PGP PUBLIC KEY BLOCK-----

53
5B7CC9A2.asc Normal file
View File

@@ -0,0 +1,53 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
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
=tDGM
-----END PGP PUBLIC KEY BLOCK-----

View File

@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.2)
cmake_policy(VERSION 3.2)
cmake_minimum_required(VERSION 3.5)
cmake_policy(VERSION 3.5)
project(qBittorrent VERSION 3.4.0.0)

View File

@@ -29,8 +29,10 @@ class MyOtherClass
{
public:
//code
protected:
//code
private:
//code
};
@@ -87,10 +89,14 @@ default:
}
```
#### d. single-line blocks (lambdas, initializer lists etc.) ####
#### d. Brace enclosed initializers ####
Unlike single-line functions, you must not insert spaces between the brackets and concluded expressions.<br/>
But you must insert a space between the variable name and initializer.
```c++
{} // empty - space before {
{ body } // spaces around { and before }
Class obj {}; // empty
Class obj {expr};
Class obj {expr1, /*...,*/ exprN};
QVariantMap map {{"key1", 5}, {"key2", 10}};
```
### 2. If blocks ###
@@ -173,11 +179,11 @@ All names should be camelCased.
#### a. Type names and namespaces ####
Type names and namespaces start with Upper case letter (except POD types).
```c++
class ClassName {}
class ClassName {};
struct StructName {}
struct StructName {};
enum EnumName {}
enum EnumName {};
typedef QList<ClassName> SomeList;
@@ -201,7 +207,40 @@ class MyClass
}
```
### 8. Misc.###
### 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).
3. Application headers, starting from *Base* headers.
The headers should be ordered alphabetically within each group (subgroup).<br/>
<br/>
Example:
```c++
// examplewidget.cpp
#include "examplewidget.h"
#include <cmath>
#include <cstdio>
#include <QDateTime>
#include <QList>
#include <QString>
#include <QUrl>
#include <libtorrent/version.hpp>
#include "base/bittorrent/session.h"
#include "base/bittorrent/infohash.h"
#include "base/utils/fs.h"
#include "base/utils/misc.h"
#include "base/utils/string.h"
#include "ui_examplewidget.h"
```
### 9. Misc.###
* Line breaks for long lines with operation:
@@ -211,47 +250,18 @@ a += "b"
+ "d";
```
* Initializers
We allow brace enclosed initializers only for aggregates and arrays/containers.<br />
Brace enclosed initializer MUST be used with equality sign if it follows the variable declaration.<br />
Brace enclosed initializer MUST be additionally enclosed in parentheses if it is used in constructor initialization list.<br />
Some valid use cases:
```c++
// aggregate
Person john = { "John", "Smith", 21 };
Person *john = new Person { "John", "Smith", 21 };
// array
int array[] = { 1, 2, 3, 4 };
// container
QHash<QString, QString> map = {
{ "key1", "value1" },
{ "key2", "value2" }
);
// member array
SomeClass::SomeClass(BaseClass *parent)
: BaseClass(parent)
, m_someArrayMember({ 1, 2, 3, 4 })
{
}
// return from function
Person getPersonByName(const QString &name)
{
// do something
return { name, surname, age };
}
// function argument
doSomething({ name, surname, age }, someOtherArg);
```
* **auto** keyword
We allow the use of the **auto** keyword only where it doesn't break the readability of the code (i.e. either we can gather enough information about the type from the right part of the expression, or we do not need to know the exact type), or where it is strictly necessary (for example, to compute the type of a lambda, etc.).<br />
We allow the use of the **auto** keyword only where it is strictly necessary
(for example, to declare a lambda object, etc.), or where it **enhances** the readability of the code.
Declarations for which one can gather enough information about the object interface (type) from its name
or the usage pattern (an iterator or a loop variable are good examples of clear patterns)
or the right part of the expression nicely fit here.<br/>
<br/>
When weighing whether to use an auto-typed variable please think about potential reviewers of your code,
who will read it as a plain diff (on github.com, for instance). Please make sure that such reviewers can
understand the code completely and without excessive effort.<br/>
<br/>
Some valid use cases:
```c++
template <typename List>
@@ -274,9 +284,17 @@ auto spinBox = static_cast<QSpinBox*>(sender());
* Space around operations eg `a = b + c` or `a=b+c`:
Before and after the assignment there should be a space. One exception could be: for loops.
Before and after the assignment and other binary (and ternary) operators there should be a space.<br/>
There should not be a space between increment/decrement and its operand.<br/>
Some valid use cases:
```c++
for (int a=0; a<b; ++b) {
a += 20;
a = (b <= MAX_B ? b : MAX_B);
++a;
b--;
for (int a = 0; a < b; ++b) {
// code
}
```
@@ -286,5 +304,5 @@ for (int a=0; a<b; ++b) {
* Method definitions aren't allowed in header files
### 9. Not covered above###
###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.

72
COPYING
View File

@@ -12,15 +12,15 @@ exception statement from your version.
----------
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -70,7 +70,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@@ -269,7 +269,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -291,64 +291,4 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
END OF TERMS AND CONDITIONS

View File

@@ -1,3 +1,81 @@
* Wed Jul 20 2016 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.3.6
- BUGFIX: Do not create save folder in advance (glassez)
- BUGFIX: Fix upper-bound limit of command line for "Run External Program" in Windows. Closes #5399. (Chocobo1)
- BUGFIX: Invoke system's cmd.exe directly. (Chocobo1)
- BUGFIX: Workaround space issues in file path for running external program on Windows. (Chocobo1)
- BUGFIX: Fix icons are missing when using RTL languages in Options dialog. Closes #5398. (Chocobo1)
* Mon Jun 20 2016 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.3.5
- FEATURE: Implement Torrent Management Mode(TMM) (glassez)
- FEATURE: New cookies management dialog and various related fixes (glassez)
- FEATURE: Use unique temp directories (temp_path/<truncated_torrent_hash>). Closes #5154. (glassez)
- FEATURE: Display notifications when a torrent is added. Closes #334 and #915. (sledgehammer999)
- FEATURE: Sort labels with natural sort algorithm in the right-click menu. Closes #3919. (Chocobo1)
- FEATURE: Add option to automatically remove .torrent files upon adding (Eugene Shalygin)
- FEATURE: Add option to bind directly to an IP instead of using a network Interface (Sjoerd van der Berg, sledgehammer999)
- FEATURE: Detailed tooltips on the progress and availability bars in the General button of each torrent. (Eugene Shalygin)
- FEATURE: Let user able to specifiy a filter when choosing an IP filter file (Chocobo1)
- FEATURE: Improve usability of "Run External Program". Users can write (platform dependent) shell scripts now. (Chocobo1)
- PERFORMANCE: Optimize drawing in speed graph (Anton Lashkov, Chocobo1)
- BUGFIX: Fix memory leak. (sledgehammer999)
- BUGFIX: Fix resizing bug in "add torrent dialog". Closes #5036. (Chocobo1)
- BUGFIX: Fix qBittorrent doesn't exit immediately when "all donwloads are done -> exit" option enabled. (glassez, Chocobo1)
- BUGFIX: Display the filepath when a torrent fails to load. Closes #100 and #805. (sledgehammer999)
- BUGFIX: Fix Add tracker dialog empty trackers (ngosang)
- BUGFIX: Fix Add tracker dialog URL download (ngosang)
- BUGFIX: Fix torrent adding with existing data (glassez)
- BUGFIX: Try to find incomplete files for new torrent (glassez)
- BUGFIX: Fix rechecking after torrent is finished (glassez)
- BUGFIX: Fix duplicate network interfaces. Closes #5131 (ngosang)
- BUGFIX: Fix .!qB extension is added when disabled (glassez)
- BUGFIX: Fix "IP Filtering - Apply to trackers" wasn't being applied. Closes #5217. (Chocobo1)
- BUGFIX: Don't resize the Country column needlessly (thalieht)
- BUGFIX: Fix crashing when exiting the program while the Options window was showing. Closes #4871, #5049. (Chocobo1)
- BUGFIX: Fix parsing of eMule .DAT filters. Closes #5281. (thalieht, sledgehammer999)
- WEBUI: Implement in setting/removing/showing categories. (buinsky)
- WEBUI: Add 'Added on' column in Webui. Closes #5145,#1092,#738 (Ibrahim Tachijian)
- WEBUI: Add command to get the logs (pmzqla)
- WEBUI: Expose Add trackers feature (pmzqla)
- WEBUI: Bump API_VERSION and API_VERSION_MIN to 10. (sledgehammer999)
- SEARCH: Implement search filters in the proxy model. (Eugene Shalygin)
- SEARCH: Optimize widgets inside of the search tab (Eugene Shalygin)
- SEARCH: Remove duplicated code from search tab and widget (Eugene Shalygin)
- SEARCH: Use nova2dl.py script instead of DownloadManager. Closes #5026. (glassez)
- SEARCH: Various UI cleanups and optimizations. (Chocobo1, ngosang)
- SEARCH: Fix Torrentz, Mininova, LegitTorrents, PirateBay plugins (ngosang)
- SEARCH: Fix toolbar resizing when m_searchFilter appears/disappears. Closes #5120. (Chocobo1)
- SEARCH: Use QPalette::LinkVisited color for downloaded items in search results (Eugene Shalygin)
- SEARCH: Update Python version requirements (min 2.7.9 / 3.3.0) (ngosang)
- SEARCH: Remove filters from Torrentreactor, BTDigg and Demonoid. It is done in the GUI now. (ngosang)
- RSS: default refresh interval to 30 mins (botmtl)
- COSMETIC: Improve TransferListDelegate::sizeHint (Chocobo1)
- COSMETIC: Fix long text clipping. Closes #5091. (Chocobo1)
- COSMETIC: Minor change in Stats dialog (ngosang)
- COSMETIC: Fix Update all button height in RSS tab (ngosang)
- COSMETIC: Disable `comboHideZero` when `checkHideZero` is unchecked. (Chocobo1)
- COSMETIC: Disable `checkLimituTPConnections` when `checkuTP` is unchecked. (Chocobo1)
- COSMETIC: Enable word wrap for "Run external program" help text (Chocobo1)
- COSMETIC: Fix mutually exclusive radio buttons can be unselected. (Chocobo1)
- COSMETIC: Set About tab font-size to default (zywo)
- COSMETIC: Improve wordings in "Auto download torrent" section (Chocobo1)
- COSMETIC: Change "Auto download torrent" default save path to "default location". (Chocobo1)
- COSMETIC: Change ambiguous text "Copy selected" to "Copy IP:port" (Chocobo1)
- COSMETIC: Improve error messages for "Auto download torrents" (Chocobo1)
- COSMETIC: Slim down 'Downloads' page of options window. (sledgehammer999)
- COSMETIC: Cleanup Connection page in Option dialog. Closes #845. (Chocobo1)
- COSMETIC: Fix reload button size is not the same size as "..." button in options dialog. (Chocobo1)
- WINDOWS: Let Windows handle all widgets scaling. (Chocobo1)
- WINDOWS: Improve stack trace for windows by including source filenames and line numbers (SeigneurSerpent)
- OSX: Fix qt5 bundle on OSX. Closes #4014. (sledgehammer999)
- OTHER: Make AddNewTorrentDialog behavior uniform (glassez)
- OTHER: Optimize the shutdown dialog (Chocobo1)
- OTHER: Enable access to shutdown functions when configured with `--disable-gui` option (Chocobo1)
- OTHER: Delete Import Torrent Dialog. Just use the "add new torrent" dialog. (glassez)
- OTHER: Optimize code for natural sorting (Chocobo1)
- OTHER: Use new alert dispathing API for libtorrent 1.1.x (glassez)
- OTHER: Fix gcc 6 compilation with qmake. See #5237. (sledgehammer999)
* Tue Mar 29 2016 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.3.4
- FEATURE: Download more pieces in "Download first and last pieces first" feature (ngosang)
- FEATURE: Unlock first column in peerlist too (thalieht)

View File

@@ -29,8 +29,9 @@ will install and execute qBittorrent hopefully without any problem.
### Public key:
Starting from v3.3.4 all source tarballs and binaries are signed.<br />
The key currently used is 4096R/[520EC6F6](https://pgp.mit.edu/pks/lookup?op=get&search=0xA1ACCAE4520EC6F6) with fingerprint `F4A5FD201B117B1C2AB590E2A1ACCAE4520EC6F6`.<br />
You can also download it from [here](https://github.com/qbittorrent/qBittorrent/raw/master/520EC6F6.asc).<br />
The key currently used is 4096R/[5B7CC9A2](https://pgp.mit.edu/pks/lookup?op=get&search=0x6E4A2D025B7CC9A2) with fingerprint `D8F3DA77AAC6741053599C136E4A2D025B7CC9A2`.<br />
You can also download it from [here](https://github.com/qbittorrent/qBittorrent/raw/master/5B7CC9A2.asc).<br />
**PREVIOUSLY** the following key was used to sign the v3.3.4 source tarballs and v3.3.4 Windows installer **only**: 4096R/[520EC6F6](https://pgp.mit.edu/pks/lookup?op=get&search=0xA1ACCAE4520EC6F6) with fingerprint `F4A5FD201B117B1C2AB590E2A1ACCAE4520EC6F6`.<br />
### Misc:
For more information please visit:

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/sh
aclocal -I m4
autoconf

View File

@@ -91,3 +91,16 @@ find_package_handle_standard_args(LibtorrentRasterbar DEFAULT_MSG
mark_as_advanced(LibtorrentRasterbar_INCLUDE_DIR LibtorrentRasterbar_LIBRARY
LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES
LibtorrentRasterbar_ENCRYPTION_INDEX)
if (LibtorrentRasterbar_FOUND AND NOT TARGET LibtorrentRasterbar::LibTorrent)
add_library(LibtorrentRasterbar::LibTorrent UNKNOWN IMPORTED)
set_target_properties(LibtorrentRasterbar::LibTorrent PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${LibtorrentRasterbar_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${LibtorrentRasterbar_INCLUDE_DIRS}"
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${LibtorrentRasterbar_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${LibtorrentRasterbar_LIBRARIES}"
INTERFACE_COMPILE_OPTIONS "${LibtorrentRasterbar_DEFINITIONS}"
)
endif()

View File

@@ -79,3 +79,16 @@ ELSE (QTSINGLEAPPLICATION_FOUND)
ENDIF (QTSINGLEAPPLICATION_FOUND)
MARK_AS_ADVANCED(QTSINGLEAPPLICATION_INCLUDE_DIR QTSINGLEAPPLICATION_LIBRARY)
if(NOT TARGET QtSingleApplication::QtSingleApplication)
add_library(QtSingleApplication::QtSingleApplication UNKNOWN IMPORTED)
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${QTSINGLEAPPLICATION_INCLUDE_DIR}"
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${QTSINGLEAPPLICATION_INCLUDE_DIR}"
)
if(EXISTS "${QTSINGLEAPPLICATION_LIBRARY}")
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${QTSINGLEAPPLICATION_LIBRARY}")
endif()
endif(NOT TARGET QtSingleApplication::QtSingleApplication)

View File

@@ -0,0 +1,17 @@
# a helper function which appends source to the main qBt target
# the target name is read from QBT_TARGET_NAME variable
# sources file names are relative to the the ${qbt_executable_SOURCE_DIR}
function (qbt_target_sources)
set (_sources_rel "")
foreach (_source IN ITEMS ${ARGN})
if (IS_ABSOLUTE "${_source}")
set(source_abs "${_source}")
else()
get_filename_component(_source_abs "${_source}" ABSOLUTE)
endif()
file (RELATIVE_PATH _source_rel "${qbt_executable_SOURCE_DIR}" "${_source_abs}")
list (APPEND _sources_rel "${_source_rel}")
endforeach()
target_sources (${QBT_TARGET_NAME} PRIVATE "${_sources_rel}")
endfunction (qbt_target_sources)

View File

@@ -6,8 +6,14 @@ DATADIR = @EXPAND_DATADIR@
MANPREFIX = @EXPAND_MANDIR@
QMAKE_CXXFLAGS += @QBT_CONF_EXTRA_CFLAGS@
INCLUDEPATH += @QBT_CONF_INCLUDES@
LIBS += @LDFLAGS@ @LIBS@
EXTERNAL_INCLUDES = @QBT_CONF_INCLUDES@
EXTERNAL_INCLUDES -= $$QMAKE_DEFAULT_INCDIRS
INCLUDEPATH += $$EXTERNAL_INCLUDES
EXTERNAL_LIBS = @LDFLAGS@ @LIBS@
EXTERNAL_LIBS -= $$QMAKE_DEFAULT_LIBDIRS
LIBS += $$EXTERNAL_LIBS
CONFIG += @QBT_ADD_CONFIG@
CONFIG -= @QBT_REMOVE_CONFIG@

2
dist/mac/Info.plist vendored
View File

@@ -45,7 +45,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>3.3.4</string>
<string>3.3.6</string>
<key>CFBundleSignature</key>
<string>qBit</string>
<key>CFBundleExecutable</key>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
dist/qt-translations/qt_fa.qm vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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