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

Compare commits

..

437 Commits

Author SHA1 Message Date
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
sledgehammer999
0795320086 Bump to 3.3.4 2016-03-29 23:21:35 +03:00
sledgehammer999
bd6877a0bd Update Changelog. 2016-03-29 23:19:29 +03:00
sledgehammer999
b47292c39f Bump API_VERSION and API_VERSION_MIN. 2016-03-29 23:17:30 +03:00
sledgehammer999
3d2b1b876b Fix public key commit again. 2016-03-28 22:20:15 +03:00
sledgehammer999
843472e663 Fix newlines in previous commit. 2016-03-28 22:20:15 +03:00
sledgehammer999
e952e3167e Add public key used for signing source tarballs and binaries. 2016-03-28 22:20:14 +03:00
sledgehammer999
67f05edf71 Sync translations from Transifex and run lupdate. 2016-03-28 22:19:37 +03:00
Eugene Shalygin
3ab76cb985 cmake: make it compile on OS X 2016-03-28 21:30:14 +03:00
Eugene Shalygin
509d97b0ad cmake: fix compilation 2016-03-28 21:30:13 +03:00
Chocobo1
67ae08df3c Minor cleanups in RSS 2016-03-28 21:30:13 +03:00
Chocobo1
38de6b1e41 Remove border around execution log 2016-03-28 21:30:13 +03:00
ngosang
72b179805d [Search engine] Added TorLock search engine. Fix #5012 2016-03-28 21:30:13 +03:00
ngosang
beeda5e0b2 Potential fix for crash. Closes #4990, #4905, #4864, #4855, #4818, #4726, #4648 2016-03-28 00:14:55 +03:00
sledgehammer999
356db2f2f7 Fix periodic latency spikes on Windows with WiFi connections. Closes #4209. 2016-03-27 23:57:29 +03:00
Chocobo1
19acbf587f Beautify messages
And some refactor
2016-03-27 23:57:23 +03:00
Chocobo1
5eee3f7357 confirmshutdowndlg.ui cleanup
shutdownconfirm.cpp cleanup
2016-03-27 23:57:18 +03:00
sledgehammer999
8f990d5d7e Fix previous commit. 2016-03-27 23:57:12 +03:00
d3fault
f0ec94c31c Add 'never show again' checkbox/pref to auto-exit confirm dialog 2016-03-27 23:57:06 +03:00
sledgehammer999
e37dfa96f9 Fix commit about Esperanto. Closes #4999 again. 2016-03-27 23:57:01 +03:00
Chocobo1
4b48db3273 Fix "caja" file manager opens the file instead of opens the directory. Closes #5003.
Now it opens the directory correctly.
2016-03-27 23:56:56 +03:00
ngosang
545002a809 [Search engine] Added TorLock search engine 2016-03-27 23:56:50 +03:00
ngosang
e2e9470e10 [Search engine] Change URL getting mechanism in BTDigg 2016-03-27 23:56:45 +03:00
ngosang
0bf1abba6a [Search engine] Fix Python 2 encoding problems 2016-03-27 23:56:39 +03:00
Vladimir Golovnev (Glassez)
24165856e9 Add new Coding Style rules for some c++11 features 2016-03-27 23:56:34 +03:00
sledgehammer999
657f0640b9 Fix selection of Esperanto locale. Closes #4999. 2016-03-27 23:56:28 +03:00
sledgehammer999
faffefc4ff Implement file logger. 2016-03-27 23:56:23 +03:00
sledgehammer999
0619aacf1f Add ability to filter log messages by type. 2016-03-27 23:56:17 +03:00
sledgehammer999
9edbbb6473 Minor log widget code optimizations. 2016-03-27 23:56:12 +03:00
sledgehammer999
87ee720c0c Follow project coding style. Issue #2192. 2016-03-27 23:56:06 +03:00
ngosang
b7ca036bc3 [WebUI] Add missing string 2016-03-27 23:56:01 +03:00
Eugene Shalygin
c4442c98b9 update uncrustify config 2016-03-27 23:55:55 +03:00
Chocobo1
fee8036a7a TravisCI: switch to Trusty image. Closes #4953.
Drop workaround for gcc-4.8
2016-03-27 23:55:50 +03:00
sledgehammer999
94bd4308c7 Fix selection of Portuguese translation files.
Qt returns "Brazil" as country of QLocale("pt") instead of "Portugal". This conflicts with QLocale("pt_BR").
Rename the pt.ts to pt_PT and put a language mapping in tx's config for that locale.
Closes #4776.
2016-03-27 23:55:45 +03:00
sledgehammer999
5e5785435a Potential fix for crash. Closes #4607. 2016-03-27 23:55:39 +03:00
sledgehammer999
d7f02a7ee7 Don't display warning when folder named stayed the same.
Copy some code from AddNewTorrent dialog and beautify a bit.
Closes #4970.
2016-03-27 23:55:34 +03:00
sledgehammer999
e6480f9dff Correctly hide useless columns in AddNewTorrent file treeview. Closes #4955. 2016-03-27 23:55:28 +03:00
buinsky
e9f6cfc2e8 WebUI: Change the order of the values of speed labels 2016-03-27 23:55:23 +03:00
buinsky
4f68d263d4 GUI: Change the order of the values of speed labels 2016-03-27 23:55:17 +03:00
buinsky
6a672472a2 Refactoring of StatusBar::refreshStatusBar function 2016-03-27 23:55:12 +03:00
buinsky
3590ac2997 Follow project coding style. Issue #2192. 2016-03-27 23:55:06 +03:00
Chocobo1
98fe5e11dd Add appveyor support 2016-03-27 23:55:01 +03:00
sledgehammer999
9df5c0292b Sync translations from Transifex and run lupdate. 2016-03-27 23:54:55 +03:00
funkydude
1f2d25a1ff Move some URLs overs to https 2016-03-27 23:54:50 +03:00
sledgehammer999
f1dd7a091c Always delete partfile (libtorrent 1.1.x). 2016-03-27 23:54:44 +03:00
Eugene Shalygin
5457bde8d0 Use correct piece size while calling torrent_info::map_block()
This should fix crashes. Issue #4597
2016-03-27 23:54:39 +03:00
Eugene Shalygin
2e325d9506 Revert "Temporarily revert PR #2885 (filename column in peers view)."
This reverts commit 69d52a06d7.
2016-03-27 23:54:34 +03:00
sledgehammer999
0264a7bf58 Don't display Country option in PeerListWidget header menu when country resolution is disabled. 2016-03-27 23:54:29 +03:00
thalieht
32fe930b88 add toggle columns for peerlist 2016-03-27 23:54:23 +03:00
Chocobo1
72883ffb73 Fix additional space in comment label 2016-03-27 23:54:13 +03:00
Chocobo1
f2c24dd8c3 Fix tab icons messed up in Ubuntu 16. Closes #4929.
Fixup of 1c25603686.
The following settings default are different between DEs, so they must set explicitly:
movement, flow, isWarpping, resizeMode, viewMode
2016-03-27 23:19:35 +03:00
Eugene Shalygin
8904139c6d cmake: fix library namaes for Qt5 version of QtSingleApplication
At least on Gentoo they start with 'Qt5', not 'Qt'
2016-03-27 23:16:27 +03:00
Eugene Shalygin
571f46886f cmake: copy qt version requirements from autotools
Set versions 4.8.0 and 5.2.0 as minimal required for Qt4 and Qt5.
2016-03-27 23:16:15 +03:00
Eugene Shalygin
0cd691e167 cmake: fix man installation
Fix copy-n-paste error: for non-GUI build we have to install
qbittorrent-nox.1, but not qbittorrent.1.
2016-03-27 23:15:51 +03:00
UnDifferential
4f65e2d468 Support SSL certificate bundles. Issue #4896. 2016-03-27 23:15:31 +03:00
Eugene Shalygin
35981f6ef5 cmake: fix systemd unit install path 2016-03-27 23:15:14 +03:00
sledgehammer999
dc493880f3 Fix commit 83e931766f (wrong conflict resolution). 2016-03-05 19:50:12 +02:00
Ben Lau
872e78ca21 add a remaining column to the torrent content model 2016-03-05 19:46:21 +02:00
Eugene Shalygin
7b601796d7 fix cmake build 2016-03-05 19:46:13 +02:00
Chocobo1
09ef552aea Add tip about adding quotation marks around parameter 2016-03-05 19:46:07 +02:00
Chocobo1
b4c9cae0d1 Save "Run external program" input as is. Closes #4830. 2016-03-05 19:43:31 +02:00
Eugene Shalygin
6d2a0ae83b add basic cmake support 2016-03-05 19:43:22 +02:00
Chocobo1
238a925000 Put comment_lbl in QScrollArea. Closes #4881. 2016-03-05 19:43:14 +02:00
Eugene Shalygin
cce01cfb8e Fix typos in speed label text
Qt's tr() ate 'true' parameter, which was supposed to be for
friendlyUnit()
2016-03-05 19:43:07 +02:00
Chocobo1
b2db1972f3 Create helper function to get libtorrent version 2016-03-05 19:42:59 +02:00
Chocobo1
8b851fe2b9 Create helper function to get boost version 2016-03-05 19:42:51 +02:00
Chocobo1
e3c9488fb0 Create helper function to get OS name 2016-03-05 19:42:43 +02:00
Chocobo1
c27fb110f8 Comment out "List of linked Modules" section in windows crash report.
It is bloating the crash report with unhelpful messages.
2016-03-05 19:42:34 +02:00
Dan Seminara
ec61f24099 Do not try to parse request message when content-length is 0 2016-03-05 19:42:27 +02:00
Boris Nagaev
130ee5a71e configure: pass variable QMAKE_LRELEASE to qmake 2016-03-05 19:42:20 +02:00
Boris Nagaev
cb3e7e6bd6 winconf-mingw.pri: clean library names
* remove versions from libraries,
  * remove *.dll from libraries
    (actual name of library files can be "libfoo.a")
2016-03-05 19:42:12 +02:00
Boris Nagaev
7fd65d5428 winconf.pri: change example library path for build
Path with "<", ">" causes errors when building in MXE.
http://mxe.cc/

Removing or commenting out these hardcoded paths is not
desirable, as they serve as a guide (on what to edit) for
the newcomers that want to build on windows.

