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

Compare commits

..

206 Commits

Author SHA1 Message Date
sledgehammer999
6fc3c04dca Bump to v3.2.2 2015-08-01 20:18:10 +03:00
sledgehammer999
ae150b25ae Update Changelog. 2015-08-01 20:09:10 +03:00
sledgehammer999
36ddf0fd2f Use correct status icon for Travis CI. Closes #3534. 2015-08-01 20:09:04 +03:00
sledgehammer999
06d59cab2d Fix previous commit. Use correct locale name. 2015-08-01 20:08:26 +03:00
sledgehammer999
8f519d00e7 New translation: Slovenian
Also re-run lupdate.
2015-08-01 19:33:55 +03:00
sledgehammer999
ce58a3fd4b Sync translations from Transifex and run lupdate. 2015-08-01 19:13:30 +03:00
sledgehammer999
303dbd7dbe Bump minimum libtorrent version required to 1.0.6/0.16.19. 2015-08-01 18:53:57 +03:00
Vladimir Golovnev (Glassez)
c9abcbfbd4 Fix HTTP header parsing. Closes #3511. 2015-08-01 18:45:27 +03:00
sledgehammer999
baab8ddf75 Remove obsolete Boost configurations. 2015-08-01 18:45:08 +03:00
Chocobo1
982d4a685a Fix warnings by qmake -Wall, cleanups 2015-08-01 18:44:55 +03:00
Chocobo1
52ff7a92fb Add path to openssl, cleanups 2015-08-01 18:44:41 +03:00
Chocobo1
8a4a3b33f8 Update .gitignore 2015-08-01 18:44:23 +03:00
Chocobo1
aec4f1d343 Fix '&' character in label name becomes accelerator key, closes #3454. 2015-08-01 18:44:02 +03:00
ngosang
32ea862584 [Web UI] Fix friendlyUnit() implementation. Related to #2719 2015-08-01 18:42:06 +03:00
ngosang
9f1bd86c47 Improve Python detection 2015-08-01 18:35:49 +03:00
sledgehammer999
d2853b3a98 [webui] Fix ugly 'C++' wrapping in About dialog. 2015-08-01 18:29:20 +03:00
Gabriele
64cf3afe67 Add count of unread items to RSS tab label
Closes #2681.
2015-08-01 18:21:42 +03:00
sledgehammer999
7729035598 Merge pull request #3522 from Chocobo1/travis_v320
Migrate TravisCI to container-based infrastructure
2015-07-30 19:32:06 +03:00
Chocobo1
021cf9fb65 Migrate TravisCI to container-based infrastructure 2015-07-30 23:28:41 +08:00
sledgehammer999
c2e9ce5966 Sync translations from Transifex and run lupdate. 2015-07-25 03:22:01 +03:00
ngosang
75e4a004f7 [Web UI] Massive increase in performance. 2015-07-25 03:17:02 +03:00
sledgehammer999
ac60072ded Fix installing search plugin by drag-n-dropping file. 2015-07-22 23:24:35 +03:00
sledgehammer999
9cac51d9b0 Fix installing search plugin from local file. 2015-07-22 23:24:28 +03:00
sledgehammer999
14d590b3be Fix segfault on Linux due to early initialization of global var.
misc::pythonVersion() gets called before the Logger is initialized.

Conflicts:
	src/searchengine/engineselectdlg.cpp
2015-07-22 23:24:21 +03:00
sledgehammer999
86d1dc300c Improve checks for python. Print python version and path to log.
Conflicts:
	src/core/misc.cpp
	src/core/utils/misc.h
	src/gui/mainwindow.cpp
2015-07-22 23:24:13 +03:00
ngosang
6787623ff3 [search engine] Fix cpu_count in old Python versions 2015-07-21 22:03:10 +03:00
sledgehammer999
636ff89e23 Fixup previous commits on python search. 2015-07-21 22:02:52 +03:00
sledgehammer999
568950e63e Don't use list of versions for the Python fallback detection on Windows
Always pick the newest versions among those installed.
2015-07-21 22:02:36 +03:00
sledgehammer999
b3b973d54b Don't specify the Python version required in the notification
Both python2 and python3 are supported.
2015-07-21 22:01:29 +03:00
sledgehammer999
ff64a79594 Update link to the Windows Python installer
From v2.7.3 to v3.4.3.

Conflicts:
	src/gui/mainwindow.cpp
2015-07-21 22:00:27 +03:00
sledgehammer999
26b635ca33 Show notification if Python is not found and a search is started
Also, don't bother starting a search if it's known that Python is
not available.
2015-07-21 21:57:38 +03:00
Gabriele
7e63908977 Use python3 and python2 instead of python on Linux
Prefer python3 over python2 when both are available.

Both python2 and python3 should always exists.
More info at: http://legacy.python.org/dev/peps/pep-0394/

Conflicts:
	src/core/utils/misc.h
	src/searchengine/supportedengines.h
2015-07-21 21:54:18 +03:00
sledgehammer999
5c9ce2952b Static order of items in the transferlist menu.
Conflicts:
	src/gui/transferlistwidget.cpp
2015-07-21 21:39:24 +03:00
ngosang
6ca7ff0e25 [Web UI] Changes in Force Resume icon and menu order 2015-07-21 21:27:43 +03:00
ngosang
3091c30ff6 Changes in Force Resume icon and menu order
Conflicts:
	src/gui/transferlistwidget.cpp
2015-07-21 21:27:16 +03:00
ngosang
1086b940a2 Minor changes in Preview File dialog 2015-07-21 21:17:39 +03:00
sledgehammer999
9465f358c4 Fix compiler warning for unused variable. 2015-07-21 21:17:24 +03:00
Chocobo1
f8cb9d09f6 Fix localhost address (::ffff:127.0.0.1) is not recognized when connecting to WebUI 2015-07-21 21:17:13 +03:00
sledgehammer999
01d8b24982 Update Changelog. 2015-07-19 19:27:54 +03:00
ngosang
b7604b1c82 [Web UI] Open external links in a new window/tab 2015-07-19 19:01:27 +03:00
ngosang
4da4457f5f [Web UI] Fix sort by queue number 2015-07-19 19:01:13 +03:00
sledgehammer999
858909bf19 Fix previous commit on DHT announce. 2015-07-19 18:40:36 +03:00
sledgehammer999
d3bdb52b8f Merge pull request #3462 from Chocobo1/announce_v320
DHT announce
2015-07-19 18:22:11 +03:00
sledgehammer999
d804445de7 Merge pull request #3459 from ngosang/webui_trackmenu320
[Web UI] Torrent download from hash. Closes #1173
2015-07-19 16:25:00 +03:00
sledgehammer999
5187899d7e Merge pull request #3460 from ngosang/webui_addtrackers32x
[Web UI] Fix empty trackers addition
2015-07-19 16:24:31 +03:00
Chocobo1
67ad8ef7d6 Change DHT announce actions, see #3431. 2015-07-19 21:17:09 +08:00
sledgehammer999
cbd9ccef17 Switch to libtorrent git repository
Fix missing variable when compiling for coverity scan
2015-07-19 16:16:05 +03:00
sledgehammer999
d6420e6876 Update settings for Coverity Scan. 2015-07-19 16:15:13 +03:00
Chocobo1
f76b1eb2fb Hookup to Coverity Scan, Closes #2601 2015-07-19 16:15:02 +03:00
Gabriele
e474f53910 Allow to copy all the trackers with a keyboard shortcut
If multiple trackers are selected, Ctrl+C will copy only one of them
while the context menu will copy all of them. Fix this inconsistency.

Closes #2675.
2015-07-19 16:09:02 +03:00
ngosang
ccac6cb5a9 [search engine] Remove the word 'torrent' in ExtraTorrent results 2015-07-19 16:08:53 +03:00
DoumanAsh
92bb94ecca Search status uses tab's status 2015-07-19 16:08:44 +03:00
DoumanAsh
b286351305 Replace indent to 4 spaces 2015-07-19 16:08:35 +03:00
sledgehammer999
3873a36338 Fix printing of the copyright symbol in the About dialog. 2015-07-19 16:08:26 +03:00
Oleh Prypin
f989708e31 Implement an option to disable confirmation of torrent recheck
Conflicts:
	src/gui/transferlistwidget.cpp
2015-07-19 16:08:17 +03:00
sledgehammer999
2dbeda5985 Update color scheme of completed.png icon. 2015-07-19 16:08:08 +03:00
ngosang
9d5d1dfea8 [Web UI] Fix API Content Types. Closes #3393
Conflicts:
	src/core/http/types.h
	src/webui/webapplication.cpp
2015-07-19 16:07:59 +03:00
ngosang
3738302a3c Increase API_VERSION
Conflicts:
	src/webui/webapplication.cpp
2015-07-19 16:07:50 +03:00
ngosang
7f58ff4c8f [Web UI] New option Web UI port UPNP. Closes #3358 2015-07-19 16:07:42 +03:00
ngosang
4c079ede83 [Web UI] Fix an error in Content tab when the torrent doesn't have metadata
Conflicts:
	src/webui/btjson.cpp
2015-07-19 16:07:33 +03:00
ngosang
1ee91ddb13 [Web UI] Fix empty trackers addition 2015-07-19 14:26:31 +02:00
ngosang
03fd0a36a6 [Web UI] Torrent download from hash. Closes #1173 2015-07-19 14:04:48 +02:00
ngosang
266c96f03b [Web UI] Ports between 1 and 65535 as in the GUI. Closes #1602 2015-07-19 14:36:54 +03:00
sledgehammer999
a088657619 Merge pull request #3403 from ngosang/32x_fixrename
Fix torrent renaming. Closes #3398
2015-07-12 12:37:02 +03:00
ngosang
7c164dfcb9 Fix torrent renaming. Closes #3398 2015-07-12 09:38:25 +02:00
sledgehammer999
20f4b95180 Bump to v3.2.1 2015-07-11 17:37:47 +03:00
sledgehammer999
8ac4cccc25 Update Changelog. 2015-07-11 17:31:39 +03:00
sledgehammer999
d990af4a79 Sync translations from Transifex and run lupdate. 2015-07-11 17:26:32 +03:00
sledgehammer999
8e73c262f9 Merge pull request #3378 from ngosang/webuialter320
[Web UI] Fix alternative global rate limits. Closes #3359
2015-07-09 01:38:23 +03:00
ngosang
7804faa34d [Web UI] Additional checks in Options dialog 2015-07-09 00:18:47 +02:00
ngosang
0bb0a5ea13 [Web UI] Reorder Options dialog code 2015-07-09 00:07:56 +02:00
ngosang
d5b9e3449b [Web UI] Fix alternative global rate limits. 2015-07-08 23:51:42 +02:00
sledgehammer999
753b33b8a3 Update Changelog. 2015-07-08 19:09:59 +03:00
ngosang
eb12d63d2d [search engine] Fix Python 2 implementation of Torrentz 2015-07-08 18:29:44 +03:00
sledgehammer999
b21ab50221 Merge pull request #3350 from ngosang/torrent_creator320
Add 16 KiB, 8 MiB and 16 MiB piece sizes in Torrent Creator
2015-07-04 03:22:51 +03:00
ngosang
34f89d3174 Add 16 KiB, 8 MiB and 16 MiB piece sizes in Torrent Creator 2015-07-04 01:53:19 +02:00
sledgehammer999
54227c20ff Sync translations from Transifex and run lupdate. 2015-07-04 02:02:07 +03:00
sledgehammer999
515c578188 Add unicodestrings.h to core.pri
Conflicts:
	src/core/core.pri