See https://github.com/qbittorrent/qBittorrent/pull/4824#issuecomment-186936960
2016-03-05 19:42:05 +02:00
Boris Nagaev
442f521bf5 winconf.pri: use mask "win32-g++*"
Mask "win32-g++" doesn't match MXE.
Mask "win32-g++*" match MXE.
See http://stackoverflow.com/a/14523545
See http://mxe.cc
2016-03-05 19:41:57 +02:00
Douman
016052aea1 Align search engine url getting mechanism. Closes #4778
1. Switch to retrieve_url instead of low-level HTTPConnection module usage
2016-03-05 19:41:48 +02:00
Chocobo1
411982e2b0 Follow project coding style. Issue #2192. 2016-03-05 19:41:20 +02:00
Chocobo1
4b93ccd4e4 Simplify statement 2016-03-05 19:41:20 +02:00
Chocobo1
6603a8947a Fix malformed date header in email. Closes #4828. 2016-03-05 19:41:20 +02:00
sledgehammer999
031e354577 Partially revert decfae7b8a. Newer libtorrent RC_1_1 has added back the missing variables. 2016-03-05 19:41:19 +02:00
Chocobo1
ec7fb331e0 Remove additional vertical spacer.
Fixup of 843f7ed.
2016-03-05 19:41:19 +02:00
Chocobo1
a232b77104 Simplify resize actions for AddNewTorrentDialog 2016-03-05 19:41:19 +02:00
Chocobo1
8c11245469 Disable cell selection in advanced options. Fixup of a8b39475. 2016-03-05 19:41:18 +02:00
Chocobo1
60857d3b8e Put links into table 2016-03-05 19:41:18 +02:00
Chocobo1
2fe6b76968 Set icon directly in .ui file 2016-03-05 19:41:18 +02:00
Chocobo1
6c7350fce0 Make authors email clickable & selectable 2016-03-05 19:41:17 +02:00
Chocobo1
c770f4d0bc about_imp.h: Use larger qbt icon
Shrink title size
2016-03-05 19:41:17 +02:00
Chocobo1
876e96911f Fix weird left panel icon layout
Remove Advanced page border
2016-03-05 19:41:17 +02:00
Chocobo1
5620fd120e Let OS handle DPI scaling for now. Should let Qt do the work when it's more mature.
Opt-in to the high DPI pixmap support
Closes #2963.
2016-03-05 19:41:17 +02:00
Chocobo1
ea7f6046b4 Follow project coding style. Issue #2192. 2016-03-05 19:41:16 +02:00
Chocobo1
fddac5d679 Move statusbar styelsheet to where it belongs 2016-03-05 19:41:16 +02:00
Chocobo1
2c4bc68af1 Use short date in addnewtorrentdialog
Correction "Free disk space" to "Free space on disk"
2016-03-05 19:41:16 +02:00
Chocobo1
7676f49612 Cleanup addnewtorrentdialog.ui
Reorder Torrent info column
Rename "Save as" to "Save at"
2016-03-05 19:41:15 +02:00
Chocobo1
e879279019 Cleanup about.ui
Shorten text in "Libraries" tab, to avoid About dialog being too wide
Make QLabels in Libraries tab selectable
Use QGroupBox in "Author" tabs
Rename "Thanks to" to "Special Thanks"
Rename "Translation" to "Translators"
Remove borders in "Thanks to", "Translation", "License" tabs
2016-03-05 19:41:15 +02:00
Chocobo1
84b7680718 Cleanup about_imp.h
Fix dialog too narrow on highDPI screens
Remove IRC link
Rewrite about text to support RTL languages better
Follow project coding style. Issue #2192.
2016-03-05 19:41:15 +02:00
sledgehammer999
be180140a3 Don't merge trackers for private torrents. Closes #2928. 2016-03-05 19:41:14 +02:00
Chocobo1
c051c279d4 Set "Show splash screen on start up" option default to off 2016-03-05 19:41:14 +02:00
Chocobo1
964dcc4d8a Fix potential race condition. Closes #4742. 2016-03-05 19:41:14 +02:00
Vladimir Golovnev (Glassez)
64cf93b889 Fix crash caused by AdvancedSettings::addRow() 2016-03-05 19:41:13 +02:00
Vladimir Golovnev (Glassez)
365737afe1 Save resume data using QSaveFile (Qt5 only) 2016-03-05 19:41:13 +02:00
Vladimir Golovnev (qlassez)
2cf14f0120 Optimize Session::startupTorrents()
Reduce queue size by starting up initial items (torrents) when they are detected
2016-03-05 19:41:13 +02:00
Vladimir Golovnev (qlassez)
46bb25ba9f Switch to using previous fastresume file names 2016-03-05 19:41:12 +02:00
Vladimir Golovnev (qlassez)
ee5a72c570 Perform fastresume data saving in separate thread
Closes #4315
2016-03-05 19:41:12 +02:00
Chocobo1
18b56f4d0a Add "Paused torrents only" option for "Hide zero and infinity values" 2016-03-05 19:41:12 +02:00
Chocobo1
f626276218 Fix total values for "Seeds" & "Peers" 2016-03-05 19:41:11 +02:00
Chocobo1
e28554f85c Simplify common paint actions 2016-03-05 19:41:11 +02:00
Chocobo1
a0a3447b2e Remove unused destructor
move get state text to its own function
2016-03-05 19:41:11 +02:00
Chocobo1
4049ca7308 Follow project coding style. Issue #2192. 2016-03-05 19:41:11 +02:00
Chocobo1
c28151ba92 Add "Hide zero values" option. Closes #3543. 2016-03-05 19:41:10 +02:00
buinsky
81e1a050a2 WebAPI: Add "Added on" and "Completion on" fields to query/torrents query response 2016-03-05 19:41:10 +02:00
Vladimir Golovnev (Glassez)
34d5824c4a Manage save path in one place 2016-03-05 19:41:10 +02:00
Vladimir Golovnev (Glassez)
bb875df400 Create MagnetUri object from BC link or HASH string 2016-03-05 19:41:09 +02:00
ngosang
61f47d366a [Web UI] Minor changes in CSS styles 2016-03-05 19:41:09 +02:00
ngosang
8347eb157d Check WebUI username and password length. Closes #4191 2016-03-05 19:41:09 +02:00
Vladimir Golovnev (Glassez)
dd22c9b138 Fix upgrade corrupted fastresume file 2016-03-05 19:41:08 +02:00
thalieht
7f6ad55042 Unlock first column in peerlist too
I just copy pasted from trackerlist (tested ofc). No idea if it can be
done differently.
2016-03-05 19:41:08 +02:00
Vladimir Golovnev (Glassez)
55b06ab9ba Add libtorrent v1.1 basic support 2016-03-05 19:41:08 +02:00
Vladimir Golovnev (Glassez)
21f0a5eb76 Prepare for libtorrent v1.1 support 2016-03-05 19:41:07 +02:00
Vladimir Golovnev (Glassez)
16ed11623f Don't use wide strings in libtorrent 2016-03-05 19:41:07 +02:00
buinsky
c184cf8d7d WebUI: Submit the label in the new label dialog on pressing enter key 2016-03-05 19:41:07 +02:00
buinsky
6a90214eb2 WebUI: Repair translation 2016-03-05 19:41:06 +02:00
buinsky
226ec0610a WebUI: Fix JavaScript exception on WebUI load 2016-03-05 19:41:06 +02:00
ngosang
694bd7cb95 Download more pieces in "Download first and last pieces first" feature 2016-03-05 19:41:06 +02:00
ngosang
9e807e7151 [search engine] Update PirateBay plugin. 2016-03-05 19:41:06 +02:00
ngosang
78fe7fcf9d [Web UI] Fix max_ratio precision. Closes #4707 2016-03-05 19:41:05 +02:00
Chocobo1
c2465f931e Add #include guard 2016-03-05 19:41:05 +02:00
Chocobo1
8d50325961 Try to concat most of the string at compile time
The lesser unsafe code in signal handler the better
Add license
2016-03-05 19:41:05 +02:00
Chocobo1
570a651a59 Simplify signal handler
Try to use signal-safe functions as much as possible
Closes #3995
Define sys_signame[] ourselves on linux
2016-03-05 19:41:04 +02:00
sledgehammer999
0eaa2aeef2 Fix loading *.magnet files from watched folders. Closes #4701. 2016-03-05 19:41:04 +02:00
Chocobo1
2c7e309493 Add header to differentiate settings 2016-03-05 19:41:04 +02:00
Chocobo1
ded3cf5798 Rename setRow() to addRow()
Use template to avoid code duplication
2016-03-05 19:41:03 +02:00
Chocobo1
4edac3e974 Set parent object for advancedsettings
Remove borders
Resize column size correctly
2016-03-05 19:41:03 +02:00
Chocobo1
53885fb5e4 Move code from advancedsettings.h to its own cpp file 2016-03-05 19:41:03 +02:00
Chocobo1
3942c095f6 Add license in advancedsettings.h 2016-03-05 19:41:02 +02:00
Jesse Connop
94be3b930d Always update native session's announce_ip setting 2016-03-05 19:41:02 +02:00
Artem S. Tashkinov
09bc14cc57 Let's check if the torrent file can actually be opened before passing it to libtorrent
If we don't have enough permissions, libtorrent will spew a pretty useless, irrelevant and almost wrong message: "Failed to load the torrent: torrent file is not a dictionary"
2016-03-05 19:41:02 +02:00
sledgehammer999
51b93b4284 Fix splash screen staying on top of all windows. Closes #1391. 2016-03-05 19:41:01 +02:00
sledgehammer999
9c50ea14cb Bump to 3.3.3 2016-01-21 00:49:39 +02:00
sledgehammer999
42a74ea78e Update Changelog. 2016-01-21 00:47:28 +02:00
sledgehammer999
1ac68a9192 Temporarily revert PR #2885 (filename column in peers view).
There's a bug that causes frequent crashes.
Issue #4597.
2016-01-21 00:44:14 +02:00
buinsky
29b5d460ea WebUI: Fix unnecessary updates of torrent peers table 2016-01-21 00:44:14 +02:00
buinsky
a441bca4de WebUI: Move style of dynamic table header to CSS 2016-01-21 00:44:14 +02:00
sledgehammer999
e2da3f2ebd Bump to 3.3.2 2016-01-19 01:45:05 +02:00
sledgehammer999
f235d412f8 Bump Copyright year. 2016-01-19 01:44:03 +02:00
sledgehammer999
60b103b062 Update Changelog. 2016-01-19 01:34:08 +02:00
sledgehammer999
0fdb23098b Bump WebUI API_VERSION and API_VERSION_MIN. 2016-01-19 01:32:32 +02:00
sledgehammer999
51c296ac69 Sync translations from Transifex and run lupdate. 2016-01-19 00:50:48 +02:00
Vladimir Golovnev (Glassez)
a120842ba2 Fix unchecked dynamic_cast
Replace some unnecessary (and slow) dynamic_cast with static_cast.
2016-01-18 19:45:45 +02:00
Vladimir Golovnev (Glassez)
8911de9349 Fix unitialized pointer field 2016-01-18 19:45:45 +02:00
Vladimir Golovnev (Glassez)
013a1b8403 Fix unitialized scalar field bugs 2016-01-18 19:45:45 +02:00
Vladimir Golovnev (Glassez)
1492a24391 Simplify Log::Msg and Log::Peer
Also fixes some unitialized scalar field bugs.
2016-01-18 19:45:44 +02:00
buinsky
bf1559320b WebUI: Remember last opened tab 2016-01-18 19:45:44 +02:00
Vladimir Golovnev (Glassez)
d5648a67ae Fix loading corrupted .fastresume file 2016-01-18 19:45:44 +02:00
Vladimir Golovnev (Glassez)
a6ec82682d Delete unused include 2016-01-18 19:45:43 +02:00
Vladimir Golovnev (Glassez)
bd359ad498 Allow GeoIP in NoGUI builds 2016-01-18 19:45:43 +02:00
Vladimir Golovnev (Glassez)
458f48b290 Fix unitialized scalar fields 2016-01-18 19:45:43 +02:00
Vladimir Golovnev (Glassez)
a0ae21148a Fix NetworkCookieJar::deleteCookie() behavior to match Qt5 one 2016-01-18 19:45:42 +02:00
Vladimir Golovnev (Glassez)
5dc9b5c2dd Fix reconfigure additional trackers
Replace wrong QList::empty() call with QList::clear()
2016-01-18 19:45:42 +02:00
buinsky
48175bbb85 WebUI: Repair translation 2016-01-18 19:45:42 +02:00
Gabriele
3b03bb286e WebUI: Allow to remove the label assigned to a torrent
Empty strings are not valid label names, but they are used to remove
torrent labels, so allow them.
2016-01-18 19:45:41 +02:00
Chocobo1
23fdf3a0bc Update uncrustify script link. 2016-01-18 19:45:41 +02:00
Dmitry Victorov
4cf7618c52 Set qBittorrent as default torrent app in Mac OS 2016-01-18 19:45:41 +02:00
sledgehammer999
6fd9413dae Sync translations from Transifex and run lupdate. 2016-01-18 19:45:39 +02:00
sledgehammer999
120d073a04 Various updates on the Windows configuration file. 2016-01-18 19:45:39 +02:00
filipporig8
8fa2adb6fc Update webui run program parameters 2016-01-18 19:45:38 +02:00
buinsky
70105d5834 WebUI: Fix torrent table context menu
Don't show "Limit download speed" menu item for downloaded torrents.
2016-01-18 19:45:38 +02:00
buinsky
05961faf42 WebUI: Fix deleting torrents
Fix possible showing "qBittorrent client is not reachable" message on
deleting torrents.
2016-01-18 19:45:38 +02:00
vlakoff
386706f05b Complete French translation for installer 2016-01-18 19:45:37 +02:00
vlakoff
1813e96a42 Fixes in French translation for installer 2016-01-18 19:45:37 +02:00
buinsky
eaf6e47391 Edit speed limits and upload ratio icons 2016-01-18 19:45:37 +02:00
Chocobo1
8ba82064cd Replace names with camelCase style 2016-01-18 19:45:36 +02:00
Chocobo1
5d5a0de694 Use C++11 initializer list 2016-01-18 19:45:36 +02:00
Chocobo1
145180c2a1 Follow project coding style. Issue #2192. 2016-01-18 19:45:35 +02:00
Chocobo1
50881b9972 Rename column header 2016-01-18 19:45:35 +02:00
sledgehammer999
a115932bc1 Fix newlines in wiki rendering. 2016-01-18 19:45:35 +02:00
sledgehammer999
c7fd0fbe45 Add info and files for coding style. Issue #2192. 2016-01-18 19:45:34 +02:00
Boris Nagaev
d513d002cc convert includes like <Windows.h> to lowercase
There is header file windows.h, not Windows.h.
MinGW on Linux build machine is filename case-sensitive.
2016-01-18 19:45:34 +02:00
ngosang
a570bd5e2c [search engine] Update PirateBay URL. Closes #4470 2016-01-18 19:45:34 +02:00
ngosang
bdacfd540c [search engine] Fix PirateBay plugin implementation for Python 3 2016-01-18 19:45:33 +02:00
buinsky
c89b9edf27 Move some styles into css 2016-01-18 19:45:33 +02:00
schnurlos
0fdf788624 Update german.nsi
Translated the "A previous installation was detected ..." text.
2016-01-18 19:45:33 +02:00
ngosang
f0ae30070b Update installer translations in Spanish language 2016-01-18 19:45:32 +02:00
sledgehammer999
8fb8f4b467 Don't require GUI libs for qt4 nox build. Closes #4404. 2016-01-18 19:45:32 +02:00
dzmat
c3a2e50191 Update russian.nsi
Translated new string/
2016-01-18 19:45:31 +02:00
Vladimir Golovnev (Glassez)
b045b5ebf7 Improve RSS parsing logic. 2016-01-18 19:45:31 +02:00
Vladimir Golovnev (Glassez)
6436152c75 Redesign RSS base classes. 2016-01-18 19:45:31 +02:00
Vladimir Golovnev (Glassez)
9c3ae53330 Move base RSS names to Rss namespace. 2016-01-18 19:45:30 +02:00
Vladimir Golovnev (Glassez)
acd5fcfb00 Fix coding style (Issue #2192). 2016-01-18 19:45:30 +02:00
Vladimir Golovnev (Glassez)
9a6f8ab402 Move base RSS code to Core. 2016-01-18 19:45:29 +02:00
Vladimir Golovnev (qlassez)
0f854014af Use DownloadManager by DNSUpdater 2016-01-18 19:45:29 +02:00
Vladimir Golovnev (qlassez)
a11175afba Use DownloadManager by ProgramUpdater
Closes #2023
2016-01-18 19:45:28 +02:00
Vladimir Golovnev (qlassez)
c5776c3bf1 Save RSS cookies to common cookie storage
Closes #4305
2016-01-18 19:45:28 +02:00
Vladimir Golovnev (qlassez)
19d566253f Make DownloadManager to save/load cookies 2016-01-18 19:45:27 +02:00
Naikel Aparicio
0d59d6a03e Implemented WebUI interface for the new Watched Folders feature 2016-01-18 19:45:27 +02:00
sledgehammer999
c7b2ee367f Remove watch folders permanently only if the user accepts the Preferences dialog. 2016-01-18 19:45:27 +02:00
sledgehammer999
510ec029ea Make it scroll horizontally when necessary. 2016-01-18 19:45:26 +02:00
sledgehammer999
1f2daed9d6 Fix translated string. 2016-01-18 19:45:26 +02:00
sledgehammer999
08b854ce74 Method to update the watch path parameters. 2016-01-18 19:45:25 +02:00
sledgehammer999
6b34803c59 Don't add the watch folder before the user closes the Preferences window. 2016-01-18 19:45:25 +02:00
sledgehammer999
fca224b9d0 Support loading multiple magnets/hashes/urls per .magnet file in the watched folder(one per line). Closes #217. 2016-01-18 19:45:25 +02:00
Vladimir Golovnev (qlassez)
4f5009351f Fix setting custom download location for watched folder 2016-01-18 19:45:24 +02:00
sledgehammer999
c1f77d45ab Improve the "Watch folders" UI. Closes #4300. 2016-01-18 19:45:24 +02:00
sledgehammer999
60f0447603 Indicate to the user that he's going to download the new version.
Indicate from the installer that the old version was detected and no settings will be deleted.
Closes #4320.
2016-01-18 19:45:23 +02:00
sledgehammer999
6ae208a661 Move the 'qBittorrent-resume' file even when no magnets were recovered. Also make sure to rename it with a unique name. Closes #4334. 2016-01-18 19:45:23 +02:00
Eugene Shalygin
781c8034a5 Add column with list of currently downloading files
Add a new column to peers list that shows list of files which are
downloaded right now from a peer. The column is empty if we do not
download anything from the given peer.
2016-01-18 19:45:22 +02:00
Eugene Shalygin
4cf8359257 functions for retrieving list of currently downloading files 2016-01-18 19:45:22 +02:00
Eugene Shalygin
3ed4de3043 Revert "Remove unused parameter."
This reverts commit 87347cf0e5.
2016-01-18 19:45:22 +02:00
sledgehammer999
a374b99ba2 Update native names for Chinese locales. Closes #4381. 2016-01-18 19:45:21 +02:00
Naikel Aparicio
601734a59b Fixed bug when uploading several files and only the last one was considered. 2016-01-18 19:45:21 +02:00
Chocobo1
69cc97c3dd Turn off warning on OSX builds: unused-local-typedefs
Reorder option list, sort by lt_branch then qt then gui
2016-01-18 19:45:20 +02:00
buinsky
226f74a866 Fix paused, active and inactive filters 2016-01-18 19:45:20 +02:00
buinsky
cf35392cd2 WebUI: Show filtered torrents number 2016-01-18 19:45:20 +02:00
Chocobo1
27319e9e64 Fix typo 2016-01-18 19:45:19 +02:00
Chocobo1
69b8544e26 Simplify statement 2016-01-18 19:45:19 +02:00
Chocobo1
41e5dc8911 Add check for null. Fix provided by glassez.
Closes #4280.
2016-01-18 19:45:18 +02:00
Vladimir Golovnev (qlassez)
ba1ffa4e54 Fix moving torrents to Temp after app restart
Closes #4434
2016-01-18 19:45:18 +02:00
Vladimir Golovnev (Glassez)
4edc073373 Fix coding style (Issue #2192). 2016-01-18 19:45:18 +02:00
Vladimir Golovnev (Glassez)
1f00d2e5d7 Move basic search-related code into Core.
Also use qBittorrent torrent file download routines instead of
nova2dl.py script.
2016-01-18 19:45:17 +02:00
Vladimir Golovnev (Glassez)
d87e42ba00 Move Search-related files into Gui. 2016-01-18 19:45:17 +02:00
Vladimir Golovnev (Glassez)
975b1d5257 Fix search-related file/class names. 2016-01-18 19:43:28 +02:00
Fabio Alessandro Locati
5f84363afb Fix lrelease version due to the default Qt5 build
As title
2016-01-18 19:43:28 +02:00
Chocobo1
545c526e2f Update ISO 3166 country codes. Closes #3942. 2016-01-18 19:43:27 +02:00
sledgehammer999
06fcc57619 Fix linux build. 2016-01-18 19:43:27 +02:00
sledgehammer999
06c6a444c9 Don't apply some settings again if they weren't changed. Closes #4278. 2016-01-18 19:43:26 +02:00
sledgehammer999
8474d0d199 Don't recheck twice after 'Force Recheck' with 'Recheck torrents on completion' enabled. Closes #4274. 2016-01-18 19:43:26 +02:00
sledgehammer999
0f4610c127 Fix resolution of peer host names. Closes #4307. 2016-01-18 19:43:26 +02:00
sledgehammer999
d753988729 Bump to v3.3.1 2015-12-08 00:45:15 +02:00
sledgehammer999
a6b948077a Update Changelog. 2015-12-08 00:42:19 +02:00
sledgehammer999
3276cc4987 Sync translations from Transifex and run lupdate. 2015-12-08 00:28:20 +02:00
sledgehammer999
71557fe784 Fix possible deadlock during application exit. 2015-12-08 00:28:20 +02:00
sledgehammer999
29fc5bc80d Bump WebUI API_VERSION. 2015-12-08 00:28:19 +02:00
sledgehammer999
db07551e4c Change update URL to FossHub. Closes #4188. 2015-12-08 00:28:19 +02:00
sledgehammer999
8f6eb795e3 Follow project coding style. Issue #2192. 2015-12-08 00:28:19 +02:00
sledgehammer999
0a37799e6e Remove unused parameter. 2015-12-08 00:28:18 +02:00
buinsky
76d6d9a4f9 Implement torrent peers table in WebUI 2015-12-08 00:28:18 +02:00
buinsky
0c8abd0abb Implement sync/torrent_peers request 2015-12-08 00:28:18 +02:00
buinsky
ddc8420810 Follow project coding style. Issue #2192. 2015-12-08 00:28:17 +02:00
buinsky
a4ff039abc Rename 'context_menu' variable to 'torrents_table_context_menu' 2015-12-08 00:28:17 +02:00
buinsky
c8be062e19 Rename 'myTable' variable to 'torrentsTable' 2015-12-08 00:28:17 +02:00
buinsky
29443a2c10 Split the DynamicTable class into 2 classes 2015-12-08 00:28:16 +02:00
buinsky
e402556e91 Add seeds tab to WebUI 2015-12-08 00:28:16 +02:00
Vladimir Golovnev (Glassez)
4ed4ebcdb7 Rename Core to Base (Closes #3733). 2015-12-08 00:28:16 +02:00
Vladimir Golovnev (Glassez)
a280467270 Fix RSS isn't automarking articles as read
Closes: #4260, #4233, #4221, #4133
2015-12-08 00:28:15 +02:00
sledgehammer999
9b1090332b Use simpler DEFINE for detecting Qt5 so moc will work too. 2015-12-08 00:28:12 +02:00
Vladimir Golovnev (Glassez)
18a520c9f9 Remove unused LineEdit slot. Fix compiler warning. 2015-12-08 00:27:33 +02:00
Vladimir Golovnev (Glassez)
af871ef8af Fix wrong encoding for listen failed error message. 2015-12-08 00:24:21 +02:00
sledgehammer999
3af7eb8e03 Add clarifying comment. 2015-12-08 00:24:21 +02:00
sledgehammer999
3439300cda Partially revert b4c9c7cde. 2015-12-08 00:24:20 +02:00
Vladimir Golovnev (Glassez)
a8027565c9 Improve upgrade to v3.3. Fixes #4195. 2015-12-08 00:24:20 +02:00
Vladimir Golovnev (Glassez)
3d4e1a8127 Improve torrent export feature. Closes #4205. 2015-12-08 00:24:20 +02:00
Vladimir Golovnev (Glassez)
7b6a1a1955 Fix scan dirs settings saving. Closes #4254, #4239, #4187. 2015-12-08 00:24:19 +02:00
Chocobo1
3f8dc60680 Add CONTRIBUTING.md 2015-12-08 00:24:19 +02:00
vlakoff
9be449dd7f Support wildcards for filtering torrent list and torrent content 2015-12-08 00:24:19 +02:00
Chocobo1
c46f2ba097 Change text description for half-open connection 2015-12-08 00:24:19 +02:00
Chocobo1
c2c441ed08 Fix -1 is displayed instead of C_INFINITY symbol 2015-12-08 00:24:18 +02:00
Chocobo1
c1e52fa1cd Use QLineEdit built-in ClearButton (Qt5 only) 2015-12-08 00:24:18 +02:00
Chocobo1
fbed5dc606 Reduce mainwindow border width 2015-12-08 00:24:18 +02:00
Chocobo1
97978068c6 Cleanup "Content" page layout
Limit lineEdit maximum size
2015-12-08 00:24:17 +02:00
Chocobo1
006e34880a Cleanup "Peers" page layout
Cleanup "HTTP Sources" page layout
Cleanup "Speed" page layout
2015-12-08 00:24:17 +02:00
Chocobo1
1fd5c5d8b5 Cleanup "Trackers" page layout 2015-12-08 00:24:17 +02:00
takiz
68ac9fda2d "Set as default label" option 2015-12-08 00:24:16 +02:00
Naikel Aparicio
c5d807ef65 Cookies support on WebUI when downloading torrent from a URL. Modified download and upload windows to allow autocompletion of browsers.
Fixed the spinner in the WebUI upload page. Modified height of the WebUI download page.

Fixed all the JavaScript functions for download and upload pages.
2015-12-08 00:24:16 +02:00
sledgehammer999
e17f10ae6b Delete from the repo the qt4 translations used in the Windows installer. 2015-11-30 00:17:25 +02:00
sledgehammer999
78c5d1c12f Bump to v3.3.0 2015-11-29 21:57:06 +02:00
sledgehammer999
26fb54299b Update Transifex config file. 2015-11-29 21:54:06 +02:00
2422 changed files with 372416 additions and 940216 deletions

View File

@@ -1,81 +0,0 @@
Checks: >
bugprone-*,
cert-*,
concurrency-*,
cppcoreguidelines-*,
misc-*,
modernize-*,
performance-*,
portability-*,
readability-*,
-# not applicable at all,
-bugprone-easily-swappable-parameters,
-bugprone-implicit-widening-of-multiplication-result,
-bugprone-macro-parentheses,
-cppcoreguidelines-avoid-c-arrays,
-cppcoreguidelines-avoid-magic-numbers,
-cppcoreguidelines-avoid-non-const-global-variables,
-cppcoreguidelines-macro-usage,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-owning-memory,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-cppcoreguidelines-pro-bounds-constant-array-index,
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
-cppcoreguidelines-pro-type-const-cast,
-cppcoreguidelines-pro-type-reinterpret-cast,
-cppcoreguidelines-pro-type-union-access,
-cppcoreguidelines-pro-type-vararg,
-cppcoreguidelines-special-member-functions,
-cppcoreguidelines-virtual-class-destructor,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
-misc-unused-parameters,
-modernize-avoid-c-arrays,
-modernize-pass-by-value,
-modernize-use-auto,
-modernize-use-nodiscard,
-modernize-use-trailing-return-type,
-readability-function-cognitive-complexity,
-readability-function-size,
-readability-identifier-length,
-readability-implicit-bool-conversion,
-readability-isolate-declaration,
-readability-magic-numbers,
-readability-named-parameter,
-readability-redundant-access-specifiers,
-readability-simplify-boolean-expr,
-readability-uppercase-literal-suffix,
-# only sometimes useful,
-bugprone-narrowing-conversions,
-cert-dcl58-cpp,
-cert-err33-c,
-cert-err58-cpp,
-clang-analyzer-core.CallAndMessage,
-clang-analyzer-cplusplus.NewDelete,
-clang-analyzer-cplusplus.NewDeleteLeaks,
-concurrency-mt-unsafe,
-cppcoreguidelines-init-variables,
-cppcoreguidelines-narrowing-conversions,
-cppcoreguidelines-prefer-member-initializer,
-cppcoreguidelines-pro-type-static-cast-downcast,
-misc-definitions-in-headers,
-modernize-concat-nested-namespaces,
-modernize-loop-convert,
-modernize-raw-string-literal,
-modernize-unary-static-assert,
-performance-no-automatic-move,
-readability-convert-member-functions-to-static,
-readability-else-after-return,
-readability-redundant-declaration,
-# obsoleted,
-cert-dcl21-cpp
CheckOptions:
- { key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors, value: true }
- { key: modernize-use-override.IgnoreDestructors, value: true }
- { key: performance-for-range-copy.AllowedTypes, value: "QJsonValue" }
- { key: performance-for-range-copy.WarnOnAllAutoCopies, value: true }
- { key: readability-braces-around-statements.ShortStatementLines, value: 3 }
HeaderFilterRegex: ".+/src/.*\\.h"
WarningsAsErrors: "*"

View File

@@ -1,14 +0,0 @@
# EditorConfig is awesome: https://EditorConfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
[**.yml]
indent_size = 2

11
.gitattributes vendored
View File

@@ -1,10 +1,7 @@
core.eol=lf
* text eol=lf
*.icns binary
*.ico binary
*.png binary
*.qm binary
*.zip binary
dist/windows/license.txt text eol=crlf
test/testdata/crlf.txt text eol=crlf
*.png binary
*.ico binary
*.qm binary
*.icns binary

1
.github/FUNDING.yml vendored
View File

@@ -1 +0,0 @@
custom: "https://www.qbittorrent.org/donate.php"

View File

@@ -1,76 +0,0 @@
name: Bug Report
description: File a bug report to help improve qBittorrent user experience.
body:
- type: markdown
attributes:
value: |
#### ADVISORY
"We do not support any versions older than the current release series"
"We do not support any 3rd party/forked versions e.g. `portableapps`/`Enhanced Edition`etc."
"Please post all details in **English**."
#### Prerequisites before submitting an issue!
- Read the issue reporting section in the **[contributing guidelines](https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md)**, to know how to submit a good bug report with the required information.
- Verify that the issue is not fixed and is reproducible in the **[latest official qBittorrent version](https://www.qbittorrent.org/download.php).**
- (Optional, but recommended) Verify that the issue is not fixed and is reproducible in the latest CI (currently only on **[Windows](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_windows.yaml?query=branch%3Amaster+event%3Apush)**) builds.
- Check the **[frequent/common issues list](https://github.com/qbittorrent/qBittorrent/projects/2)** and perform a **[search of the issue tracker (including closed ones)](https://github.com/qbittorrent/qBittorrent/issues)** to avoid posting a duplicate.
- Make sure this is not a support request or question, both of which are better suited for either the **[discussions section](https://github.com/qbittorrent/qBittorrent/discussions)**, **[forum](https://qbforums.shiki.hu/)**, or **[subreddit](https://www.reddit.com/r/qBittorrent/)**.
- Verify that the **[wiki](https://github.com/qbittorrent/qBittorrent/wiki)** did not contain a suitable solution either.
- If relevant to issue/when asked, the qBittorrent preferences file, qBittorrent.log & watched_folders.json (if using "Watched Folders" feature) must be provided.
See **[Where does qBittorrent save its settings?](https://github.com/qbittorrent/qBittorrent/wiki/Frequently-Asked-Questions#Where_does_qBittorrent_save_its_settings)**
- type: textarea
attributes:
label: qBittorrent & operating system versions
description: |
Qt and libtorrent-rasterbar versions are required when: 1. You are using linux. 2. You are not using an official build downloaded from our website.
Example of preferred formatting:
qBittorrent: 4.3.7 x64
Operating system: Windows 10 Pro 21H1/2009 x64
Qt: 5.15.2
libtorrent-rasterbar: 1.2.14
placeholder: |
qBittorrent:
Operating system:
Qt:
libtorrent-rasterbar:
validations:
required: true
- type: textarea
attributes:
label: What is the problem?
description: Please add the "crash report" (if encountered) or give a clear and concise description of problem.
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: Please provide reliable steps to reproduce the problem.
placeholder: |
1. First step
2. Second step
3. and so on...
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add screenshots etc. (Anything that will provide more context about the problem)
validations:
required: false
- type: textarea
attributes:
label: Log(s) & preferences file(s)
description: |
Add these files: qBittorrent preferences file, qBittorrent.log & watched_folders.json (if using "Watched Folders" feature).
See **[Where does qBittorrent save its settings?](https://github.com/qbittorrent/qBittorrent/wiki/Frequently-Asked-Questions#Where_does_qBittorrent_save_its_settings)**
#### Note: It's the user's responsibility to redact any sensitive information
validations:
required: false

View File

@@ -1,17 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Wiki
url: "https://github.com/qbittorrent/qBittorrent/wiki/"
about: "Consult the wiki first (especially the FAQ), it might already contain the information you are looking for"
- name: Question
url: "https://github.com/qbittorrent/qBittorrent/discussions"
about: "Please ask questions related to usage/setup/support/non-issue development discussion in the Discussions section"
- name: Question
url: "http://forum.qbittorrent.org/"
about: "Alternatively, ask on the official forum"
- name: Question
url: "https://www.reddit.com/r/qBittorrent/"
about: "Alternatively, use the subreddit"

View File

@@ -1,37 +0,0 @@
name: Feature Request
description: Suggest a new feature or enhancement for qBittorrent.
labels: ["Feature request"]
body:
- type: markdown
attributes:
value: |
#### ADVISORY
"Please post all details in **English**."
#### Prerequisites before submitting a feature request!
- Read the feature request section in the **[contributing guidelines](https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md)**, to know how to submit a good feature request with the required information.
- Verify that the feature being requested is not available in the **[latest official qBittorrent version](https://www.qbittorrent.org/download.php).**
- (Optional but recommended) Verify that the feature being requested is not available in the latest CI (**[macOS](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_macos.yaml?query=branch%3Amaster+event%3Apush)** / **[Ubuntu](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_ubuntu.yaml?query=branch%3Amaster+event%3Apush)** / **[Windows](https://github.com/qbittorrent/qBittorrent/actions/workflows/ci_windows.yaml?query=branch%3Amaster+event%3Apush)**) builds.
- Search the issue tracker with the **[feature request filter](https://github.com/qbittorrent/qBittorrent/issues?q=is%3Aopen+is%3Aissue+label%3A%22Feature+request%22)** for similar feature requests (including closed ones) to avoid posting a duplicate.
- Make sure this is not a support request or question, both of which are better suited for either the **[discussions section](https://github.com/qbittorrent/qBittorrent/discussions)**, **[forum](https://qbforums.shiki.hu/)**, or **[subreddit](https://www.reddit.com/r/qBittorrent/)**.
- Verify that the **[wiki](https://github.com/qbittorrent/qBittorrent/wiki)** did not contain a suitable solution either.
- type: textarea
attributes:
label: Suggestion
validations:
required: false
- type: textarea
attributes:
label: Use case
validations:
required: false
- type: textarea
attributes:
label: Extra info/examples/attachments
description: Add screenshots etc. (Anything that will give us more context about what is being requested!)
validations:
required: false

View File

@@ -1,5 +0,0 @@
<!--
MANDATORY Before submitting your work, make sure you have:
1. Read https://github.com/qbittorrent/qBittorrent/blob/master/CONTRIBUTING.md#opening-a-pull-request
2. Delete this comment block
-->

18
.github/SUPPORT.md vendored
View File

@@ -1,18 +0,0 @@
# Support Resources
The issue tracker is only for bug reports/feature requests related to the project itself.
Please do not use the issue tracker for questions about general program usage,
how BitTorrent (the protocol) works in general, etc.
For such questions, use one of the following community support resources:
* The [discussions section][discussions-url]
* The [official forum][forum-url]
* The [qBittorrent subreddit][subreddit-url]
[discussions-url]: https://github.com/qbittorrent/qBittorrent/discussions
[forum-url]: http://forum.qbittorrent.org/
[subreddit-url]: https://www.reddit.com/r/qBittorrent/

View File

@@ -1,15 +0,0 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
commit-message:
prefix: "GHA CI"
groups:
github-actions:
patterns:
- "*"
labels:
- "CI"
schedule:
interval: "monthly"

View File

@@ -1,44 +0,0 @@
name: CI - File health
on: [pull_request, push]
permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.head_ref != '' }}
jobs:
ci:
name: Check
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install tools
uses: actions/setup-python@v5
with:
python-version: "*"
- name: Check files
uses: pre-commit/action@v3.0.1
- name: Check doc
env:
pandoc_path: "${{ github.workspace }}/../pandoc"
run: |
# install pandoc
curl \
-L \
-o "${{ runner.temp }}/pandoc.tar.gz" \
"https://github.com/jgm/pandoc/releases/download/3.1.7/pandoc-3.1.7-linux-amd64.tar.gz"
tar -xf "${{ runner.temp }}/pandoc.tar.gz" -C "${{ github.workspace }}/.."
mv "${{ github.workspace }}/.."/pandoc-* "${{ env.pandoc_path }}"
# run pandoc
for lang in doc/*/; do
"${{ env.pandoc_path }}/bin/pandoc" -f markdown -t man -s "$lang/qbittorrent.1.md" -o "$lang/qbittorrent.1"
"${{ env.pandoc_path }}/bin/pandoc" -f markdown -t man -s "$lang/qbittorrent-nox.1.md" -o "$lang/qbittorrent-nox.1"
done
# check diff, ignore "Automatically generated by ..." part
git diff -I '\.\\".*' --exit-code

View File

@@ -1,149 +0,0 @@
name: CI - macOS
on: [pull_request, push]
permissions:
actions: write
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.head_ref != '' }}
jobs:
ci:
name: Build
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
libt_version: ["2.0.10", "1.2.19"]
qbt_gui: ["GUI=ON", "GUI=OFF"]
qt_version: ["6.7.0"]
env:
boost_path: "${{ github.workspace }}/../boost"
libtorrent_path: "${{ github.workspace }}/../libtorrent"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
uses: Wandalen/wretry.action@v3
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
with:
attempt_delay: 20000
attempt_limit: 6
command: |
brew update > /dev/null
brew install \
cmake ninja \
openssl@3 zlib
- name: Setup ccache
uses: Chocobo1/setup-ccache-action@v1
with:
store_cache: ${{ github.ref == 'refs/heads/master' }}
update_packager_index: false
ccache_options: |
max_size=2G
- name: Install boost
env:
BOOST_MAJOR_VERSION: "1"
BOOST_MINOR_VERSION: "85"
BOOST_PATCH_VERSION: "0"
run: |
boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz"
boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz"
set +e
curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url"
tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?"
if [ "$_exitCode" -ne "0" ]; then
curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url2"
tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?"
fi
mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}"
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_version }}
archives: qtbase qtdeclarative qtsvg qttools
# Not sure why Qt made a hard dependency on qtdeclarative, try removing it when Qt > 6.4.0
cache: true
- name: Install libtorrent
run: |
git clone \
--branch v${{ matrix.libt_version }} \
--depth 1 \
--recurse-submodules \
https://github.com/arvidn/libtorrent.git \
${{ env.libtorrent_path }}
cd ${{ env.libtorrent_path }}
cmake \
-B build \
-G "Ninja" \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DBOOST_ROOT="${{ env.boost_path }}" \
-Ddeprecated-functions=OFF
cmake --build build
sudo cmake --install build
- name: Build qBittorrent
run: |
CXXFLAGS="$CXXFLAGS -Werror -Wno-error=deprecated-declarations" \
LDFLAGS="$LDFLAGS -gz" \
cmake \
-B build \
-G "Ninja" \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DBOOST_ROOT="${{ env.boost_path }}" \
-DTESTING=ON \
-DVERBOSE_CONFIGURE=ON \
-D${{ matrix.qbt_gui }}
cmake --build build --target qbt_update_translations
cmake --build build
cmake --build build --target check
- name: Prepare build artifacts
run: |
# create .dmg
appName="qbittorrent"
if [ "${{ matrix.qbt_gui }}" = "GUI=OFF" ]; then
appName="qbittorrent-nox"
fi
# package
pushd build
PACKAGE_RETRY=0
while [ "$PACKAGE_RETRY" -lt "3" ]; do
macdeployqt "$appName.app" -dmg -no-strip
if [ -f "$appName.dmg" ]; then
break
fi
sleep 5
PACKAGE_RETRY=$((PACKAGE_RETRY + 1))
echo "Retry $PACKAGE_RETRY..."
done
popd
# prepare upload folder
mkdir upload
cp "build/$appName.dmg" upload
mkdir upload/cmake
cp build/compile_commands.json upload/cmake
mkdir upload/cmake/libtorrent
cp ${{ env.libtorrent_path }}/build/compile_commands.json upload/cmake/libtorrent
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: qBittorrent-CI_macOS_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
path: upload

View File

@@ -1,89 +0,0 @@
name: CI - Python
on: [pull_request, push]
permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.head_ref != '' }}
jobs:
ci:
name: Check
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup python (auxiliary scripts)
uses: actions/setup-python@v5
with:
python-version: '3' # use default version
- name: Install tools (auxiliary scripts)
run: pip install bandit pycodestyle pyflakes
- name: Gather files (auxiliary scripts)
run: |
export "PY_FILES=$(find . -type f -name '*.py' ! -path '*searchengine*' -printf '%p ')"
echo $PY_FILES
echo "PY_FILES=$PY_FILES" >> "$GITHUB_ENV"
- name: Lint code (auxiliary scripts)
run: |
pyflakes $PY_FILES
bandit --skip B314,B405 $PY_FILES
- name: Format code (auxiliary scripts)
run: |
pycodestyle \
--max-line-length=1000 \
--statistics \
$PY_FILES
- name: Build code (auxiliary scripts)
run: |
python -m compileall $PY_FILES
- name: Setup python (search engine)
uses: actions/setup-python@v5
with:
python-version: '3.7'
- name: Install tools (search engine)
run: pip install bandit mypy pycodestyle pyflakes pyright
- name: Gather files (search engine)
run: |
export "PY_FILES=$(find . -type f -name '*.py' -path '*searchengine*' ! -name 'socks.py' -printf '%p ')"
echo $PY_FILES
echo "PY_FILES=$PY_FILES" >> "$GITHUB_ENV"
- name: Check typings (search engine)
run: |
MYPYPATH="src/searchengine/nova3" \
mypy \
--follow-imports skip \
--strict \
$PY_FILES
pyright \
$PY_FILES
- name: Lint code (search engine)
run: |
pyflakes $PY_FILES
bandit --skip B110,B310,B314,B405 $PY_FILES
- name: Format code (search engine)
run: |
pycodestyle \
--ignore=E265,E402 \
--max-line-length=1000 \
--statistics \
$PY_FILES
- name: Build code (search engine)
run: |
python -m compileall $PY_FILES

View File

@@ -1,170 +0,0 @@
name: CI - Ubuntu
on: [pull_request, push]
permissions:
actions: write
security-events: write
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.head_ref != '' }}
jobs:
ci:
name: Build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
libt_version: ["2.0.10", "1.2.19"]
qbt_gui: ["GUI=ON", "GUI=OFF"]
qt_version: ["6.5.2"]
env:
boost_path: "${{ github.workspace }}/../boost"
harden_flags: "-D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS"
libtorrent_path: "${{ github.workspace }}/../libtorrent"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt update
sudo apt install \
build-essential cmake ninja-build \
libssl-dev libxkbcommon-x11-dev libxcb-cursor-dev zlib1g-dev
- name: Setup ccache
uses: Chocobo1/setup-ccache-action@v1
with:
store_cache: ${{ github.ref == 'refs/heads/master' }}
update_packager_index: false
ccache_options: |
max_size=2G
- name: Install boost
env:
BOOST_MAJOR_VERSION: "1"
BOOST_MINOR_VERSION: "76"
BOOST_PATCH_VERSION: "0"
run: |
boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz"
boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz"
set +e
curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url"
tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?"
if [ "$_exitCode" -ne "0" ]; then
curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url2"
tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?"
fi
mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}"
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_version }}
archives: icu qtbase qtdeclarative qtsvg qttools
cache: true
- name: Install libtorrent
run: |
git clone \
--branch v${{ matrix.libt_version }} \
--depth 1 \
--recurse-submodules \
https://github.com/arvidn/libtorrent.git \
${{ env.libtorrent_path }}
cd ${{ env.libtorrent_path }}
CXXFLAGS="$CXXFLAGS ${{ env.harden_flags }}" \
cmake \
-B build \
-G "Ninja" \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DBOOST_ROOT="${{ env.boost_path }}" \
-Ddeprecated-functions=OFF
cmake --build build
sudo cmake --install build
# to avoid scanning 3rdparty codebases, initialize it just before building qbt
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
if: startsWith(matrix.libt_version, 2) && (matrix.qbt_gui == 'GUI=ON')
with:
config-file: ./.github/workflows/helper/codeql/cpp.yaml
languages: cpp
- name: Build qBittorrent
run: |
CXXFLAGS="$CXXFLAGS ${{ env.harden_flags }} -Werror" \
LDFLAGS="$LDFLAGS -gz" \
cmake \
-B build \
-G "Ninja" \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DBOOST_ROOT="${{ env.boost_path }}" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DTESTING=ON \
-DVERBOSE_CONFIGURE=ON \
-D${{ matrix.qbt_gui }}
cmake --build build --target qbt_update_translations
cmake --build build
cmake --build build --target check
DESTDIR="qbittorrent" cmake --install build
- name: Run CodeQL analysis
uses: github/codeql-action/analyze@v3
if: startsWith(matrix.libt_version, 2) && (matrix.qbt_gui == 'GUI=ON')
with:
category: ${{ github.base_ref || github.ref_name }}
- name: Prepare build artifacts
run: |
mkdir upload
mkdir upload/cmake
cp build/compile_commands.json upload/cmake
mkdir upload/cmake/libtorrent
cp ${{ env.libtorrent_path }}/build/compile_commands.json upload/cmake/libtorrent
- name: Install AppImage
run: |
sudo apt install libfuse2
curl \
-L \
-Z \
-O https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-static-x86_64.AppImage \
-O https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-static-x86_64.AppImage \
-O https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage
chmod +x \
linuxdeploy-static-x86_64.AppImage \
linuxdeploy-plugin-qt-static-x86_64.AppImage \
linuxdeploy-plugin-appimage-x86_64.AppImage
- name: Prepare files for AppImage
if: matrix.qbt_gui == 'GUI=OFF'
run: |
mkdir -p qbittorrent/usr/share/applications
cp .github/workflows/helper/appimage/org.qbittorrent.qBittorrent.desktop qbittorrent/usr/share/applications/org.qbittorrent.qBittorrent.desktop
mkdir -p qbittorrent/usr/share/icons/hicolor/scalable/apps
cp dist/unix/menuicons/scalable/apps/qbittorrent.svg qbittorrent/usr/share/icons/hicolor/scalable/apps/qbittorrent.svg
- name: Package AppImage
run: |
./linuxdeploy-static-x86_64.AppImage --appdir qbittorrent --plugin qt
rm qbittorrent/apprun-hooks/*
cp .github/workflows/helper/appimage/export_vars.sh qbittorrent/apprun-hooks/export_vars.sh
NO_APPSTREAM=1 \
OUTPUT=upload/qbittorrent-CI_Ubuntu_x86_64.AppImage \
./linuxdeploy-static-x86_64.AppImage --appdir qbittorrent --output appimage
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: qBittorrent-CI_Ubuntu-x64_${{ matrix.qbt_gui }}_libtorrent-${{ matrix.libt_version }}_Qt-${{ matrix.qt_version }}
path: upload

View File

@@ -1,48 +0,0 @@
name: CI - WebUI
on: [pull_request, push]
permissions:
security-events: write
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.head_ref != '' }}
jobs:
ci:
name: Check
runs-on: ubuntu-latest
defaults:
run:
working-directory: src/webui/www
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup nodejs
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install tools
run: npm install
- name: Lint code
run: npm run lint
- name: Format code
run: |
npm run format
git diff --exit-code
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
config-file: .github/workflows/helper/codeql/js.yaml
languages: javascript
- name: Run CodeQL analysis
uses: github/codeql-action/analyze@v3

View File

@@ -1,198 +0,0 @@
name: CI - Windows
on: [pull_request, push]
permissions:
actions: write
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: ${{ github.head_ref != '' }}
jobs:
ci:
name: Build
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
libt_version: ["2.0.10", "1.2.19"]
env:
boost_path: "${{ github.workspace }}/../boost"
libtorrent_path: "${{ github.workspace }}/../libtorrent"
vcpkg_path: "c:/vcpkg"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup devcmd
uses: ilammy/msvc-dev-cmd@v1
- name: Install build tools
run: |
if ((Get-Command "ninja.exe" -ErrorAction SilentlyContinue) -eq $null)
{
choco install ninja
}
where.exe ninja
ninja --version
# https://learn.microsoft.com/en-us/vcpkg/users/binarycaching#gha
- name: Set variables for vcpkg
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', (process.env.ACTIONS_CACHE_URL || ''));
core.exportVariable('ACTIONS_RUNTIME_TOKEN', (process.env.ACTIONS_RUNTIME_TOKEN || ''));
- name: Install dependencies with vcpkg
run: |
# create our own triplet
New-Item `
-Force `
-ItemType File `
-Path "${{ env.vcpkg_path }}/triplets_overlay/x64-windows-static-md-release.cmake"
# OpenSSL isn't compatible with `/guard:cf` flag so we omit it for now, see: https://github.com/openssl/openssl/issues/22554
Add-Content `
-Path "${{ env.vcpkg_path }}/triplets_overlay/x64-windows-static-md-release.cmake" `
-Value @("set(VCPKG_TARGET_ARCHITECTURE x64)",
"set(VCPKG_LIBRARY_LINKAGE static)",
"set(VCPKG_CRT_LINKAGE dynamic)",
"set(VCPKG_BUILD_TYPE release)")
# clear buildtrees after each package installation to reduce disk space requirements
$packages = `
"openssl:x64-windows-static-md-release",
"zlib:x64-windows-static-md-release"
${{ env.vcpkg_path }}/vcpkg.exe upgrade `
--no-dry-run `
--overlay-triplets="${{ env.vcpkg_path }}/triplets_overlay"
${{ env.vcpkg_path }}/vcpkg.exe install `
--binarysource="clear;x-gha,readwrite" `
--clean-after-build `
--overlay-triplets="${{ env.vcpkg_path }}/triplets_overlay" `
$packages
- name: Install boost
env:
BOOST_MAJOR_VERSION: "1"
BOOST_MINOR_VERSION: "85"
BOOST_PATCH_VERSION: "0"
run: |
$boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz"
$boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz"
curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url"
tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."
if ($LastExitCode -ne 0)
{
curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url2"
tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."
}
move "${{ github.workspace }}/../boost_*" "${{ env.boost_path }}"
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: "6.7.3"
archives: qtbase qtsvg qttools
cache: true
- name: Install libtorrent
run: |
git clone `
--branch v${{ matrix.libt_version }} `
--depth 1 `
--recurse-submodules `
https://github.com/arvidn/libtorrent.git `
${{ env.libtorrent_path }}
cd ${{ env.libtorrent_path }}
$env:CXXFLAGS+=" /guard:cf"
$env:LDFLAGS+=" /guard:cf"
cmake `
-B build `
-G "Ninja" `
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
-DCMAKE_INSTALL_PREFIX="${{ env.libtorrent_path }}/install" `
-DCMAKE_TOOLCHAIN_FILE="${{ env.vcpkg_path }}/scripts/buildsystems/vcpkg.cmake" `
-DBOOST_ROOT="${{ env.boost_path }}" `
-DBUILD_SHARED_LIBS=OFF `
-Ddeprecated-functions=OFF `
-Dstatic_runtime=OFF `
-DVCPKG_TARGET_TRIPLET=x64-windows-static-md-release
cmake --build build
cmake --install build
- name: Build qBittorrent
run: |
$env:CXXFLAGS+=" /WX"
cmake `
-B build `
-G "Ninja" `
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON `
-DCMAKE_TOOLCHAIN_FILE="${{ env.vcpkg_path }}/scripts/buildsystems/vcpkg.cmake" `
-DBOOST_ROOT="${{ env.boost_path }}" `
-DLibtorrentRasterbar_DIR="${{ env.libtorrent_path }}/install/lib/cmake/LibtorrentRasterbar" `
-DMSVC_RUNTIME_DYNAMIC=ON `
-DTESTING=ON `
-DVCPKG_TARGET_TRIPLET=x64-windows-static-md-release `
-DVERBOSE_CONFIGURE=ON `
--graphviz=build/target_graph.dot
cmake --build build --target qbt_update_translations
cmake --build build
cmake --build build --target check
- name: Prepare build artifacts
run: |
mkdir upload
mkdir upload/qBittorrent
copy build/qbittorrent.exe upload/qBittorrent
copy build/qbittorrent.pdb upload/qBittorrent
copy dist/windows/qt.conf upload/qBittorrent
# runtimes
copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Core.dll" upload/qBittorrent
copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Gui.dll" upload/qBittorrent
copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Network.dll" upload/qBittorrent
copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Sql.dll" upload/qBittorrent
copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Svg.dll" upload/qBittorrent
copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Widgets.dll" upload/qBittorrent
copy "${{ env.Qt_ROOT_DIR }}/bin/Qt6Xml.dll" upload/qBittorrent
mkdir upload/qBittorrent/plugins/iconengines
copy "${{ env.Qt_ROOT_DIR }}/plugins/iconengines/qsvgicon.dll" upload/qBittorrent/plugins/iconengines
mkdir upload/qBittorrent/plugins/imageformats
copy "${{ env.Qt_ROOT_DIR }}/plugins/imageformats/qico.dll" upload/qBittorrent/plugins/imageformats
copy "${{ env.Qt_ROOT_DIR }}/plugins/imageformats/qsvg.dll" upload/qBittorrent/plugins/imageformats
mkdir upload/qBittorrent/plugins/platforms
copy "${{ env.Qt_ROOT_DIR }}/plugins/platforms/qwindows.dll" upload/qBittorrent/plugins/platforms
mkdir upload/qBittorrent/plugins/sqldrivers
copy "${{ env.Qt_ROOT_DIR }}/plugins/sqldrivers/qsqlite.dll" upload/qBittorrent/plugins/sqldrivers
mkdir upload/qBittorrent/plugins/styles
copy "${{ env.Qt_ROOT_DIR }}/plugins/styles/qmodernwindowsstyle.dll" upload/qBittorrent/plugins/styles
mkdir upload/qBittorrent/plugins/tls
copy "${{ env.Qt_ROOT_DIR }}/plugins/tls/qschannelbackend.dll" upload/qBittorrent/plugins/tls
# cmake additionals
mkdir upload/cmake
copy build/compile_commands.json upload/cmake
copy build/target_graph.dot upload/cmake
mkdir upload/cmake/libtorrent
copy ${{ env.libtorrent_path }}/build/compile_commands.json upload/cmake/libtorrent
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: qBittorrent-CI_Windows-x64_libtorrent-${{ matrix.libt_version }}
path: upload
- name: Create installer
run: |
7z x -o"dist/windows/" "dist/windows/NSISPlugins.zip"
makensis /DQBT_DIST_DIR="../../upload/qBittorrent" /WX dist/windows/qbittorrent.nsi
- name: Upload installer
uses: actions/upload-artifact@v4
with:
name: qBittorrent-CI_Windows-x64_libtorrent-${{ matrix.libt_version }}-setup
path: dist/windows/qbittorrent_*_setup.exe

View File

@@ -1,115 +0,0 @@
name: Coverity Scan
on:
schedule:
- cron: '0 0 1 * *' # Monthly (1st day of month at midnight)
workflow_dispatch: # Mainly for testing. Don't forget the Coverity usage limits.
permissions: {}
jobs:
coverity_scan:
name: Scan
runs-on: ubuntu-latest
strategy:
matrix:
libt_version: ["2.0.10"]
qbt_gui: ["GUI=ON"]
qt_version: ["6.5.2"]
env:
boost_path: "${{ github.workspace }}/../boost"
coverity_path: "${{ github.workspace }}/../coverity"
libtorrent_path: "${{ github.workspace }}/../libtorrent"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt update
sudo apt install \
build-essential cmake ninja-build \
libssl-dev libxkbcommon-x11-dev libxcb-cursor-dev zlib1g-dev
- name: Install boost
env:
BOOST_MAJOR_VERSION: "1"
BOOST_MINOR_VERSION: "85"
BOOST_PATCH_VERSION: "0"
run: |
boost_url="https://boostorg.jfrog.io/artifactory/main/release/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/source/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz"
boost_url2="https://sourceforge.net/projects/boost/files/boost/${{ env.BOOST_MAJOR_VERSION }}.${{ env.BOOST_MINOR_VERSION }}.${{ env.BOOST_PATCH_VERSION }}/boost_${{ env.BOOST_MAJOR_VERSION }}_${{ env.BOOST_MINOR_VERSION }}_${{ env.BOOST_PATCH_VERSION }}.tar.gz"
set +e
curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url"
tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?"
if [ "$_exitCode" -ne "0" ]; then
curl -L -o "${{ runner.temp }}/boost.tar.gz" "$boost_url2"
tar -xf "${{ runner.temp }}/boost.tar.gz" -C "${{ github.workspace }}/.."; _exitCode="$?"
fi
mv "${{ github.workspace }}/.."/boost_* "${{ env.boost_path }}"
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_version }}
archives: icu qtbase qtdeclarative qtsvg qttools
cache: true
- name: Install libtorrent
run: |
git clone \
--branch v${{ matrix.libt_version }} \
--depth 1 \
--recurse-submodules \
https://github.com/arvidn/libtorrent.git \
${{ env.libtorrent_path }}
cd ${{ env.libtorrent_path }}
cmake \
-B build \
-G "Ninja" \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DBOOST_ROOT="${{ env.boost_path }}" \
-Ddeprecated-functions=OFF
cmake --build build
sudo cmake --install build
- name: Download Coverity Build Tool
run: |
curl \
-L \
-d "token=${{ secrets.COVERITY_SCAN_TOKEN }}&project=qbittorrent%2FqBittorrent" \
-o "${{ runner.temp }}/coverity_tool.tgz" \
"https://scan.coverity.com/download/linux64"
mkdir -p ${{ env.coverity_path }}
tar \
-xf "${{ runner.temp }}/coverity_tool.tgz" \
-C "${{ env.coverity_path }}" \
--strip-components 1
- name: Build qBittorrent
run: |
cmake \
-B build \
-G "Ninja" \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DBOOST_ROOT="${{ env.boost_path }}" \
-DVERBOSE_CONFIGURE=ON \
-D${{ matrix.qbt_gui }}
PATH="${{ env.coverity_path }}/bin:$PATH" \
cov-build \
--dir cov-int \
cmake --build build
- name: Submit the result to Coverity Scan
run: |
tar -caf qbittorrent.xz cov-int
curl \
--form token="${{ secrets.COVERITY_SCAN_TOKEN }}" \
--form email=sledgehammer999@qbittorrent.org \
--form file=@qbittorrent.xz \
--form version="$(git rev-parse --short HEAD)" \
--form description="master" \
https://scan.coverity.com/builds?project=qbittorrent%2FqBittorrent

View File

@@ -1,13 +0,0 @@
#!/bin/sh
# this file is called from AppRun so 'root_dir' will point to where AppRun is
root_dir="$(readlink -f "$(dirname "$0")")"
# Insert the default values because after the test we prepend our path
# and it will create problems with DEs (eg KDE) that don't set the variable
# and rely on the default paths
if [ -z "${XDG_DATA_DIRS}" ]; then
XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
fi
export XDG_DATA_DIRS="${root_dir}/usr/share:${XDG_DATA_DIRS}"

View File

@@ -1,6 +0,0 @@
[Desktop Entry]
Name=qBittorrent
Exec=qbittorrent-nox %U
Icon=qbittorrent
Type=Application
Categories=Network

View File

@@ -1,14 +0,0 @@
name: "CodeQL config for C++"
queries:
- uses: security-and-quality
query-filters:
- exclude:
id: cpp/commented-out-code
- exclude:
id: cpp/include-non-header
- exclude:
id: cpp/loop-variable-changed
- exclude:
id: cpp/useless-expression

View File

@@ -1,11 +0,0 @@
name: "CodeQL config for Javascript"
paths-ignore:
- "**/lib/*"
queries:
- uses: security-and-quality
query-filters:
- exclude:
id: js/superfluous-trailing-arguments

View File

@@ -1,18 +0,0 @@
# https://github.com/crate-ci/typos/blob/master/docs/reference.md
# https://github.com/crate-ci/typos/blob/master/docs/design.md#identifiers-and-words
# try adding to `identifiers` list first, if doesn't work then `words` list
[default.extend-identifiers]
additionals = "additionals"
caf = "caf"
curren = "curren"
FO = "FO"
ket = "ket"
Q_INVOKABLE = "Q_INVOKABLE"
switchs = "switchs"
ths = "ths"
[default.extend-words]
BA = "BA"
helo = "helo"

View File

@@ -1,70 +0,0 @@
#!/usr/bin/env python3
# A pre-commit hook for detecting problematic <translation> tags
# Copyright (C) 2021 Mike Tzou (Chocobo1)
#
# 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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give permission to
# link this program with the OpenSSL project's "OpenSSL" library (or with
# modified versions of it that use the same license as the "OpenSSL" library),
# and distribute the linked executables. You must obey the GNU General Public
# License in all respects for all of the code used other than "OpenSSL". If you
# modify file(s), you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete this
# exception statement from your version.
from typing import Optional, Sequence
import argparse
import re
def main(argv: Optional[Sequence[str]] = None) -> int:
parser = argparse.ArgumentParser()
parser.add_argument('filenames', nargs='*', help='Filenames to check')
args = parser.parse_args(argv)
error_msg = ""
regex = re.compile(r"\s*</translation>")
for filename in args.filenames:
line_counter = 1
error_buffer = ""
with open(filename) as file:
try:
for line in file:
if (match := regex.match(line)) is not None:
error_buffer += str(f"Defect file: \"{filename}\"\n"
f"Line: {line_counter}\n"
f"Column span: {match.span()}\n"
f"Part: \"{match.group()}\"\n\n")
line_counter += 1
except UnicodeDecodeError:
# not a text file, skip
continue
error_msg += error_buffer
if len(error_msg) > 0:
print(error_msg)
return 1
return 0
if __name__ == '__main__':
exit(main())

View File

@@ -1,25 +0,0 @@
name: Stale bot
on:
schedule:
- cron: '0 0 * * *'
permissions:
pull-requests: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- name: Mark and close stale PRs
uses: actions/stale@v9
with:
stale-pr-message: "This PR is stale because it has been 60 days with no activity. This PR will be automatically closed within 7 days if there is no further activity."
close-pr-message: "This PR was closed because it has been stalled for some time with no activity."
days-before-stale: -1 # avoid marking issues
days-before-pr-stale: 60
days-before-close: -1 # avoid closing issues
days-before-pr-close: 7
exempt-all-pr-assignees: true # avoid stale for all PR with assignees
exempt-all-pr-milestones: true # avoid stale for all PR with milestones
operations-per-run: 200

17
.gitignore vendored
View File

@@ -1,12 +1,9 @@
.vscode/
src/gui/geoip/GeoIP.dat
src/gui/geoip/GeoIP.dat.gz
src/qbittorrent
src/qbittorrent-nox
src/release
src/debug
src/base/version.h
CMakeLists.txt.user*
qbittorrent.pro.user*
conf.pri
Makefile*
@@ -17,15 +14,13 @@ Makefile*
*.o
*.pdb
*.exe
*.dll
# Generated MOC, resource and UI files
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
*.moc
*.qm
src/lang/qbittorrent_*.qm
.DS_Store
.qmake.stash
src/qbittorrent.app
@@ -35,13 +30,3 @@ src/qbittorrent.app
aclocal.m4
autom4te.cache/*
config.status
src/icons/qbt-theme/build-icons/node_modules/
src/icons/skin/build-icons/node_modules/
src/icons/skin/build-icons/icons/*.png
# CMake build directory
build/
# Web UI tools
node_modules
package-lock.json

View File

@@ -1,109 +0,0 @@
repos:
- repo: local
hooks:
- id: check-translation-tag
name: Check newline characters in <translation> tag
entry: .github/workflows/helper/pre-commit/check_translation_tag.py
language: script
exclude: |
(?x)^(
src/lang/.*
)$
types_or:
- ts
- repo: https://github.com/pre-commit/pre-commit-hooks.git
rev: v4.5.0
hooks:
- id: check-json
name: Check JSON files
- id: check-yaml
name: Check YAML files
- id: fix-byte-order-marker
name: Check file encoding (UTF-8 without BOM)
exclude: |
(?x)^(
src/base/unicodestrings.h
)$
- id: mixed-line-ending
name: Check line ending character (LF)
args: ["--fix=lf"]
exclude: |
(?x)^(
src/webui/www/private/css/lib/.* |
src/webui/www/private/scripts/lib/.* |
dist/windows/license.txt |
test/testdata/crlf.txt
)$
- id: end-of-file-fixer
name: Check trailing newlines
exclude: |
(?x)^(
configure |
src/webui/www/private/css/lib/.* |
src/webui/www/private/scripts/lib/.* |
test/testdata/crlf.txt
)$
exclude_types:
- svg
- ts
- id: trailing-whitespace
name: Check trailing whitespaces
exclude: |
(?x)^(
src/webui/www/private/css/lib/.* |
src/webui/www/private/scripts/lib/.*
)$
exclude_types:
- ts
- repo: https://github.com/codespell-project/codespell.git
rev: v2.2.6
hooks:
- id: codespell
name: Check spelling (codespell)
args: ["--ignore-words-list", "additionals,curren,fo,ist,ket,searchin,superseeding,te,ths"]
exclude: |
(?x)^(
.*\.desktop |
.*\.qrc |
build-aux/.* |
Changelog |
dist/windows/installer-translations/.* |
m4/.* |
src/base/3rdparty/.* |
src/searchengine/nova3/socks.py |
src/webui/www/private/scripts/lib/.*
)$
exclude_types:
- ts
- repo: https://github.com/crate-ci/typos.git
rev: v1.16.18
hooks:
- id: typos
name: Check spelling (typos)
args: ["--config", ".github/workflows/helper/pre-commit/.typos.toml"]
exclude: |
(?x)^(
.*\.asc |
.*\.desktop |
.*\.qrc |
\.pre-commit-config\.yaml |
build-aux/.* |
Changelog |
configure.* |
dist/windows/installer-translations/.* |
m4/.* |
src/base/3rdparty/.* |
src/searchengine/nova3/socks.py |
src/webui/www/private/scripts/lib/.*
)$
exclude_types:
- svg
- ts

152
.travis.yml Normal file
View File

@@ -0,0 +1,152 @@
language: cpp
os:
- linux
- osx
osx_image: xcode7
env:
matrix:
# Uncomment when Travis upgraded "Ubuntu 12.04 LTS" to a newer version whose repo will have a more up-to-date libtorrent package
#- lt_branch=dist gui=true
#- lt_branch=dist gui=false
- lt_branch=RC_1_0 qt=5 gui=true
- lt_branch=RC_1_0 qt=5 gui=false
- lt_branch=RC_1_0 qt=4 gui=true
- lt_branch=RC_1_0 qt=4 gui=false
global:
- secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8="
- coverity_branch: coverity_scan
branches:
except:
- search_encoding_windows
- v2_9_x
notifications:
email:
on_success: change
on_failure: change
# container-based builds
#sudo: false
cache: ccache
# opt-in Ubuntu Trusty
sudo: required
dist: trusty
addons:
coverity_scan:
project:
name: "qbittorrent/qBittorrent"
description: "Build submitted via Travis CI"
build_command_prepend: "./bootstrap.sh && ./configure $qbtconf"
build_command: make
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
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
before_install:
# only allow specific build for coverity scan, others will stop
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [ "$TRAVIS_OS_NAME" = "linux" -a "$lt_branch" = "RC_1_0" -a "$gui" = true ]; then exit ; fi
- shopt -s expand_aliases
- alias make="colormake -j3" # Using nprocs/2 sometimes may fail (gcc is killed by system)
#- 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"
# options for specific branches
- if [ "$qt" = 4 ]; then qbtconf="$qbtconf --with-qt4" ; fi
- if [ "$gui" = false ]; then qbtconf="$qbtconf --disable-gui" ; fi
- |
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" ;
fi
# print settings
- echo $lt_branch
- echo $gui
- echo $ltconf
- 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 ;
# 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
- |
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
# dependencies
brew update > /dev/null && brew install colormake ccache libtorrent-rasterbar ;
# 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.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/^\(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/" && macdeployqt "$qbt_exe.app" && cd "$qbt_exe.app/Contents/MacOS" ; fi
- ./$qbt_exe --version
after_script:
- if [ "$use_ccache" = true ]; then ccache --show-stats ; fi

View File

@@ -1,24 +1,19 @@
[main]
host = https://www.transifex.com
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_v50x]
[qbittorrent.qbittorrent_v3_3_x]
file_filter = src/lang/qbittorrent_<lang>.ts
lang_map = pt: pt_PT
source_file = src/lang/qbittorrent_en.ts
source_lang = en
type = QT
minimum_perc = 23
lang_map = pt: pt_PT, zh: zh_CN
mode = developer
[o:sledgehammer999:p:qbittorrent:r:qbittorrent_webui_v50x]
file_filter = src/webui/www/translations/webui_<lang>.ts
source_file = src/webui/www/translations/webui_en.ts
source_lang = en
type = QT
minimum_perc = 23
lang_map = pt: pt_PT, zh: zh_CN
[o:sledgehammer999:p:qbittorrent:r:qbittorrentdesktop_master]
source_file = dist/unix/org.qbittorrent.qBittorrent.desktop
[qbittorrent.qbittorrentdesktop_master]
source_file = src/icons/qBittorrent.desktop
source_lang = en
type = DESKTOP
minimum_perc = 23
mode = developer

View File

@@ -26,67 +26,28 @@ HiShCTSSDBJqFmhfjrCo0nISKnzyxgO/rY9vFlwXsKkTyL7s53ONkjwK34WmGnya
tXdjBWShzAiTfF5hephfBSszmoBG2C8Jcu6P5n4buBY4RCsEa+6jE0R1vCtmpVwx
WrXOeN2kGYMpAkPK1L69Le0FofgUDKlaFMv7KRl4R367xNRukYrsKwVlontJ+Y72
X5t1BeRn8VSp0IzhssNXM8a4bTE8lvs889DOS2vgWEHIi0iyIesJYWPs4AKUw4rG
EDwWxtTS0a7Rfx3DxLRWc2xlZGdlaGFtbWVyOTk5IChVc2VkIGZvciBzaWduaW5n
IGdpdCBjb21taXRzL3RhZ3MvZXRjLikgPGhhbW1lcmVkOTk5QHFiaXR0b3JyZW50
Lm9yZz6JAh8EMAEIAAkFAlhie1ICHQAACgkQbkotAlt8yaILIhAAp25o1BbUG2Zk
At3cSrTFnZSCA7nEygbSUv1Uek33JZfY0Apw5qEM8lQCMZk+mhdrSQCYUJcQlruN
zJcJf4CH+VGE23xkI3Kf0nGp9Cjn/q6b1hLIPe5rimvw5pTAejFtebcYY/ZJIB8Z
H1ebuzfqBZ/9k7eYTarZ/ZsgG8YptB0RXBQWOMaSEKwdeo2m7HXHgK3blQiqbuJJ
uyPbid01Wus4AVN47/FKgDNswPs8irYZsu5yakgpi2KLycGDtSiN5XFHI4xbC0zM
srR7Cz0/fC+klhGcuxbw0V0It7UUIitgCcTPHXkukUU8i2+AGMyKa1HjchsXDdLg
DIs6KIurp2ve7znKOz7h1aX8cOBmB/QYeYAx9jRRkePMIRT8V1lRwfvJlJxx1+G3
e2gJLjqTN8a08KHHjdY/S0ZFERxSlmOym2uf/y6di1ipDPxo8xvDuS5kDbdZLC0t
XijlsH8ONK27KNuWhucG8zHzKQvnPw2qN06SZq4FjbSmAkkuYs56heLEXMzFr75k
SE8rUoQQ+ABG9gU46GEvKlZxqSwXgGnb1X6K7h8svjMh/NlAU358p8Sra4Ru5tz4
jUu9MoVEw5Lbjcrsnp6/4Kk1Q2ckBNt43nv8/+C7NsC3xi6BrOInuaKHZ4QsTuzJ
m1/A4zlKRnUi6T98DXfIYnNuV9NSmAWJAjkEEwEIACMFAlhiemMCGwMHCwkIBwMC
AQYVCAIJCgsEFgIDAQIeAQIXgAAKCRBuSi0CW3zJor6yD/9N2U0INx0nYpGkmvah
yVG/vw2S6hhKK+03AN+RrtddNRg4aBf/gmOvRWQhAmFnXOBA7fO09wgcljaV5tVb
MYyYZvHhK0o2/sli2p/M5N8ZxchRHypjxUSEyG9ZQ06QG5DVhh4HtM8nIN+UcwTV
C5QjyoWZvHf+tNroyFeh7zT+w4kX1VxgynTQr5LGdYsrVA3CFyT3zsBWV3dMae23
22CHOirsBBLwairHUsWW+BdThT3MkKYpTEV0jkH4OyAXhJYcS5IjjtKQ8UpZE9dw
f4saJ0TnXNe7goPRZtH7UjPwfVbtYK4y8QklWUTRxgoBxNwSC5X7Flg+3xXxE/VU
U4cehyRkH64i7MJDoFkqh5JtjkgIz+kuTTXb7xR0Wf+JXrGMybZTR8xth2TEMC20
1FT5L5+0vH1WRzL7bhlaU3EXyCnoH8sDvMEClZbibbew+rf7fC3tFU41ohUT0HDl
zlyfVjRvBHWMTgfpWKBV2m/qP941xTJ9VHxOlAB02XKUZYwFt07CpH+yjMOCOzA4
cTPBD3mGRuft0V0BJ8bA5bcTly/GBciRX0Y5oIeHZGgq2czb0sywSYT6mPoQMFNM
B+Cwr4pm90r1DMMfW518onF2itwyN/Id0FsWDhsLJHKluBJw52C3OnxCuToVutTm
xntqpPVv62LaeVeWQqxIieTJErRQc2xlZGdlaGFtbWVyXzk5OSAoVXNlZCBmb3Ig
c2lnbmluZyBnaXQgY29tbWl0cy90YWdzL2V0YykgPGhhbW1lcmVkOTk5QGdtYWls
LmNvbT6JAjkEEwEIACMFAlhifeICGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIX
gAAKCRBuSi0CW3zJolcCD/9xPBNEkFtnhTW89th0TFZnB5oykCQjyefquvQs8KWT
C92/1VizHi4ZxDehHWP9IKVWT3ZJthj5ZXBSedyl1tHnwkyrUYBW9roQwtDWPncK
pXl/HsE6p3q6EIus+g6YJo4UvYachJFAZATZp1WDBPIswziHGzaL0tndFWZuVM8V
QD0tfPQsS1qCDVv6+B1JWZDnA1JzdSG/uzPhL95q/ff6JmNbfSAVedK2PyqYshnC
KWBx6Yna/0ColBuDFho8+bDuHPQcM35xyjPosVD7moXQiY4yMAJ+VzwEBaCFleI0
RBWw8/+qyoFqfIKwdq8G+7I9LjWpBiN2+uQBZ+OAvsMWyRShLopxt3JluPTtL6xb
Ca6dglOdlaOS/A6FK7u05k/8kQMDS5Jq2/rpfTPRl1/weCaJZgfRIBosk1Mon/pR
p1zd0abM4t7BcGQpwSkKAmqlKCrWf886EFQT0CJTBo8q7pzgpVraWWPVsmAOdkfU
YcKBgz1A2uMSAxypkSzaDZkIVj6I7gwiGk7IMYx1OK7Ev46h/x4Z7kgT0y3DYYOq
ggVEKQ+15Krn7bZ35s8vbZdfnVKPSXdCC8jkIMBmGmRX6cgZZ3OXZlrrHht5icgJ
5Z2d1M4JUoEZVUr2xNZkkaMk01NAIpGgKvIS6yHuj6vE4GMJ+A/qEW6J60/3YHRe
0bkCDQRXDSCMARAAqMIVJizEJp205c546IN75xeYiFszNXcs3768IY8bOoWj+rTw
t2wIwtL/3O5K2dG79CSt2H5o6BPKmq43tOO60YW3Yk3m9BB/gnAVqk0QOPr5O8+y
eBzdElU8CZh6y6zZMWugSkNmTDm6jZzPhgNjcjrit/dl9+0DGqJQcqoD8WzEWNcW
rMHVz9cDewnLSVkwR758mZMaIiL7R10MZ++tNrC0j69UINqx+9z1r1J07+NNnxqS
TxVRcbjPYtM9E+tUiVFS2HPWN9ShVDkBAEdoWh90qzRaMiFl2NGNGOD1iHx/xr06
RMeGEEXt2vhSlhfMW2YQW+UD2jzlFbARf53v39MUKKscGuIpBhxGw3JCq4l6qLW/
bDkgnoXlOhZDmhQm6OpsjAyk9IEdd3ponSc7yYD3mUkJKR9eTaALD5t6TQGyNHak
b4UfoXtE2RR78cbPlLIwag7eQ8GsNA+dfjowmOZdojx3ROsHZdGQwb0YFLjuKAus
A3TY+lCfbS6kzE2iI2DuaW+3dICcLrYuibbVb0CBNHyD+8KEtczdur/wm0lhqyVJ
kGyZKZT8C2cPxywKgy1Rn6F8Yfmj0Lna3nvtaZu0ZUS4/8Lit5PcOso1lSmYBuD6
yq+GEAMCnUmn1Pm8eZRMlxxQuTPvyJKQrRDhbtAAr472MSnoJKlS4SfaUF0AEQEA
AYkCHwQYAQgACQUCVw0gjAIbDAAKCRBuSi0CW3zJomZDD/9IJmzd5hiEzntlp84p
yIJcfyIRe4KImvldAy6T02OSIbF1HzCNnwmqIPob6MOdMZ+KNwMK0htRkrRr/zM0
34+lBiWKZt+tVYHu49ioTYXEjAc5qDJE09Sq7HceQnhgE48f1n54XGT5G2w5gw+/
a8Qn1SceE44VwXafL3E1gKaOrrsb1UH/AJhp+W4VMu+7bLXu7h1tN6v2PhvCYvBt
3zyy8Q8xfJ2x7/D1lbF8ATJAiZ/km9x5bRm7OGRliVYaUe1nyR42fZOj3CBmAR0+
lZLgjriqdMXrs+qlBbrmAhkn0XPQXAeaPifKoKIGDAUWIsqDHqM7imMGT+MR9APf
Sw8M4enOJWL+HnKpVBEARCEDpaFpJ3u7QRucFybpEhvIymoNftyw+urId2Eg2K33
NypeZo3M1K2LC65f2Ta7f/sZcIDUTbgW+m334fgVl1KptDA5DX3U9lTci7mi4uPu
AFtbWrB1di4jYrxXYuzFm5g4xTb0Hw3kYIB6WXF+I7i0JaGOTHxPC5X5lIAZrYrk
xh+1n1Y1CY+TC8JcTzwORJIbFFm9tD/BHXa4849k4DVvFYCZkhq+/56FKZfoVByh
B+x+2GaMlsBm1uPniO4lAakFPpIi0kaap4UVayQ/7ak+BhscAIHZUy6NtgZkuvW3
xdpwp07LYo2ilhMI8RnzmtoRmg==
=UBeB
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
-----END PGP PUBLIC KEY BLOCK-----

99
AUTHORS
View File

@@ -17,78 +17,73 @@ Contributors:
* Nick Tiskov <daymansmail@gmail.com>
Code from other projects:
* files src/app/qtlocalpeer/*
* files src/qtsingleapplication/* src/lineedit/*
copyright: Nokia Corporation
license: mixed
license: LGPL
* files src/gui/lineedit.*
copyright: Trolltech ASA <info@trolltech.com>
license: custom
* files src/ico.cpp src/ico.h
copyright: Malte Starostik <malte@kde.org>
license: LGPL
* files src/search_engine/socks.py
copyright: Dan Haim <negativeiq@users.sourceforge.net>
license: BSD
* files src/webui/www/private/css/lib/vanillaSelectBox.css src/webui/www/private/scripts/lib/vanillaSelectBox.js
copyright: Philippe Meyer <pmg.meyer@gmail.com>
license: MIT
* file src/stacktrace_win.h
copyright: Quassel Project
license: GPLv2/3
Images Authors:
* files: src/icons/qbittorrent-tray.svg
copyright: Provided by HVS <hvs linuxmail org> (raster first proposal) and Atif Afzal(@atfzl github) <atif5801@gmail.com> (vectorized and modified)
license: GPLv2+
* files: src/icons/*.png
copyright: Gnome Icon Theme
license: GPLv2
url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme
* files: src/qbittorrent_file.ico src/icons/fileicon.svg
copyright: 'unknown.svg' (LGPLv3+) from Oxygen Icon Theme was used as base which was slightly modified and 'qbittorrent-tray.svg' (GPLv2+) was overlaid above it.
license: GPLv3+
* files: src/oxygen/*.png
copyright: Oxygen Icon Theme (KDE)
license: LGPL
url: http://www.oxygen-icons.org
* files: src/icons/flags/*.svg
copyright: lipis/flag-icons
license: MIT
url: https://github.com/lipis/flag-icons/
* files: src/icons/flags/*.png
copyright: Mark James <mjames@gmail.com>
license: Public Domain
url: http://www.famfamfam.com
* file: src/webui/www/private/images/tabs.gif
* files: src/icons/skin/*.png
files: src/menuicons/YYxYY/*.png
copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
license: GPLv2
* file: src/icons/skin/tabs.gif
copyright: Greg Houston <gregory.houston@gmail.com>
license: MIT
* file: src/icons/qbittorrent-tray-dark.svg src/icons/qbittorrent-tray-light.svg
* file: src/icons/skin/qbittorrent_mono*
copyright: Daniel Eguren <deguren@gmail.com>
modified by: now-im <now-im.d8gcu@simplelogin.com> (@now-im)
license: LGPL
* folder: src/icons/
files: application-rss+xml.svg, application-x-mswinurl.svg, connected.svg, disconnected.svg, checked-completed.svg, configure.svg,
edit-copy.svg, edit-rename.svg, folder-documents.svg, folder-new.svg, folder-remote.svg, go-bottom.svg, go-down.svg, go-top.svg,
go-up.svg, hash.svg, inode-directory.svg, insert-link.svg, kt-magnet.svg, media-playback-pause.svg, media-playback-start.svg,
media-seek-forward.svg, network-connect.svg, object-locked.svg, queued.svg, ratio.svg, reannounce.svg, slow_off.svg, slow.svg,
speedometer.svg, system-log-out.svg, tags.svg, task-complete.svg, task-reject.svg, tracker-error.svg, tracker-warning.svg,
trackerless.svg, trackers.svg, view-categories.svg
copyright: now-im <now-im.d8gcu@simplelogin.com> (@now-im) modified from La-Capitaine icon theme (https://github.com/keeferrourke/la-capitaine-icon-theme)
license: GPLv3+
* file: src/search_engine/engines/btjunkie.png
copyright: Downloaded from btjunkie.org
* folder: src/icons/
files: application-exit.svg, collapse.svg, dialog-warning.svg, edit-find-user.svg, edit-find.svg, filter-all.svg, firewalled.svg,
help-about.svg, help-contents.svg, ip-blocked.svg, list-remove.svg, loading.svg, mail-folder-inbox.svg, name.svg, network-server.svg,
office-chart-line.svg, plugins.svg, preferences-desktop.svg, preferences-other.svg, preferences-system-network.svg, security-high.svg,
security-low.svg, set-location.svg, torrent-creator.svg, user-group-delete.svg, user-group-new.svg, view-preview.svg, view-refresh.svg,
view-statistics.svg, wallet-open.svg, webuiapplication-exit.svg, collapse.svg, dialog-warning.svg, edit-find-user.svg, edit-find.svg,
filter-all.svg, firewalled.svg, help-about.svg, help-contents.svg, ip-blocked.svg, list-remove.svg, loading.svg, mail-folder-inbox.svg,
name.svg, network-server.svg, office-chart-line.svg, plugins.svg, preferences-desktop.svg, preferences-other.svg,
preferences-system-network.svg, security-high.svg, security-low.svg, set-location.svg, torrent-creator.svg, user-group-delete.svg,
user-group-new.svg, view-preview.svg, view-refresh.svg, view-statistics.svg, wallet-open.svg, webui.svg
copyright: now-im <now-im.d8gcu@simplelogin.com> (@now-im) modified from Ionicons icon theme (https://github.com/ionic-team/ionicons)
license: MIT
* file: src/search_engine/engines/isohunt.png
copyright: Downloaded from isohunt.com
* folder: src/icons/
files: force-recheck.svg
copyright: now-im <now-im.d8gcu@simplelogin.com> (@now-im) modified from Font-Awesome icon theme (https://github.com/FortAwesome/Font-Awesome)
license: CC BY 4.0 License
* file: src/search_engine/engines/mininova.png
copyright: Downloaded from mininova.org
* folder: src/icons/
files: downloading.svg, edit-clear.svg, error.svg, filter-active.svg, filter-inactive.svg, filter-stalled.svg, kt-set-max-download-speed.svg,
kt-set-max-upload-speed.svg, list-add.svg, preferences-web-browser-cookies.svg, stalledDL.svg, stalledUP.svg
copyright: now-im <now-im.d8gcu@simplelogin.com> (@now-im)
license: BSD 2-Clause License
* file: src/search_engine/engines/piratebay.png
copyright: Downloaded from thepiratebay.org
* file: src/search_engine/engines/torrentreactor.png
copyright: Downloaded from torrentreactor.net
* file: src/icons/oxygen/checked.png
copyright: Victor Buinsky <allok.victor@gmail.com>
* file: src/icons/skin/ratio.png
copyright: Fatcow Web Hosting
license: Creative Commons Attribution 3.0 License
url: http://www.fatcow.com/free-icons
Translations authors:
* files: src/lang/*.ts
@@ -116,7 +111,7 @@ Translations authors:
- German: Niels Hoffmann (zentralmaschine@users.sourceforge.net)
- Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net), Stephanos Antaris (santaris@csd.auth.gr), sledgehammer999(hammered999@gmail.com) and Γιάννης Ανθυμίδης Evropi(Transifex)
- Hebrew: David Deutsch (d.deffo@gmail.com)
- Hungarian: Majoros Péter
- Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
- Italian: bovirus (bovirus@live.it) and Matteo Sechi (bu17714@gmail.com)
- Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com)
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)

View File

@@ -1,67 +1,65 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR) # Policies <= CMP0097 default to NEW
cmake_minimum_required(VERSION 3.5)
cmake_policy(VERSION 3.5)
project(qBittorrent
DESCRIPTION "The qBittorrent BitTorrent client"
HOMEPAGE_URL "https://www.qbittorrent.org/"
LANGUAGES CXX
)
project(qBittorrent VERSION 3.4.0.0)
# version requirements - older versions may work, but you are on your own
set(minBoostVersion 1.76)
set(minQt6Version 6.5.0)
set(minOpenSSLVersion 3.0.2)
set(minLibtorrent1Version 1.2.19)
set(minLibtorrentVersion 2.0.10)
set(minZlibVersion 1.2.11)
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!
include(GNUInstallDirs)
# Don't touch the rest part
set(PROJECT_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}")
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
include(FeatureSummary)
include(FeatureOptionsSetup)
# features, list is loosely sorted by user's interests
feature_option(GUI "Build GUI application" ON)
feature_option(WEBUI "Enable built-in HTTP server for remote control" ON)
feature_option(STACKTRACE "Enable stacktrace support" ON)
feature_option(TESTING "Build internal testing suite" OFF)
feature_option(VERBOSE_CONFIGURE "Show information about PACKAGES_FOUND and PACKAGES_NOT_FOUND in the configure output (only useful for debugging the CMake build scripts)" OFF)
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
feature_option_dependent(DBUS
"Enable support for notifications and power-management features via D-Bus"
ON "GUI" OFF
)
if (NOT VER_BUILD EQUAL 0)
set(PROJECT_VERSION "${PROJECT_VERSION}.${VER_BUILD}")
endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
feature_option_dependent(SYSTEMD
"Install systemd service file. Target directory is overridable with `SYSTEMD_SERVICES_INSTALL_DIR` variable"
OFF "NOT GUI" OFF
)
endif()
set(PROJECT_VERSION "${PROJECT_VERSION}${VER_STATUS}")
if (MSVC)
feature_option(MSVC_RUNTIME_DYNAMIC "Use MSVC dynamic runtime library (-MD) instead of static (-MT)" ON)
endif()
add_definitions(-DVERSION_MAJOR=${VER_MAJOR})
add_definitions(-DVERSION_MINOR=${VER_MINOR})
add_definitions(-DVERSION_BUGFIX=${VER_BUGFIX})
add_definitions(-DVERSION_BUILD=${VER_BUILD})
if (VERBOSE_CONFIGURE)
feature_summary(WHAT ALL)
else()
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
endif()
# os2 {
# DEFINES += VERSION=\'\"v$${PROJECT_VERSION}\"\'
# } else {
add_definitions(-DVERSION="v${PROJECT_VERSION}")
# }
list(APPEND CMAKE_MODULE_PATH ${qBittorrent_SOURCE_DIR}/cmake/Modules)
# go check the packages
include(CheckPackages)
# configure for specific platform
include(CommonConfig)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og")
if (UNIX AND NOT APPLE)
include(GNUInstallDirs)
endif (UNIX AND NOT APPLE)
if(WIN32)
include(winconf)
endif(WIN32)
# we need options here, because they are used not only in "src" subdir, but in the "dist" dir too
include(CMakeDependentOption)
option(QT5 "Compile using Qt5" ON)
option(SYSTEM_QTSINGLEAPPLICATION
"Use the system qtsingleapplication library or shipped one otherwise")
cmake_dependent_option(SYSTEM_QJSON
"Use the shipped qjson library or the system one (Qt4 only)" OFF "NOT QT5" OFF)
option(GUI "Allows to disable GUI for headless running. Disables QtDBus and the GeoIP Database" ON)
option(WEBUI "Allows to disable the WebUI." ON)
if (WIN32)
option(STACKTRACE_WIN "")
else (WIN32)
cmake_dependent_option(SYSTEMD "Install the systemd service file (headless only)" OFF
"NOT GUI" OFF)
cmake_dependent_option(DBUS "Enable use of QtDBus (GUI only)" ON "GUI" OFF)
endif(WIN32)
# Generate version header
configure_file("src/base/version.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/src/base/version.h" @ONLY)
add_subdirectory(src)
add_subdirectory(dist)
if (TESTING)
add_subdirectory(test)
endif()

File diff suppressed because it is too large Load Diff

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