2015-07-04 01:55:43 +03:00
sledgehammer999
74bba9ecfe Partially revert fec6c8af2 and split the Chinese locales into 3.
Chinese Simplified, Chinese Traditional(Taiwan), Chinese Traditional(Hong Kong).
Closes #3262.
2015-07-04 01:55:34 +03:00
sledgehammer999
41e052498b Fix Properties bar size when started minimized to tray. Closes #3206. 2015-07-04 01:55:24 +03:00
ngosang
3a51c5bf85 Fix column sort in search engine. Closes #2621 2015-07-04 01:55:15 +03:00
ngosang
cad542f3f4 [Web UI] Don't update the tabs if tab's panel is collapsed 2015-07-04 01:55:06 +03:00
ngosang
54a444d37f [Web UI] Add Web Seeds (HTTP Sources) tab 2015-07-04 01:54:57 +03:00
sledgehammer999
1c5e6980e8 Don't use a default upload limit. Closes #3275. 2015-07-04 01:20:59 +03:00
Chocobo1
8b7d995447 Mention github contributors in thanks.html 2015-07-04 01:19:58 +03:00
Chocobo1
0b83ea9fcf Move translators & thanks to its own file
Add HTML header & cleanup
2015-07-04 01:19:39 +03:00
Chocobo1
04e582793e Fix compilation on MSVC2013 by moving unicode strings to
"unicodestrings.h". Closes #3059.

Conflicts:
	src/core/misc.cpp
	src/gui/addnewtorrentdialog.cpp
	src/gui/options_imp.cpp
	src/gui/properties/propertieswidget.cpp
	src/gui/transferlistdelegate.cpp
2015-07-04 01:19:10 +03:00
ngosang
07e2e88e79 Cosmetics changes in search engine
Conflicts:
	src/searchengine/engineselectdlg.cpp
2015-07-04 01:02:51 +03:00
Chocobo1
e120a6764b Better message for users 2015-07-04 00:58:36 +03:00
Chocobo1
c4a311cc09 Capitalize menu item, missed in 98a4b8c. 2015-07-04 00:57:31 +03:00
ngosang
278872eb12 Increase API_VERSION due to changes in #3279, #3197, #3226 and #3040
Conflicts:
	src/webui/webapplication.cpp
2015-07-04 00:53:14 +03:00
ngosang
c3d9321865 [Web UI] Add new options
Conflicts:
	src/webui/prefjson.cpp
2015-07-04 00:50:24 +03:00
sledgehammer999
882f5e325a Follow project coding style. Issue #2192. - prefjson.cpp 2015-07-04 00:45:42 +03:00
ngosang
bf7bec61c2 [search engine] Update TorrentReactor 2015-07-04 00:42:07 +03:00
ngosang
72af954b65 [search engine] Update ExtraTorrent 2015-07-04 00:41:09 +03:00
Chocobo1
514abca0ea Add connectionsLimit() back
Conflicts:
	src/gui/properties/propertieswidget.cpp
2015-07-04 00:40:47 +03:00
Chocobo1
643224800f Preserve plain text formatting 2015-07-04 00:29:35 +03:00
Chocobo1
8e25ec7dbf Force set "plain text" format to reduce attack vector. 2015-07-04 00:29:20 +03:00
Chocobo1
07b36f313b Allow wordWrap for "Save Path" & "Comment" 2015-07-04 00:29:01 +03:00
Chocobo1
34d2bdadc0 Change Comment field from QTextBrowser to QLabel
Conflicts:
	src/gui/properties/propertieswidget.cpp
2015-07-04 00:28:40 +03:00
Chocobo1
92ef98080b Reorder layout in information box 2015-07-04 00:25:52 +03:00
ngosang
34bf09b539 [search engine] Update Torrentz 2015-07-04 00:21:31 +03:00
ngosang
06f46eae24 [search engine] Update BTDigg 2015-07-04 00:20:36 +03:00
ngosang
ae5b2fa4a4 [search engine] Update KickassTorrents 2015-07-04 00:20:09 +03:00
ngosang
9b7c2e669e [search engine] Fix novaprinter.py version number 2015-07-04 00:19:51 +03:00
Vladimir Golovnev (Glassez)
e6e087d391 Fix ugly 'C++' wrapping in About dialog. 2015-07-04 00:19:10 +03:00
sledgehammer999
bf6b723206 Merge pull request #3103 from heirecka/v3_2_x
Add missing QDataStream include
2015-06-30 22:01:49 +03:00
Chocobo1
0bce0fc6c1 Update disk space label after changing partition, closes #3309.
Conflicts:
	src/gui/addnewtorrentdialog.cpp
2015-06-28 15:23:51 +03:00
sledgehammer999
4d913d123c Partially revert 75979cc4d5.
Fixes Linux issue for when the theme doesn't have a corresponding icon.
2015-06-21 01:00:03 +03:00
sledgehammer999
a00bbf349a Minimize to tray only if the relevant option is enabled. 2015-06-20 23:35:11 +03:00
sledgehammer999
c61566d133 Merge pull request #2791 from pmzqla/file-priority
Increase priority value of "High"
2015-06-20 21:13:03 +03:00
ngosang
a675a13587 [Web UI] Tabs indentation replaced with spaces 2015-06-20 19:33:43 +03:00
ngosang
ebe0e7bb71 [Web UI] Reorder the tabs/groups in Options window 2015-06-20 19:33:31 +03:00
ngosang
e30df4ed70 [Web UI] Option to hide Top Toolbar 2015-06-20 19:33:19 +03:00
ngosang
9dcb9848ae [Web UI] Changes in menus to keep the client's style 2015-06-20 19:33:06 +03:00
Chocobo1
7034d14eba Use warning message box instead of critical 2015-06-20 18:59:08 +03:00
Chocobo1
08c8b6f77d Don't close downloadFromURL dialog when showing empty url warning 2015-06-20 18:59:02 +03:00
Mayank Asthana
be91f749ee Download-from-URL textbox changes focus on tab key 2015-06-20 18:45:00 +03:00
sledgehammer999
4ec2a37f5d Delete tempfile when downloading favicon.ico. Closes #3257. 2015-06-20 18:17:13 +03:00
ngosang
cc471dbd3c [Web UI] Remove DHT port setting. Closes #3225 2015-06-20 18:16:42 +03:00
sledgehammer999
ab62cbdf3f Merge pull request #3213 from Chocobo1/props_widget_v320
Revamp general tab info
2015-06-20 16:56:00 +03:00
Chocobo1
cd708bb665 Add functionality to new data fields, cleanups 2015-06-20 20:39:19 +08:00
sledgehammer999
c1a47279af Merge pull request #3229 from Chocobo1/dev6_v320
Fix potential out-of-bound access in misc::friendlyUnit()
2015-06-20 02:49:10 +03:00
sledgehammer999
fec6c8af27 Rename Chinese translation files. Closes #2936. 2015-06-17 23:08:14 +03:00
Chocobo1
fc605b119e Webui: add delay in shutdown command in order to send out response msg 2015-06-17 23:08:09 +03:00
Chocobo1
7892f37d3e Fix potential out-of-bound access of units[i] 2015-06-17 08:10:25 +08:00
Chocobo1
26cb71458d Simplify code 2015-06-17 08:09:47 +08:00
sledgehammer999
069bd05d37 Clear missing files flag when resuming or force rechecking. Fixes issues in #2750. 2015-06-15 00:53:34 +03:00
sledgehammer999
c4f043a14d New translation: Indonesian. 2015-06-14 23:51:14 +03:00
sledgehammer999
16b9a28531 Sync translations from Transifex and run lupdate. 2015-06-14 23:47:45 +03:00
sledgehammer999
1da29a450c Merge pull request #3212 from Chocobo1/opt_ip_filter_tracker_v32x
Add checkbox option for IpFilterTrackers.
2015-06-14 20:23:14 +03:00
sledgehammer999
9095545425 Merge pull request #3214 from Chocobo1/move_stats_v320
Revamp menu items
2015-06-14 20:22:19 +03:00
Chocobo1
01dbc01635 Improve ratio calculation formula. Closes #3096. 2015-06-14 20:12:19 +03:00
Chocobo1
bd7fd47d9f Resave in Qt Designer 2015-06-14 20:09:39 +08:00
Chocobo1
429dad3f70 Remove menu items: "Visit Website" and "Report a Bug".
Many issues opened on github should be asked on forum first, and the links are already present in "About" window.
2015-06-14 20:08:47 +08:00
Chocobo1
ca70f2ce5c Rename "Execution Log" to "Log".
Rename "When Downloads Done" to "On Downloads Done".
2015-06-14 20:08:05 +08:00
Chocobo1
98a4b8c199 Move statistics from Tools to View
Reorder & add separators in Help menu
Rename `Auto-Shutdown on downloads completion` to `When downloads done`
Capitalize menu items, modify accelerator
2015-06-14 20:07:58 +08:00
Chocobo1
6dd94ccc1d Add new data fields, capitialize labels, cleanups 2015-06-14 19:34:46 +08:00
Chocobo1
e83a8393a4 Add a parameter to QString(time_t t) 2015-06-14 19:33:54 +08:00
Chocobo1
8fa79a0690 Add checkbox option for IpFilterTrackers. 2015-06-14 19:05:26 +08:00
sledgehammer999
0423a28f30 Add translator to credits. 2015-06-14 12:29:30 +03:00
sledgehammer999
18f32fae90 Merge pull request #3182 from ngosang/typo_revision_32x
Changes in typography (v3_2_x)
2015-06-13 22:07:22 +03:00
sledgehammer999
057b998e0f Merge pull request #2966 from pmzqla/sort-eta
Fix sorting torrents by ETA
2015-06-13 22:01:24 +03:00
sledgehammer999
855ac43aca Merge pull request #3184 from ngosang/AnnounceToAllTrackers_32x
Change default preferences (v3_2_x)
2015-06-13 21:40:37 +03:00
ngosang
5a6302af59 changes in typography 2015-06-13 20:17:37 +02:00
sledgehammer999
174861274b Merge pull request #2958 from Chocobo1/neg_loop
Fix potential negative loop bound
2015-06-13 21:01:00 +03:00
sledgehammer999
718983a4d6 Merge pull request #3180 from ngosang/cppcheck_fixes_32x
Cppcheck: scope reduction & unused variables (v3_2_x)
2015-06-13 20:19:40 +03:00
sledgehammer999
a77e550bf9 Merge pull request #3202 from DoumanAsh/py3_remove_cache_3_2_x
3_2_x mapping: [search engine] Remove python3 cache during updateNova()
2015-06-13 09:26:49 +03:00
DoumanAsh
aac6a4526c 3_2_x mapping: [search engine] Remove python3 cache during updateNova() 2015-06-13 08:46:52 +03:00
who-me
23842a8ec3 Update qBittorrent.appdata.xml
Usage of the <updatecontact/> breaks validation. The correct tag is <update_contact/> as per info on this page:
http://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-update_contact
2015-06-13 02:28:49 +03:00
DoumanAsh
422db313de [search engine] Update Legit Torrent to remove sgmllib 2015-06-13 02:28:49 +03:00
sledgehammer999
07bbe70baf Merge pull request #3181 from ngosang/user-agent_32x
Changes in User-Agent (v3_2_x)
2015-06-13 02:26:10 +03:00
sledgehammer999
f46eafc9fd Merge pull request #3178 from ngosang/search_version_32x
[Search engine] Show the version of search engines (v3_2_x)
2015-06-13 02:23:53 +03:00
sledgehammer999
86df2520ad Fix python detection from reigstry when multiple versions are installed. Update fallback mechanism for newer versions. 2015-06-13 02:19:12 +03:00
Gabriele
640e0ea34d Update matching RSS articles while editing rules
Save the rules as soon as they are edited so that the matching
articles tree is immediately updated.

Closes #2829.
2015-06-13 02:19:12 +03:00
ngosang
cd03c511a5 Minor fixes in search engines 2015-06-13 02:19:11 +03:00
ngosang
98533ede13 [search engine] Add Demonoid search engine 2015-06-13 02:19:11 +03:00
DoumanAsh
09dedd0f22 [search engine] Final enhancements. 2015-06-13 02:19:10 +03:00
DoumanAsh
639f5b2d20 [search engine] Cosmetic update TorrentReactor 2015-06-13 02:19:09 +03:00
DoumanAsh
e758f4ec26 [search engine] re-factoring of code 2015-06-13 02:19:09 +03:00
DoumanAsh
aae1a3564d [search engine] engines update 2015-06-13 02:19:08 +03:00
DoumanAsh
68e29df2ae [search engine] Nova2 multiprocessing 2015-06-13 02:19:08 +03:00
DoumanAsh
183643d77b Exception free retrieve_url()
Set 2 second timeout and handle any possible connection error
Return empty string to engine in case of connection exception
2015-06-13 02:19:07 +03:00
DoumanAsh
d8838363b8 Aborting search engine process during closure. Close #2671 2015-06-13 02:19:07 +03:00
Chocobo1
a0877fd57c Use AllUppercase for label text 2015-06-13 02:19:07 +03:00
Gabriele
271b37885f Allow to Open files from the properties pane by pressing "Enter"
Allow to open only one file at a time and ignore keypresses when
multiple items are selected.
2015-06-13 02:18:08 +03:00
Chocobo1
00b32a0996 Add "Add link to torrent" menu in TrayIconMenu. Closes #2918. 2015-06-13 02:18:07 +03:00
Chocobo1
75979cc4d5 Enable to choose dark/light tray icons on all platforms. 2015-06-13 02:18:07 +03:00
LazyBui
cf41f41b16 Making alternate download/upload configuration behave like global download/upload configuration so as to allow boundless down/up 2015-06-13 02:18:06 +03:00
ngosang
12ad2c7368 Fix Start Minimized checkbox in Options 2015-06-13 02:18:06 +03:00
Chocobo1
86b21dacfd Set default focus to no button in exit confirm box 2015-06-13 02:18:06 +03:00
Chocobo1
7ce343c28f Set default focus to ok button in add new torrent dlg 2015-06-13 02:18:05 +03:00
Chocobo1
fc3e85f449 Set default focus to cancel button in delete confirm dlg, closes #3085 2015-06-13 02:18:05 +03:00
Chocobo1
fb32408ba1 Change option text "Confirmation on exit when torrents are active" 2015-06-13 02:18:04 +03:00
ngosang
32eec624a1 Make strings translatable in seach engine 2015-06-13 02:18:04 +03:00
ngosang
8122ae4739 Disable Auto piece size when creating a new torrent 2015-06-13 02:18:03 +03:00
ngosang
49cce9b2fc Change width of columns in search tab. Closes #764 2015-06-13 02:18:03 +03:00
ngosang
bded737c3c Web UI: Display wasted data with friendly units. Closes #2994 2015-06-13 02:18:02 +03:00
ngosang
a94b317150 Web UI: New config - Global maximum number of upload slots 2015-06-13 02:18:02 +03:00
ngosang
6d34f86c51 Web UI: Fix Max connections and Time active in transfer information 2015-06-13 02:18:01 +03:00
ngosang
6dfd962a13 Web UI: Minor changes in style 2015-06-13 02:18:01 +03:00
ngosang
89cfd41c5f Web UI: Complete translatable strings 2015-06-13 02:18:00 +03:00
ngosang
9fbd19b2ca Web UI: Changes in title bar 2015-06-13 02:18:00 +03:00
ngosang
1577a366e0 [search engine] Improve torrentz engine to return more results 2015-06-13 02:17:59 +03:00
ngosang
19506ea323 [search engine] Fix thepiratebay. Closes #3012 2015-06-13 02:17:59 +03:00
ngosang
b0d321d729 Web UI: Fix resumeAll and pauseAll. Closes #3016 2015-06-13 02:17:59 +03:00
ngosang
a63648b769 Web UI: Fix login and logout relative URLs 2015-06-13 02:16:06 +03:00
Chocobo1
cfe5f8e518 Fix wrong path for icons.qrc 2015-06-13 02:15:54 +03:00
ngosang
56f842dd6d Change default preferences 2015-06-12 01:58:51 +02:00
ngosang
95c8d078f1 Changes in User-Agent 2015-06-12 01:21:26 +02:00
ngosang
4b3d3f6ea6 Cppcheck: scope reduction & unused variables 2015-06-12 01:04:16 +02:00
ngosang
d783787ceb [Search engine] Show the version of search engines 2015-06-12 00:02:04 +02:00
Heiko Becker
1ef9a1151d Add missing QDataStream include
Fixes building with Qt 5.5.0-beta.
2015-05-26 13:36:30 +02:00
sledgehammer999
baa586a6f7 Update Copyright year. 2015-05-13 23:25:38 +03:00
sledgehammer999
c0454fbd02 Fix typo in configure script. 2015-05-13 23:04:46 +03:00
LazyBui
03fb897717 Removing the confusion caused by moving GeoIP code/.dat to a different directory 2015-05-13 23:00:33 +03:00
Gabriele
43cd295b0c configure: don't fail when $CPPFLAGS starts with a white space 2015-05-11 19:05:25 +03:00
sledgehammer999
80b2d00c7a Correctly detect FreeBSD when configuring.
Thanks to yurivict for helping.
Closes #2962.
2015-05-11 00:49:26 +03:00
sledgehammer999
83e4059cea Fix configure typo. 2015-05-11 00:49:16 +03:00
David Christenson
92a250cdb3 Fix variable names
Change undeclared identifiers `running_` and `paramsQueue_` to their
proper names.
2015-05-10 17:56:10 +03:00
Gabriele
1a52368f79 Fix sorting torrents by ETA
Closes #2965.
2015-05-10 14:34:41 +02:00
Chocobo1
cbc0e2527a Fix potential negative loop bound.
QTorrentHandle::num_files() could return -1 in these cases.
2015-05-10 15:16:37 +08:00
sledgehammer999
52f8f9beb4 Bump to 3.2.0 2015-05-10 04:20:19 +03:00
sledgehammer999
3f110dabed Update Transifex config file. 2015-05-10 04:20:06 +03:00
Gabriele
5af4dde3f3 Increase priority value of "High"
It was observed that setting the priority of a file to High has almost
no effect, so increase its value.
2015-03-27 17:55:50 +01:00
Gabriele
10880e10f1 Use enums instead of values when dealing with file priorities 2015-03-27 17:43:14 +01:00
1654 changed files with 248831 additions and 612722 deletions

View File

@@ -1,57 +0,0 @@
version: '{branch}-{build}'
# Do not build on tags (GitHub only)
skip_tags: true
image: Visual Studio 2017
branches:
except: # blacklist
- coverity_scan
environment:
REPO_DIR: &REPO_DIR c:\qbittorrent
CACHE_DIR: &CACHE_DIR c:\qbt_cache
QBT_VER_URL: https://builds.shiki.hu/appveyor/version
QBT_LIB_URL: https://builds.shiki.hu/appveyor/qbt_libraries.7z
# project directory
clone_folder: *REPO_DIR
# cache size should < 100MB (after compressing with fastest option):
# see: https://www.appveyor.com/docs/build-cache#save-update-cache-before-build-finishes
cache:
- *CACHE_DIR
clone_depth: 50
install:
# check if library needs update
- appveyor DownloadFile "%QBT_VER_URL%" -FileName "c:\version_new" && SET /P newVersion=<"c:\version_new"
- IF EXIST "%CACHE_DIR%\version" (SET /P oldVersion=<"%CACHE_DIR%\version")
- IF NOT EXIST "%CACHE_DIR%\version" (SET updateCache=1)
- IF NOT "%oldVersion%" == "%newVersion%" (SET updateCache=1)
# update library
- IF "%updateCache%" == "1" (ECHO "--- Will redownload libraries ---" &&
RMDIR /S /Q "%CACHE_DIR%" & MKDIR "%CACHE_DIR%" &&
appveyor DownloadFile "%QBT_LIB_URL%" -FileName "c:\qbt_lib.7z" && 7z x "c:\qbt_lib.7z" -o"%CACHE_DIR%" > nul &&
COPY "c:\version_new" "%CACHE_DIR%\version")
# Qt stay compressed in cache
- 7z x "%CACHE_DIR%\qt5_32.7z" -o"c:\qbt" > nul
before_build:
# setup env
- CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
- SET PATH=%PATH%;c:\qbt\qt5_32\bin;%CACHE_DIR%\jom;
# setup project
- COPY /Y "%CACHE_DIR%\conf.pri" "%REPO_DIR%"
# workarounds
- MKLINK /J "c:\qbt\base" "%CACHE_DIR%\base"
build_script:
- cd "%REPO_DIR%"
- qmake qbittorrent.pro && cd src && qmake src.pro
- jom -j2 -f Makefile.Release
test: off

View File

@@ -1,12 +0,0 @@
# EditorConfig is awesome: http://EditorConfig.org
root = true
[*]
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
[**.yml]
indent_size = 2

View File

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

5
.gitignore vendored
View File

@@ -17,12 +17,10 @@ Makefile*
# Generated MOC, resource and UI files
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
*.moc
src/lang/qbittorrent_*.qm
src/webui/www/translations/webui_*.qm
.DS_Store
.qmake.stash
src/qbittorrent.app
@@ -32,6 +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

View File

@@ -1,29 +1,18 @@
language: cpp
os:
- linux
- osx
dist: xenial
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 gui=true build_system=cmake
- lt_branch=RC_1_0 gui=false build_system=cmake
- lt_branch=RC_1_0 gui=true build_system=qmake
- lt_branch=RC_1_0 gui=false build_system=qmake
#- lt_branch=dist gui=true
#- lt_branch=dist gui=false
- lt_branch=RC_0_16 gui=true
- lt_branch=RC_0_16 gui=false
- lt_branch=RC_1_0 gui=true
- lt_branch=RC_1_0 gui=false
global:
- secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8="
- coverity_branch: coverity_scan
matrix:
allow_failures:
- env: lt_branch=RC_1_0 gui=true build_system=cmake
- env: lt_branch=RC_1_0 gui=false build_system=cmake
branches:
except:
- search_encoding_windows
@@ -34,10 +23,11 @@ notifications:
on_success: change
on_failure: change
# container-based builds
sudo: false
cache:
ccache: true
directories:
- $HOME/hombebrew_cache
- $HOME/.ccache
addons:
coverity_scan:
@@ -49,116 +39,58 @@ addons:
branch_pattern: $coverity_branch
notification_email: sledgehammer999@qbittorrent.org
apt:
sources:
# sources list: https://github.com/travis-ci/apt-source-safelist/blob/master/ubuntu.json
- sourceline: 'ppa:qbittorrent-team/qbittorrent-stable'
packages:
# packages list: https://github.com/travis-ci/apt-package-safelist/blob/master/ubuntu-trusty
- [autoconf, automake, colormake]
- [ninja-build]
- libssl-dev
- [libboost-dev, libboost-system-dev]
- libtorrent-rasterbar-dev
- [qtbase5-dev, qttools5-dev-tools, libqt5svg5-dev]
# packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
- autoconf
- automake
- colormake
- libssl-dev
- libboost-dev
- libboost-system-dev
- libgeoip-dev
- libqt4-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
#- libboost-filesystem-dev
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 -a "$build_system" = "qmake" ]; then exit ; fi
# Only allow specific build for coverity scan, others will stop
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ] && ! [[ "$lt_branch" == "RC_1_0" && "$gui" == "true" ]]; then exit ; fi
- shopt -s expand_aliases
- alias make="colormake -j2" # Using nprocs/2 sometimes may fail (gcc is killed by system)
- if ! [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then dpkg-query -L ccache && export PATH="/usr/lib/ccache/:$PATH" ; fi
- alias make="colormake -j3" # Using nprocs/2 sometimes may fail (gcc is killed by system)
- libt_path="$HOME/libt_install"
- qbt_path="$HOME/qbt_install"
- |
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH=/opt/qt55/lib/pkgconfig:$PKG_CONFIG_PATH"
else
qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH"
CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedefs -Wno-inconsistent-missing-override"
fi
- ltconf="$ltconf --prefix="$libt_path" --with-libgeoip=system"
- qbtconf="$qbtconf --prefix="$qbt_path" PKG_CONFIG_PATH="$libt_path/lib/pkgconfig":$PKG_CONFIG_PATH"
# options for specific branches
- 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
# Options for specific branches
- if [[ "$lt_branch" == "RC_0_16" ]]; then qbtconf="$qbtconf --with-libtorrent-rasterbar0.16" ; fi
# Also setup a virtual display for after_success target when gui == true
- if ! $gui; then qbtconf="$qbtconf --disable-gui" ; else 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
# print settings
# Print settings
- echo $lt_branch
- echo $gui
- echo $build_system
- echo $ltconf
- echo $qbtconf
- ccache -V && ccache --show-stats && ccache --zero-stats
install:
#- |
#if [ "$TRAVIS_OS_NAME" = "linux" ]; then
# build libtorrent from source
#if [ "$lt_branch" != "dist" ]; then
#cd "$HOME" && pwd && git clone --depth 1 https://github.com/arvidn/libtorrent.git --branch $lt_branch
#cd libtorrent && ./autotool.sh && ./configure $ltconf && make install
#fi
#fi
- |
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
# dependencies
brew update > /dev/null
brew outdated "pkg-config" || brew upgrade "pkg-config"
brew install colormake ccache zlib qt openssl libtorrent-rasterbar
PATH="/usr/local/opt/ccache/libexec:$PATH"
brew link --force zlib qt
if [ "$build_system" = "cmake" ]; then
brew outdated cmake || brew upgrade cmake
brew install ninja
sudo ln -s /usr/local/opt/qt/mkspecs /usr/local/mkspecs
sudo ln -s /usr/local/opt/qt/plugins /usr/local/plugins
MY_CMAKE_OPENSSL_HINT="-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl/"
fi
fi
- |
if [ "$TRAVIS_BRANCH" != "$coverity_branch" ]; then
export use_ccache=true
ccache -M 512M
ccache -V && ccache --show-stats && ccache --zero-stats
fi
- if ! [ "$lt_branch" == "dist" ]; then cd "$HOME" && pwd && git clone --depth 1 https://github.com/arvidn/libtorrent.git --branch $lt_branch --single-branch ; fi
- if ! [ "$lt_branch" == "dist" ]; then cd libtorrent && ./autotool.sh && ./configure $ltconf && make install && cd "$TRAVIS_BUILD_DIR" ; fi
script:
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then exit ; fi # skip usual build when running coverity scan
- |
cd "$TRAVIS_BUILD_DIR"
if [ "$build_system" = "cmake" ]; then
mkdir build
cd build
if [ "$gui" = "false" ]; then
DISABLE_GUI_OPTION="-DCMAKE_DISABLE_FIND_PACKAGE_Qt5Widgets=ON"
fi
cmake $DISABLE_GUI_OPTION -DCMAKE_INSTALL_PREFIX="$qbt_path" "$MY_CMAKE_OPENSSL_HINT" \
-G "Ninja" -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE ..
BUILD_TOOL="ninja"
fi
if [ "$build_system" = "qmake" ]; then
./bootstrap.sh && ./configure $qbtconf CXXFLAGS="$CXXFLAGS"
BUILD_TOOL="make"
fi
- $BUILD_TOOL && $BUILD_TOOL install
- if [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then exit ; fi # Skip usual build when running coverity scan
- ./bootstrap.sh && ./configure $qbtconf
- 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
if [ "$build_system" = "qmake" ]; then
macdeployqt "$TRAVIS_BUILD_DIR/src/$qbt_exe.app"
cd "$TRAVIS_BUILD_DIR/src/$qbt_exe.app/Contents/MacOS"
else
cd "$qbt_path/$qbt_exe.app/Contents/MacOS"
fi
fi
- ./$qbt_exe --version
- cd "$qbt_path/bin"
- export LD_PRELOAD="$libt_path/lib/libtorrent-rasterbar.so:$LD_PRELOAD"
- if $gui ; then ./qbittorrent --version ; else ./qbittorrent-nox --version ; fi
after_script:
- if [ "$use_ccache" = true ]; then ccache --show-stats ; fi
- ccache --show-stats

View File

@@ -1,27 +1,18 @@
[main]
host = https://www.transifex.com
[qbittorrent.qbittorrent_master]
[qbittorrent.qbittorrent_v3_2_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
mode = developer
[qbittorrent.qbittorrentdesktop_master]
source_file = dist/unix/org.qbittorrent.qBittorrent.desktop
source_file = src/icons/qBittorrent.desktop
source_lang = en
type = DESKTOP
minimum_perc = 23
mode = developer
[qbittorrent.qbittorrent_webui]
file_filter = src/webui/www/translations/webui_<lang>.ts
lang_map = pt: pt_PT
source_file = src/webui/www/translations/webui_en.ts
source_lang = en
type = QT
minimum_perc = 23
mode = developer

View File

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

21
AUTHORS
View File

@@ -34,14 +34,6 @@ Code from other projects:
license: GPLv2/3
Images Authors:
* files: src/icons/skin/qbittorrent-tray.svg (and related pngs)
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/qbittorrent_file.ico src/icons/fileicon.svg
copyright: 'uknown.svg' (LGPLv3+) from Oxygen Icon Theme was used as base which was slightly modified and 'qbittorrent-tray.svg' (GPLv2+) was overlayed above it.
license: GPLv3+
* files: src/icons/*.png
copyright: Gnome Icon Theme
license: GPLv2
@@ -52,10 +44,10 @@ Images Authors:
license: LGPL
url: http://www.oxygen-icons.org
* files: src/icons/flags/*.svg
copyright: lipis/flag-icon-css
license: MIT
url: https://github.com/lipis/flag-icon-css/
* files: src/icons/flags/*.png
copyright: Mark James <mjames@gmail.com>
license: Public Domain
url: http://www.famfamfam.com
* files: src/icons/skin/*.png
files: src/menuicons/YYxYY/*.png
@@ -87,11 +79,6 @@ Images Authors:
* 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

View File

@@ -1,54 +0,0 @@
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
message(AUTHOR_WARNING "If the build fails, please try the autotools/qmake method.")
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
include(FunctionReadVersion)
read_version("${CMAKE_CURRENT_SOURCE_DIR}/version.pri" VER_MAJOR VER_MINOR VER_BUGFIX VER_BUILD VER_STATUS)
# message(STATUS "Project version is: ${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}.${VER_BUILD} (${VER_STATUS})")
project(qBittorrent VERSION ${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}.${VER_BUILD})
set(PROJECT_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUGFIX}")
if (NOT VER_BUILD EQUAL 0)
set(PROJECT_VERSION "${PROJECT_VERSION}.${VER_BUILD}")
endif()
set(PROJECT_VERSION "${PROJECT_VERSION}${VER_STATUS}")
add_definitions(-DQBT_VERSION_MAJOR=${VER_MAJOR})
add_definitions(-DQBT_VERSION_MINOR=${VER_MINOR})
add_definitions(-DQBT_VERSION_BUGFIX=${VER_BUGFIX})
add_definitions(-DQBT_VERSION_BUILD=${VER_BUILD})
add_definitions(-DQBT_VERSION="v${PROJECT_VERSION}")
add_definitions(-DQBT_VERSION_2="${PROJECT_VERSION}")
include(GNUInstallDirs)
include(FeatureSummary)
# version requirements
set(requiredBoostVersion 1.35)
set(requiredQtVersion 5.5.1)
if(WIN32)
include(winconf)
endif(WIN32)
# we need options here, at the top level, because they are used not only in "src" subdir, but in the "dist" dir too
include(CompileFeature)
optional_compile_definitions(COUNTRIES_RESOLUTION FEATURE DESCRIPTION "Enable resolving peers IP addresses to countries"
DEFAULT ON DISABLED DISABLE_COUNTRIES_RESOLUTION)
optional_compile_definitions(STACKTRACE FEATURE DESCRIPTION "Enable stacktraces"
DEFAULT ON ENABLED STACKTRACE)
optional_compile_definitions(WEBUI FEATURE DESCRIPTION "Enables built-in HTTP server for headless use"
DEFAULT ON DISABLED DISABLE_WEBUI)
add_subdirectory(src)
add_subdirectory(dist)
feature_summary(DESCRIPTION "\nConfiguration results:" WHAT ALL)

File diff suppressed because it is too large Load Diff

View File

@@ -1,221 +0,0 @@
# How to contribute to qBittorrent
There are three main ways to contribute to the project.
Read the respective section to find out more.
### Table Of Contents
* **[Bug reporting etiquette](#bug-reporting-etiquette)**
* **[Submitting an issue/bug report](#submitting-an-issuebug-report)**
* [What is an actual bug report?](#what-is-an-actual-bug-report)
* [Before submitting a bug report](#before-submitting-a-bug-report)
* [Steps to ensure a good bug report](#steps-to-ensure-a-good-bug-report)
* **[Suggesting enhancements/feature requests](#suggesting-enhancementsfeature-requests)**
* [Before submitting an enhancement/feature request](#before-submitting-an-enhancementfeature-request)
* [Steps to ensure a good enhancement/feature suggestion](#steps-to-ensure-a-good-enhancementfeature-suggestion)
* **[Opening a pull request](#opening-a-pull-request)**
* [Must read](#must-read)
* [Good to know](#good-to-know)
# Bug reporting etiquette
* Issues, pull requests, and comments must always be in **English.**
* This project is supported by volunteers, do not expect "customer support"-style interaction.
* **Be patient.** The development team is small and resource limited. Developers and contributors take from their free time to analyze the problem and fix the issue. :clock3:
* Harsh words or threats won't help your situation. What's worse, your complain will (very likely) be **ignored.** :fearful:
# Submitting an issue/bug report
This section guides you through submitting an issue/bug report for qBittorrent.
Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
Make sure to follow these rules carefully when submitting a bug report. Failure to do so will result in the issue being closed.
## What is an actual bug report?
Developers and contributors are not supposed to deal with issues for which little to no investigation to find the actual cause of a purported issue was made by the reporter.
Positive contributions are those which are reported with efforts to find the actual cause of an issue, or at the very least efforts were made to narrow it as much as possible.
Requiring people to investigate as much as possible before opening an issue will more than likely avoid burdening the project with invalid issues or issues unrelated to qBittorrent.
The following are _not_ bug reports. **Check the [wiki][wiki-url], [forum][forum-url] or other places for help and support for issues like these**:
- Explanation of qBittorrent options (see [wiki][wiki-url]).
- Help with WebUI setup.
- Help with embedded tracker setup.
- Help about BitTorrent in general.
- Issues with specific search plugins.
- Asking for specific builds of qBittorrent other than the current one. You can install older releases at your own risk or for regression testing purposes. Previous Windows and macOS builds are available [here][builds-url].
- If you want older Linux builds, you will have to compile them yourself from the corresponding commits, or ask someone on the [forum][forum-url] to do it for you.
- Possibly others. Read on and use common sense.
The issue tracker is for provable issues only: You will have to make the case that the issue is really with qBittorrent and not something else on your side.
To make a case means to provide detailed steps so that anybody can reproduce the issue.
Be sure to rule out that the issue is not caused by something specific on your side.
Issue reports for bugs that apparently aren't easily reproducible or that you can't figure out what triggers it even though you tried are OK.
Any issue opened without effort to provide the required details for developers, contributors or anybody else to reproduce the problem will be closed as invalid.
For example:
- Crash reports with just a stack trace.
- Speculated performance issues that do not come with actual profiling data + analysis supporting the claim.
## Before submitting a bug report
- **Do some basic troubleshooting (examples)**:
- Restart qBittorrent.
- Restart your PC.
- Update your OS (e.g. Windows updates).
- Update your network card drivers.
- Fully reinstall qBittorrent.
- etc...
- Make sure the problem is not caused by anti-virus or other program messing with your files.
- Check if you can reproduce the problem in the latest version of qBittorrent.
- **Check [forum][forum-url] and [wiki][wiki-url].** You might be able to find the cause of the problem and fix things yourself.
- **Check if the issue exists already in the issue tracker.**
- If it does and the issue is still open, add a comment to the existing issue instead of opening a new one.
- If you find a Closed issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
- If the issue is with the search functionality:
- **Make sure you have [`python`][python-url] installed correctly (remember the search functionality requires a working python installation).**
- Make sure it is in fact a problem with the search functionality itself, and not a problem with the plugins. If something does not work properly with the search functionality, the first step is to rule out search plugin-related issues.
- For search plugin issues, report on the respective search plugin support page, or at [qbittorrent/search-plugins][search-plugins-url].
## Steps to ensure a good bug report
**Follow these guidelines** in order to provide as much useful information as possible right away. Not all of them are applicable to all issues, but you are expected to follow most of these steps (use common sense).
Otherwise, we've noticed that a lot of your time (and the developers') gets thrown away on exchanging back and forth to get this information.
* Use a **clear and descriptive title** for the issue to identify the problem.
* Post only **one specific issue per submission.**
* **Fill out the issue template properly.**
- **Make sure you are using qBittorrent on a supported platform.** Do not submit issues which can only be reproduced on beta/unsupported releases of supported operating systems (e.g. Windows 10 Insider, Ubuntu 12.04 LTS, etc).
These are unstable/unsupported platforms, and in all likelihood, whatever the issue is, it is not related to qBittorrent.
* **Specify the OS you're using, its version and architecture.**
* Examples: Windows 8.1 32-bit, Linux Mint 17.1 64-bit, Windows 10 Fall creators Update 64-bit, etc.
* **Report only if you run into the issue with an official stable release, a beta release, or with the most recent upstream changes (in this last case specify the specific commit you are on).** (beta testing is encouraged :smile:). We do not provide support for bugs on unofficial Windows builds.
* **Specify the version of qBittorrent** you are using, as well as its **architecture** (x86 or x64) and its **libraries' versions** (Help -> About -> Libraries).
* Specify **how you installed**:
- Linux: either from the PPA, your distribution's repositories, or compiled from source, or even possibly third-party repositories.
- Windows: either from the installer, or compiled from source, or even possibly third-party repositories.
- macOS: either from the installer, or compiled from source, or even possibly third-party repositories.
* **Describe the exact steps which reproduce the problem in as many details as possible.**
- For example, start by explaining how you started qBittorrent, e.g. was it via the terminal? Desktop icon? Did you start it as root or normal user?
- **When listing steps, don't just say what you did, but explain how you did it.**
- For example, if you added a torrent for download, did you do so via a `.torrent` file or via a magnet link? If it was with a torrent file did you do so by dragging the torrent file from the file manager to the transfer list, or did you use the "Add Torrent File" in the Top Bar?
- Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior; this is what we'll be looking for after executing the steps.
* **Explain which behavior you expected to see instead** and why.
* Use **screenshots/animated GIFs to help describe the issue** whenever appropriate [(How?)][attachments-howto-url].
* If the problem wasn't triggered by a specific action, describe what you were doing before the problem happened.
* **If you are reporting that qBittorrent crashes**, include the stack trace in the report; include it in a code block, a file attachment, or put it in a gist and provide link to that gist.
* **For performance-related issues**, include as much profiling data as you can (resource usage graphs, etc).
* Paste the **qBittorrent log** (or put the contents of the log in a gist and provide a link to the gist). The log can be viewed in the GUI (View -> Log -> tick all boxes). If you can't do that, the file is at:
- Linux: `~/.local/share/data/qBittorrent/logs/qBittorrent.log`
- Windows: `%LocalAppData%\qBittorrent\logs`
- macOS: `~/Library/Application Support/qBittorrent/qBittorrent.log`
* **Do NOT post comments like "+1" or "me too!"** without providing new relevant info on the issue. Using the built-in reactions is OK though. Remember that you can use the "subscribe" button to receive notifications of that report without having to comment first.
* If there seems to be an **issue with specific torrent files/magnet links**:
- Don't post private `.torrent` files/magnet links, or ones that point to copyrighted content. If you are willing, offer to email a link or the `.torrent` file itself to whoever developer is debugging it and requests it.
- Make sure you can't reproduce the problem with another client, to rule out the possibility that the issue is with the `.torrent` file/magnet link itself.
* A screenshot, transcription or file upload of any of **qBittorrent's preferences that differ from the defaults.** Please include everything different from the defaults whether or not it seems relevant to your issue.
* **Attachment rules**:
- Short logs and error messages can be pasted as quotes/code whenever small enough; otherwise make a gist with the contents and post the link to the gist.
- Avoid linking/attaching impractical file formats such as PDFs/Word documents with images. If you want to post an image, just post the image.
### Provide more context by answering these questions (if applicable):
- Can you **reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens (e.g. only happens with extremely large torrents/only happens after qBittorrent is open for more than 2 days/etc...)
- Did the problem start happening recently (e.g. after updating to a new version of qBittorrent) or was this always a problem?
- If the problem started happening recently, can you reproduce the problem in an older version of qBittorrent?
- Are you saving files locally (in a disk in your machine), or are you saving them remotely (e.g. network drives)?
- Are you using qBittorrent with multiple monitors? If so, can you reproduce the problem when you use a single monitor?
Good read: [How to Report Bugs Effectively][howto-report-bugs-url]
# Suggesting enhancements/feature requests
This section guides you through submitting an enhancement suggestion for qBittorrent, including completely new features and minor improvements to existing functionality.
Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions.
## Before submitting an enhancement/feature request
* Check the [wiki][wiki-url] and [forum][forum-url] for tips — you might discover that the enhancement is already available.
* Most importantly, check if you're using the latest version of qBittorrent and if you can get the desired behavior by changing qBittorrent's settings.
* Check in the [releases][releases-url] page or on the [forum][forum-url], see if there's already a alpha/beta version with that enhancement.
* Perform a cursory search to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
## Steps to ensure a good enhancement/feature suggestion
- Specify which version of qBittorrent you're using.
- Specify the name and version of the OS you're using.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Describe the current behavior and explain which behavior you expected to see instead and why.
- Include screenshots and animated GIFs which help you demonstrate the steps or point out the part of qBittorrent which the suggestion is related to.
- If this enhancement exists in other BitTorrent clients, list those clients.
# Opening a pull request
### Must read
* Read our [**coding guidelines**][coding-guidelines-url]. There are some scripts to help you: [uncrustify script][uncrustify-script-url], [astyle script][astyle-script-url], [(related thread)][coding-guidelines-thread-url].
* Keep the title **short** and provide a **clear** description about what your pull request does.
* Provide **screenshots** for UI related changes.
* Keep your git commit history **clean** and **precise.** Refer to the section about "Git commit messages" in the [**coding guidelines**][coding-guidelines-url].
* If your commit fixes a reported issue (for example #4134), add the following message to the commit `Closes #4134.`. Example [here][commit-message-fix-issue-example-url].
### Good to know
* **Search** pull request history! Others might have already implemented your idea and it is waiting to be merged (or got rejected already). Save your precious time by doing a search first.
* When resolving merge conflicts, do `git rebase <target_branch_name>`, don't do `git pull`. Then you can start fixing the conflicts. Here is a good explanation: [link][merging-vs-rebasing-url].
[astyle-script-url]: https://gist.github.com/Chocobo1/539cee860d1eef0acfa6
[attachments-howto-url]: https://help.github.com/articles/file-attachments-on-issues-and-pull-requests
[coding-guidelines-url]: https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md
[coding-guidelines-thread-url]: https://github.com/qbittorrent/qBittorrent/issues/2192
[commit-message-fix-issue-example-url]: https://github.com/qbittorrent/qBittorrent/commit/c07cd440cd46345297debb47cb260f8688975f50
[forum-url]: http://forum.qbittorrent.org/
[howto-report-bugs-url]: https://www.chiark.greenend.org.uk/~sgtatham/bugs.html
[merging-vs-rebasing-url]: https://www.atlassian.com/git/tutorials/merging-vs-rebasing
[python-url]: https://www.python.org/
[releases-url]: https://github.com/qbittorrent/qBittorrent/releases
[search-plugins-url]: https://github.com/qbittorrent/search-plugins
[uncrustify-script-url]: https://raw.githubusercontent.com/qbittorrent/qBittorrent/master/uncrustify.cfg
[wiki-url]: https://github.com/qbittorrent/qBittorrent/wiki
[builds-url]: https://sourceforge.net/projects/qbittorrent/files/

72
COPYING
View File

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

1396
Changelog

File diff suppressed because it is too large Load Diff

53
INSTALL
View File

@@ -1,49 +1,58 @@
qBittorrent - A BitTorrent client in C++ / Qt
qBittorrent - A BitTorrent client in C++ / Qt4
------------------------------------------
1) Compile and install qBittorrent with Qt graphical interface
1) Compile and install qBittorrent with Qt4 Graphical Interface
$ ./configure
$ make && make install
$ qbittorrent
will install and execute qBittorrent.
will install and execute qBittorrent hopefully without any problems.
Dependencies:
- Qt >= 5.5.1
- Qt >= 4.6.0 (libqtgui, libqtcore, libqtnetwork, libqtxml, libqtdbus/optional)
- pkg-config
- pkg-config executable
- libtorrent-rasterbar >= 1.0.6 (by Arvid Norberg)
* https://www.libtorrent.org/
* Be careful: another library (the one used by rTorrent) uses a similar name
- libtorrent-rasterbar by Arvid Norberg (>= 0.15.0)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
- Boost >= 1.35
- libboost 1.34.x (libboost-filesystem°) + libasio
or
- libboost >= 1.35.x (libboost-system, libboost-filesystem°)
°libboost-filesystem is not needed if libtorrent-rasterbar >= v0.16.x is used
- Python >= 2.7.9 / 3.3.0 (optional, runtime only)
* Required by the internal search engine
- python >= 2.3 (needed by search engine)
* Run time only dependency
2) Compile and install qBittorrent without Qt graphical interface
- geoip-database (optional)
* If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower.
* Run time only dependency
2) Compile and install qBittorrent without Qt4 Graphical interface
$ ./configure --disable-gui
$ make && make install
$ qbittorrent-nox
$ qbittorrent
will install and execute qBittorrent.
will install and execute qBittorrent hopefully without any problems.
Dependencies:
- Qt >= 5.5.1
- Qt >= 4.4.0 (libqt-devel, libqtcore, libqtnetwork)
- pkg-config
- pkg-config executable
- libtorrent-rasterbar >= 1.0.6 (by Arvid Norberg)
* https://www.libtorrent.org/
* Be careful: another library (the one used by rTorrent) uses a similar name
- libtorrent-rasterbar by Arvid Norberg (>= v0.15.0)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
- Boost >= 1.35
DOCUMENTATION:
Please note that there is a "Compilation" section at http://wiki.qbittorrent.org.
Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org.
------------------------------------------
sledgehammer999 <sledgehammer999@qbittorrent.org>
Christophe Dumez <chris@qbittorrent.org>

View File

@@ -1,8 +1,7 @@
qBittorrent - A BitTorrent client in Qt
------------------------------------------
[![TravisCI Status](https://travis-ci.org/qbittorrent/qBittorrent.svg?branch=master)](https://travis-ci.org/qbittorrent/qBittorrent)
[![AppVeyor Status](https://ci.appveyor.com/api/projects/status/github/qbittorrent/qBittorrent?branch=master&svg=true)](https://ci.appveyor.com/project/qbittorrent/qBittorrent)
[![Build Status](https://travis-ci.org/qbittorrent/qBittorrent.svg?branch=v3_2_x)](https://travis-ci.org/qbittorrent/qBittorrent)
[![Coverity Status](https://scan.coverity.com/projects/5494/badge.svg)](https://scan.coverity.com/projects/5494)
********************************
### Description:
@@ -14,7 +13,7 @@ out there. qBittorrent is fast, stable and provides unicode
support as well as many features.
This product includes GeoLite data created by MaxMind, available from
https://www.maxmind.com/
http://maxmind.com/
### Installation:
For installation, follow the instructions from INSTALL file, but simple:
@@ -27,22 +26,12 @@ qbittorrent
will install and execute qBittorrent hopefully without any problem.
### Public key:
Starting from v3.3.4 all source tarballs and binaries are signed.<br />
The key currently used is 4096R/[5B7CC9A2](https://pgp.mit.edu/pks/lookup?op=get&search=0x6E4A2D025B7CC9A2) with fingerprint `D8F3DA77AAC6741053599C136E4A2D025B7CC9A2`.<br />
You can also download it from [here](https://github.com/qbittorrent/qBittorrent/raw/master/5B7CC9A2.asc).<br />
**PREVIOUSLY** the following key was used to sign the v3.3.4 source tarballs and v3.3.4 Windows installer **only**: 4096R/[520EC6F6](https://pgp.mit.edu/pks/lookup?op=get&search=0xA1ACCAE4520EC6F6) with fingerprint `F4A5FD201B117B1C2AB590E2A1ACCAE4520EC6F6`.<br />
### Misc:
For more information please visit:
https://www.qbittorrent.org
http://www.qbittorrent.org
or our wiki here:
http://wiki.qbittorrent.org
Use the forum for troubleshooting before reporting bugs:
http://forum.qbittorrent.org
Please report any bug (or feature request) to:
http://bugs.qbittorrent.org

74
README.os2 Normal file
View File

@@ -0,0 +1,74 @@
qBittorrent - A BitTorrent client in Qt4
------------------------------------------
This is the eComStation (OS/2) qBittorrent part of the readme. See also README for more general information.
Building qBittorrent
********************
Requirements
============
- gcc based build env (recommended gcc v4.4.2 or greater)
- Qt4 for eCS (OS/2) dev package (see http://svn.netlabs.org/qt4 for more information)
- libtorrent-rasterbar for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
- boost for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
How to build
============
First you need to create the conf.pri file in the same dir as this readme.os2 is.
the conf.pri file has the following content:
##### conf.pri content beginn #####
BINDIR = ./bin
INCDIR = ./include
LIBDIR = ./lib
DATADIR = ./share
CONFIG += staticlib
INCLUDEPATH += x:/trees/libtorrent/trunk/include
LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \
-Lx:/trees/boost/trunk/stage/lib \
-Lx:/trees/openssl \
-Lx:/extras/lib
##### conf.pri content end #####
Of course all the above path references have to be adjusted to your build env.
Now you can either do a normal build or a shadow build. A shadow build has the
advantage that no created files are in the same dir as the sources are.
For a normal build do the following:
Simply type:
$ qmake
Followed by:
$ make
For a shadow build do the following:
given your sources are in x:\trees\qbittorrent\trunk create a
x:\trees\qbittorrent\build directory
Now switch to the created directory and type:
$ qmake ..\trunk
Followed by:
$ make
If all works fine you should get a working qbittorrent executable.
If you have any question regarding the eCS (OS/2) port of qBittorrent you can meet me (_diver) on IRC:
#netlabs on irc.freenode.net
------------------------------------------
Silvan Scherrer <silvan.scherrer@aroa.ch>

View File

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

View File

@@ -1,22 +0,0 @@
# Helper function for coupling add_feature_info(), option(), and add_definitions()
function(optional_compile_definitions _name)
set(options FEATURE)
set(oneValueArgs DESCRIPTION DEFAULT)
set(multiValueArgs ENABLED DISABLED)
cmake_parse_arguments(OCD "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
option(${_name} "${OCD_DESCRIPTION}" ${OCD_DEFAULT})
if (${${_name}})
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY COMPILE_DEFINITIONS ${OCD_ENABLED})
else()
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY COMPILE_DEFINITIONS ${OCD_DISABLED})
endif()
if(${OCD_FEATURE})
add_feature_info(${_name} ${_name} "${OCD_DESCRIPTION}")
endif()
endfunction()
macro(feature_option _name _description _default)
option(${_name} "${_description}" ${_default})
add_feature_info(${_name} ${_name} "${_description}")
endmacro()

File diff suppressed because it is too large Load Diff

View File

@@ -1,128 +0,0 @@
# - Try to find libtorrent-rasterbar
#
# If not using pkg-config, you can pre-set LibtorrentRasterbar_CUSTOM_DEFINITIONS
# for definitions unrelated to Boost's separate compilation (which are already
# decided by the LibtorrentRasterbar_USE_STATIC_LIBS variable).
#
# Once done this will define
# LibtorrentRasterbar_FOUND - System has libtorrent-rasterbar
# LibtorrentRasterbar_INCLUDE_DIRS - The libtorrent-rasterbar include directories
# LibtorrentRasterbar_LIBRARIES - The libraries needed to use libtorrent-rasterbar
# LibtorrentRasterbar_DEFINITIONS - Compiler switches required for using libtorrent-rasterbar
# LibtorrentRasterbar_OPENSSL_ENABLED - libtorrent-rasterbar uses and links against OpenSSL
find_package(Threads REQUIRED)
find_package(PkgConfig QUIET)
macro(_detect_boost_components _outComponets librariesList)
string(REGEX MATCHALL "boost_[a-z_]+[-a-z]*" _boost_libraries "${librariesList}")
string(REGEX REPLACE "boost_([a-z_]+)[-a-z]*" "\\1" ${_outComponets} "${_boost_libraries}")
endmacro()
if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_LIBTORRENT_RASTERBAR QUIET libtorrent-rasterbar)
endif()
if(LibtorrentRasterbar_USE_STATIC_LIBS)
set(LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
endif()
if(PC_LIBTORRENT_RASTERBAR_FOUND)
set(LibtorrentRasterbar_DEFINITIONS ${PC_LIBTORRENT_RASTERBAR_CFLAGS})
else()
if(LibtorrentRasterbar_CUSTOM_DEFINITIONS)
set(LibtorrentRasterbar_DEFINITIONS ${LibtorrentRasterbar_CUSTOM_DEFINITIONS})
else()
# Without pkg-config, we can't possibly figure out the correct build flags.
# libtorrent is very picky about those. Let's take a set of defaults and
# hope that they apply. If not, you the user are on your own.
set(LibtorrentRasterbar_DEFINITIONS
-DTORRENT_USE_OPENSSL
-DTORRENT_DISABLE_GEO_IP
-DBOOST_ASIO_ENABLE_CANCELIO
-DUNICODE -D_UNICODE -D_FILE_OFFSET_BITS=64)
endif()
if(NOT LibtorrentRasterbar_USE_STATIC_LIBS)
list(APPEND LibtorrentRasterbar_DEFINITIONS
-DTORRENT_LINKING_SHARED
-DBOOST_SYSTEM_DYN_LINK -DBOOST_CHRONO_DYN_LINK)
endif()
endif()
message(STATUS "libtorrent definitions: ${LibtorrentRasterbar_DEFINITIONS}")
find_path(LibtorrentRasterbar_INCLUDE_DIR libtorrent
HINTS ${PC_LIBTORRENT_RASTERBAR_INCLUDEDIR} ${PC_LIBTORRENT_RASTERBAR_INCLUDE_DIRS}
PATH_SUFFIXES libtorrent-rasterbar)
find_library(LibtorrentRasterbar_LIBRARY NAMES torrent-rasterbar libtorrent
HINTS ${PC_LIBTORRENT_RASTERBAR_LIBDIR} ${PC_LIBTORRENT_RASTERBAR_LIBRARY_DIRS})
if(LibtorrentRasterbar_USE_STATIC_LIBS)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
endif()
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIR})
# Without pkg-config, we can't possibly figure out the correct boost dependencies
if (LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES)
set(_boost_components "${LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES}")
else(LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES)
if(PC_LIBTORRENT_RASTERBAR_FOUND)
_detect_boost_components(_boost_components "${PC_LIBTORRENT_RASTERBAR_LIBRARIES}")
else()
# all possible boost dependencies
set(_boost_components
date_time
system
chrono
random
thread
)
endif()
endif(LibtorrentRasterbar_CUSTOM_BOOST_DEPENDENCIES)
list(SORT _boost_components)
message(STATUS "Libtorrent Boost dependencies: ${_boost_components}")
find_package(Boost REQUIRED COMPONENTS ${_boost_components})
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
foreach(_boost_cmpnt IN LISTS _boost_components)
list(APPEND LibtorrentRasterbar_LIBRARIES "Boost::${_boost_cmpnt}")
endforeach(_boost_cmpnt)
set(LibtorrentRasterbar_INCLUDE_DIRS ${LibtorrentRasterbar_INCLUDE_DIRS})
list(FIND LibtorrentRasterbar_DEFINITIONS -DTORRENT_USE_OPENSSL LibtorrentRasterbar_ENCRYPTION_INDEX)
if(LibtorrentRasterbar_ENCRYPTION_INDEX GREATER -1)
find_package(OpenSSL REQUIRED)
set(LibtorrentRasterbar_LIBRARIES ${LibtorrentRasterbar_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto)
list(APPEND LibtorrentRasterbar_INCLUDE_DIRS "${OPENSSL_INCLUDE_DIR}")
set(LibtorrentRasterbar_OPENSSL_ENABLED ON)
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LibtorrentRasterbar_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(LibtorrentRasterbar DEFAULT_MSG
LibtorrentRasterbar_LIBRARY
LibtorrentRasterbar_INCLUDE_DIR)
mark_as_advanced(LibtorrentRasterbar_INCLUDE_DIR LibtorrentRasterbar_LIBRARY
LibtorrentRasterbar_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES
LibtorrentRasterbar_ENCRYPTION_INDEX)
if (LibtorrentRasterbar_FOUND AND NOT TARGET LibtorrentRasterbar::torrent-rasterbar)
add_library(LibtorrentRasterbar::torrent-rasterbar UNKNOWN IMPORTED)
set_target_properties(LibtorrentRasterbar::torrent-rasterbar PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${LibtorrentRasterbar_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${LibtorrentRasterbar_INCLUDE_DIRS}"
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${LibtorrentRasterbar_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${LibtorrentRasterbar_LIBRARIES}"
INTERFACE_COMPILE_OPTIONS "${LibtorrentRasterbar_DEFINITIONS}"
)
endif()

View File

@@ -1,79 +0,0 @@
# - Try to find the QtSingleApplication includes and library
# which defines
#
# QtSingleApplication_FOUND - system has QtSingleApplication
# QtSingleApplication_INCLUDE_DIR - where to find header QtSingleApplication
# QtSingleApplication_LIBRARIES - the libraries to link against to use QtSingleApplication
# QtSingleApplication_LIBRARY - where to find the QtSingleApplication library (not for general use)
# copyright (c) 2013 TI_Eugene ti.eugene@gmail.com
#
# Redistribution and use is allowed according to the terms of the FreeBSD license.
SET(QtSingleApplication_FOUND FALSE)
if (Qt5Widgets_FOUND)
set(_includeFileName qtsingleapplication.h)
else()
set(_includeFileName qtsinglecoreapplication.h)
endif()
FOREACH(TOP_INCLUDE_PATH in ${Qt5Core_INCLUDE_DIRS} ${FRAMEWORK_INCLUDE_DIR})
FIND_PATH(QtSingleApplication_INCLUDE_DIR ${_includeFileName} ${TOP_INCLUDE_PATH}/QtSolutions)
IF(QtSingleApplication_INCLUDE_DIR)
BREAK()
ENDIF()
ENDFOREACH()
SET(QtSingleApplication_NAMES ${QtSingleApplication_NAMES}
Qt5Solutions_SingleApplication-2.6 libQt5Solutions_SingleApplication-2.6
QtSolutions_SingleApplication-2.6 libQtSolutions_SingleApplication-2.6)
GET_TARGET_PROPERTY(_QT5_CORELIBRARY Qt5::Core LOCATION)
GET_FILENAME_COMPONENT(_QT5_CORELIBRARYPATH ${_QT5_CORELIBRARY} PATH)
FIND_LIBRARY(QtSingleApplication_LIBRARY
NAMES ${QtSingleApplication_NAMES}
PATHS ${_QT5_CORELIBRARYPATH}
)
IF (QtSingleApplication_LIBRARY AND QtSingleApplication_INCLUDE_DIR)
SET(QtSingleApplication_LIBRARIES ${QtSingleApplication_LIBRARY})
SET(QtSingleApplication_FOUND TRUE)
IF (CYGWIN)
IF(BUILD_SHARED_LIBS)
# No need to define QtSingleApplication_USE_DLL here, because it's default for Cygwin.
ELSE(BUILD_SHARED_LIBS)
SET (QtSingleApplication_DEFINITIONS -DQTSINGLEAPPLICATION_STATIC)
ENDIF(BUILD_SHARED_LIBS)
ENDIF (CYGWIN)
ENDIF (QtSingleApplication_LIBRARY AND QtSingleApplication_INCLUDE_DIR)
IF (QtSingleApplication_FOUND)
IF (NOT QtSingleApplication_FIND_QUIETLY)
MESSAGE(STATUS "Found QtSingleApplication: ${QtSingleApplication_LIBRARY}")
MESSAGE(STATUS " includes: ${QtSingleApplication_INCLUDE_DIR}")
ENDIF (NOT QtSingleApplication_FIND_QUIETLY)
if(NOT TARGET QtSingleApplication::QtSingleApplication)
add_library(QtSingleApplication::QtSingleApplication UNKNOWN IMPORTED)
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${QtSingleApplication_INCLUDE_DIR}"
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${QtSingleApplication_INCLUDE_DIR}"
)
if(EXISTS "${QtSingleApplication_LIBRARY}")
set_target_properties(QtSingleApplication::QtSingleApplication PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${QtSingleApplication_LIBRARY}")
endif()
endif(NOT TARGET QtSingleApplication::QtSingleApplication)
ELSE (QtSingleApplication_FOUND)
IF (QtSingleApplication_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find QtSingleApplication library")
ENDIF (QtSingleApplication_FIND_REQUIRED)
ENDIF (QtSingleApplication_FOUND)
MARK_AS_ADVANCED(QtSingleApplication_INCLUDE_DIR QtSingleApplication_LIBRARY)

View File

@@ -1,26 +0,0 @@
#######
# Find systemd service dir
# sets variables
# SYSTEMD_FOUND
# SYSTEMD_SERVICES_INSTALL_DIR
find_package(PkgConfig QUIET REQUIRED)
if (NOT SYSTEMD_FOUND)
pkg_check_modules(SYSTEMD "systemd")
endif(NOT SYSTEMD_FOUND)
if (SYSTEMD_FOUND AND "${SYSTEMD_SERVICES_INSTALL_DIR}" STREQUAL "")
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE}
--variable=systemdsystemunitdir systemd
OUTPUT_VARIABLE SYSTEMD_SERVICES_INSTALL_DIR)
string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_SERVICES_INSTALL_DIR
"${SYSTEMD_SERVICES_INSTALL_DIR}")
elseif (NOT SYSTEMD_FOUND AND SYSTEMD_SERVICES_INSTALL_DIR)
message (FATAL_ERROR "Variable SYSTEMD_SERVICES_INSTALL_DIR is\
defined, but we can't find systemd using pkg-config")
endif()
if (SYSTEMD_FOUND)
message(STATUS "systemd services install dir: ${SYSTEMD_SERVICES_INSTALL_DIR}")
endif(SYSTEMD_FOUND)

View File

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

View File

@@ -1,38 +0,0 @@
macro(configure_msvc_runtime)
if(MSVC)
# Default to statically-linked runtime.
if("${MSVC_RUNTIME}" STREQUAL "")
set(MSVC_RUNTIME "static")
endif()
# Set compiler options.
set(variables
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELWITHDEBINFO
)
if(${MSVC_RUNTIME} STREQUAL "static")
message(STATUS
"MSVC -> forcing use of statically-linked runtime."
)
foreach(variable ${variables})
if(${variable} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}")
endif()
endforeach()
else()
message(STATUS
"MSVC -> forcing use of dynamically-linked runtime."
)
foreach(variable ${variables})
if(${variable} MATCHES "/MT")
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}")
endif()
endforeach()
endif()
endif()
endmacro()

View File

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

View File

@@ -1,28 +0,0 @@
# - macro similar to target_link_libraries, which links Qt components
# names of the components are passed in Qt4/Qt5 agnostic way (Core, DBus, Xml...)
# and the macro links Qt4 ones if QT4_FOUND is set or Qt5 ones if not
macro (target_link_qt_components target)
if (QT4_FOUND)
foreach(_cmp ${ARGN})
if ("${_cmp}" STREQUAL "PRIVATE" OR
"${_cmp}" STREQUAL "PUBLIC" OR
"${_cmp}" STREQUAL "INTERFACE")
list(APPEND _QT_CMPNTS "${_cmp}")
else()
list(APPEND _QT_CMPNTS "Qt4::Qt${_cmp}")
endif()
endforeach()
else (QT4_FOUND)
foreach(_cmp ${ARGN})
if ("${_cmp}" STREQUAL "PRIVATE" OR
"${_cmp}" STREQUAL "PUBLIC" OR
"${_cmp}" STREQUAL "INTERFACE")
list(APPEND _QT_CMPNTS "${_cmp}")
else()
list(APPEND _QT_CMPNTS "Qt5::${_cmp}")
endif()
endforeach()
endif (QT4_FOUND)
target_link_libraries(${target} ${_QT_CMPNTS})
endmacro()

View File

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

View File

@@ -1,17 +0,0 @@
# a helper function which appends source to the target
# sources file names are relative to the the target source dir
function (qbt_target_sources _target _scope)
get_target_property(targetSourceDir ${_target} SOURCE_DIR)
set(sourcesRelative "")
foreach(source IN ITEMS ${ARGN})
if(IS_ABSOLUTE "${source}")
set(sourceAbsolutePath "${source}")
else()
get_filename_component(sourceAbsolutePath "${source}" ABSOLUTE)
endif()
file(RELATIVE_PATH sourceRelativePath "${targetSourceDir}" "${sourceAbsolutePath}")
list(APPEND sourcesRelative "${sourceRelativePath}")
endforeach()
target_sources(${_target} ${_scope} "${sourcesRelative}")
endfunction(qbt_target_sources)

View File

@@ -1,48 +0,0 @@
# macros to handle translation files
# qbt_add_translations(<target> QRC_FILE <filename> TS_FILES <filenames>)
# handles out of source builds for Qt resource files that include translations
# The function generates translations out of the supplied list of .ts files in the build directory,
# copies the .qrc file there, calls qt5_add_resources() adds its output to the target sources list.
function(qbt_add_translations _target)
set(oneValueArgs QRC_FILE)
set(multiValueArgs TS_FILES)
cmake_parse_arguments(QBT_TR "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
get_target_property(_binaryDir ${_target} BINARY_DIR)
if (NOT QBT_TR_QRC_FILE)
message(FATAL_ERROR "QRC file is empty")
endif()
if (NOT QBT_TR_TS_FILES)
message(FATAL_ERROR "TS_FILES files are empty")
endif()
if(IS_ABSOLUTE "${QBT_TR_QRC_FILE}")
file(RELATIVE_PATH _qrcToTs "${CMAKE_CURRENT_SOURCE_DIR}" "${QBT_TR_QRC_FILE}")
else()
set(_qrcToTs "${QBT_TR_QRC_FILE}")
endif()
get_filename_component(_qrcToTsDir "${_qrcToTs}" DIRECTORY)
get_filename_component(_qmFilesBinaryDir "${CMAKE_CURRENT_BINARY_DIR}/${_qrcToTsDir}" ABSOLUTE)
# to make qt5_add_translation() work as we need
set_source_files_properties(${QBT_TR_TS_FILES} PROPERTIES OUTPUT_LOCATION "${_qmFilesBinaryDir}")
qt5_add_translation(_qmFiles ${QBT_TR_TS_FILES})
set(_qrc_dest_dir "${_binaryDir}/${_qrcToTsDir}")
set(_qrc_dest_file "${_binaryDir}/${QBT_TR_QRC_FILE}")
message(STATUS "copying ${QBT_TR_QRC_FILE} to ${_qrc_dest_dir}")
file(COPY ${QBT_TR_QRC_FILE} DESTINATION ${_qrc_dest_dir})
set_source_files_properties("${_qrc_dest_file}" PROPERTIES
GENERATED True
OBJECT_DEPENDS "${_qmFiles}")
# With AUTORCC enabled rcc is ran by cmake before language files are generated,
# and thus we call rcc explicitly
qt5_add_resources(_resources "${_qrc_dest_file}")
target_sources(${_target} PRIVATE "${_resources}")
endfunction()

View File

@@ -1,21 +0,0 @@
set(BU_CHMOD_BUNDLE_ITEMS ON)
include(DeployQt5)
set(plugins "")
get_property(svgIconPluginLocation TARGET Qt5::QSvgIconPlugin
PROPERTY LOCATION_RELEASE)
list(APPEND plugins "${svgIconPluginLocation}")
get_property(svgPluginLocation TARGET Qt5::QSvgPlugin
PROPERTY LOCATION_RELEASE)
list(APPEND plugins "${svgPluginLocation}")
set(sfx "")
if(APPLE)
set(sfx ".app")
elseif(WIN32)
set(sfx "${CMAKE_EXECUTABLE_SUFFIX}")
endif()
get_target_property(exe qBittorrent OUTPUT_NAME)
install_qt5_executable("${exe}${sfx}" "${plugins}" "" "" "")

View File

@@ -1,14 +0,0 @@
if (STACKTRACE)
if ("${WINXXBITS}" NOT STREQUAL "Win64")
add_compile_options(-fno-omit-frame-pointer)
endif ("${WINXXBITS}" NOT STREQUAL "Win64")
link_libraries(libdbghelp -Wl,--export-all-symbols)
endif (STACKTRACE)
if (("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") OR ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo"))
link_libraries(-Wl,--dynamicbase)
endif()
# LIBS += libadvapi32 libshell32 libuser32
# LIBS += libcrypto.dll libssl.dll libwsock32 libws2_32 libz libiconv.dll
# LIBS += libpowrprof

View File

@@ -1,21 +0,0 @@
if (STACKTRACE)
if ("${WINXXBITS}" STREQUAL "Win64")
add_compile_options(-Zi)
else ("${WINXXBITS}" STREQUAL "Win64")
# i686 arch requires frame pointer preservation
add_compile_options(-Oy-)
endif ("${WINXXBITS}" STREQUAL "Win64")
link_libraries(dbghelp.lib)
endif (STACKTRACE)
# Enable Wide characters
add_definitions(-DTORRENT_USE_WPATH)
if (NOT QT5)
# Qt4 does not detect it itself
add_definitions(-DQ_COMPILER_INITIALIZER_LISTS)
endif (NOT QT5)
include(MacroConfigureMSVCRuntime)
set(MSVC_RUNTIME "dynamic")
configure_msvc_runtime()

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