Commit Graph

13579 Commits

Author SHA1 Message Date
Pedro Scarapicchia Junior 5be8bd50f9
Check if log deep is enabled before tr_logAddDeep (#1329)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-07-28 12:31:36 -05:00
Charles Kerr 910944733e
refactor: reuse one QRequestHeader across requests (#1373)
Minor optimization: since we don't actually change our request headers
very often, we can lazy-build the request once and reuse that instead of
having to rebuild it each time.
2020-07-28 10:56:40 -05:00
Charles Kerr 0b042d85dd
fix: type deduction error introduced in 00be8d0 (#1372)
Explicitly delete the implied function to ensure we don't get bitten by
this again in the future.

Mark the string_views constexpr where possible so that we can avoid some
strlen() calls at runtime.
2020-07-27 18:34:40 -05:00
Nicholas Guriev 05a2e15b00
i18n: translate "Ratio:" string in compact view (#1354)
Use already available translation from gettext.

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-07-27 13:51:31 -05:00
Charles Kerr 073ae6c206
chore: fix deprecation warnings of GTK_STOCK_ use. (#1370)
* chore: fix deprecation warnings of GTK_STOCK_ use.

This is just a tiny step towards getting all of the GTK code up-to-date,
but GTK_STOCK warnings are the lowest-hanging fruit of the warnings, so
let's fix them.
2020-07-27 12:49:45 -05:00
Viacheslav Chimishuk 10fc016239
Add argument description to --labels command line option in transmission-remote man. (#1364)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-07-27 00:30:32 -05:00
Chris Young dc48c980e2
Fix typo in rpc-spec.txt (#1326)
The "format" is a request arg, not part of the torrent-get payload.

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-07-26 23:36:38 -05:00
Charles Kerr 00be8d00d7
refactor: make variant_headers reusable to qt app. (#1369)
* refactor: make variant_headers reusable to qt app.

Torrent.cc's `change()` template methods are generically useful to deal
with tr_variant wrangling, but previously were only used in Torrent.cc.
This PR moves them into a new API `VariantHelpers.h` for use by Prefs,
Session, TorrentModel, etc.
2020-07-26 23:30:58 -05:00
Charles Kerr 7e1da2d8fe
refactor: only update favicon when tracker changes (#1336)
* refactor: make Favicon's Key a semi-opaque type and update a Torrent's icon only when the announce_url changes.
2020-06-24 13:28:54 -05:00
Charles Kerr 33a421e97f
refactor: only update filterbar comboboxes when necessary (#1335)
* refactor: Torrent::update() returns a delta bitset

Setting up for followup PRs where, instead of doing expensive work every
time there is a change, we can be more fine-grained and do the work only
if the relevant Torrent properties changed.

* chore: make uncrustify happy

* refactor: update filterbar counts more selectively

Only rebuild the activity and tracker combobox models when the model's
size changes or when the relevant Torrent properties change.

Previously, rebuild would happen on any Torrent property change even if
the properties were unrelated to activity or trackers.

* chore: remove redundant "private:" key
2020-06-23 18:54:08 -05:00
Charles Kerr f37253a3ab
feat: Torrent::update() returns a bitset of changed properties (#1334)
* refactor: Torrent::update() returns a delta bitset

Setting up for followup PRs where, instead of doing expensive work every
time there is a change, we can be more fine-grained and do the work only
if the relevant Torrent properties changed.

* chore: make uncrustify happy

* chore: fix #includes
2020-06-23 16:11:16 -05:00
Charles Kerr 83e4e4ca55
refactor: faster action sensitivity updates (#1333)
* refactor: faster action sensitivity updates

Currently we walk through every row in the model and pump its TorrentRole data, which can be expensive for long lists. However since we're only interested in the selected rows, let's save some traversal overhead by getting that list directly and walking it instead.
2020-06-23 12:16:07 -05:00
Charles Kerr 8fcfc1e4ae
feat: add 'edit-date' support to qt client (#1322)
edit-date got added to the backend in 3.00, but I never finished adding
it properly to the Qt client. This PR rectifies that. When a torrent is
edited, the Application and DetailsDialogs will re-query the backend to
update the torrent properties that are needed.
2020-06-18 15:34:11 -05:00
Charles Kerr fcda077cdd
chore: remove extraneous/default class destructors (#1317)
* chore: remove extraneous/default class destructors

* fixup! chore: remove extraneous/default class destructors
2020-06-15 09:30:29 -05:00
Pedro Scarapicchia Junior 0a897cb3aa
Remove unused html (#1313) 2020-06-14 16:04:26 -05:00
Charles Kerr 51573a3c1e
chore: clang-tidy cleanups (#1287)
* chore: fix syntax error in clang-tidy config file
2020-06-05 14:02:11 -05:00
Charles Kerr 1f28470cf4
chore: prefer QStringLiteral (#1284)
Further reading:
* https://forum.qt.io/topic/78540/qstringliteral-vs-qlatin1string/2
* https://woboq.com/blog/qstringliteral.html
* https://www.qt.io/blog/2014/06/13/qt-weekly-13-qstringliteral

tl;dr: QLatin1Literal uses less memory than QStringLiteral; however,
since most Qt APIs require a QString argument, there's extra runtime
cost of converting QLatin1Strings to QStrings. QStringLiteral uses a
little more memory but constructs its QStrings at compile time.

ok, the `prefer-qstringliteral` branch is getting out of control: the
secondary goal of fixing a .clang-tidy issue is causing more diffs
than the primary goal. So, I'm breaking it into two separate PRs.
2020-05-29 12:40:07 -05:00
Charles Kerr 070a7f2ffc
refactor: use snake_case field naming in qt client (#1262)
* refactor: use snake_case field naming in qt client

* fix: some missed symbols

* chore: make uncrustify happy

* fixup! refactor: use snake_case field naming in qt client
2020-05-27 16:53:12 -05:00
Mitchell Livingston 4893771a04 Merge branch 'master' of https://github.com/transmission/transmission 2020-05-25 09:37:24 -04:00
Mitchell Livingston 6d2164ec47 Remove mention of Growl, which has been removed. 2020-05-25 09:37:19 -04:00
Pavel Borzenkov 34137ae324
fix(rpc-spec): fix typo in `editDate` arg description (#1251)
The argument is actually valid for `torrent-get` only.

Signed-off-by: Pavel Borzenkov <pavel.borzenkov@gmail.com>
2020-05-24 11:13:17 -05:00
Mike Gelfand 0c10308e06
Add missing files that fail build from tarball (#1247)
Fixes: #1246, #1138
2020-05-23 02:13:59 +03:00
Charles Kerr d43aeb6a5c
chore: add clang-tidy checks to Qt client (#1236)
* chore: add clang-tidy integration for Qt client
2020-05-19 20:32:51 -05:00
Charles Kerr 6aa559f12f
refactor: remove QVariants from torrent (#1234)
* chore: remove qvariants from torrent class

* chore: remove unused Q_DECLARE macro calls

* refactor: remove unused includes from Torrent.h

* chore: make clang-tidy and linter happy

* refactor: rename 'setValue()' to 'change()'

* refactor: make tr_variant function paramters const

* chore: remove devel scaffolding

* refactor: rename peer_limit_ to peerLimit_

* refactor: do not use bitwise logic on booleans
2020-05-19 18:42:17 -05:00
Charles Kerr e7c099b8d8 chore: bump version to '3.00+' 2020-05-15 19:38:43 -05:00
Charles Kerr bb6b5a062e chore: bump version to '3.00'
If at first you don't succeed, bang your fingers on the keyboard until something works
2020-05-15 19:36:16 -05:00
Charles Kerr f4489c982e chore: bump version to '3.00+' 2020-05-15 18:53:16 -05:00
Charles Kerr 8a65b32b48 chore: bump version to '3.00' 2020-05-15 18:51:31 -05:00
Charles Kerr 82020d2e8c
fix: fix console warning when adding magnet links (#1229) 2020-05-15 12:22:06 -05:00
Mike Gelfand 87ca3529b7 Use release code signing certificate on Windows 2020-05-14 19:20:07 +03:00
Mike Gelfand 7db1c848ed Add new translations from Transifex (95% and higher)
GTK client: none.

Qt client: Finnish.

Mac client: none (there're suitable languages, but they're lacking XIB files
and we haven't switched to base localization yet).
2020-05-14 19:17:11 +03:00
Mike Gelfand 4aa60bad52 Sync existing translations with Transifex 2020-05-14 19:16:15 +03:00
qu1ck 2fab317040
Add TR_TORRENT_LABELS to env variables available to scripts (#868)
* Add TR_TORRENT_LABELS to env variables available to scripts

* Add unit test for tr_strjoin

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-05-13 18:54:44 -05:00
Mingye Wang d7f2dee4e0
crypto-utils: do tr_rand_int without abs (#1198)
* crypto-utils: do tr_rand_int without abs

There is really not much point in trying to abs a random int when you can just interpret it as unsigned in the first place.

* fixup! trailing space

how did this get in here?

* fixup! unsigned int

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-05-11 20:34:03 -05:00
Tom Richards a82e728ad5
fix: memory leak in magnet parsing (#1222)
* Fix memory leak in magnet parsing

* Update libtransmission/magnet.c

Co-authored-by: Charles Kerr <charles@charleskerr.com>

* Lint

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-05-11 19:57:06 -05:00
Charles Kerr fa6df52d58
chore: remove unused methods (#1207)
* chore: remove unused methods in qt client

* chore: remove unused libtransmission methods

* chore: remove unused gtk methods

* chore: remove more unused libtransmission methods

* chore: remove more unused code found by @reardonia
2020-05-11 17:20:46 -05:00
Noobsai 79d3133ebc
Fixed showing popup menu on RMB at tray icon (#1210) 2020-05-11 16:19:33 -05:00
Mike Gelfand 01368932b0 Add AppVeyor configuration for Windows release builds 2020-05-05 13:56:48 +03:00
Charles Kerr 5844284f58 chore: bump version to '3.00+' 2020-05-03 18:36:40 -05:00
Charles Kerr 3ef10de6d9 chore: bump version to '3.00' 2020-05-03 18:35:18 -05:00
Charles Kerr 6925be34b5
docs: make 'news' a markdown file (#1208)
* chore: fix markdown headers in NEWS.md

* chore: turn closed pulls/issues into links

* chore: linkify the release headers

* chore: fill in the 3.00 release date

* chore: use 'NEWS.md' in build scripts

* chore: tweak date format to YYYY-MM-DD
2020-05-03 18:33:57 -05:00
Mitch Livingston af51141cdf
Update NEWS for 3.00 (#1201)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-05-03 16:43:41 -05:00
Mike Gelfand 2d940e5caf
Bump copyright to 2020 (some more places) (#1206)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2020-05-02 12:26:42 -05:00
Charles Kerr 8739cb9c88
fixup! (trunk) update credits (#1205) 2020-05-02 11:42:18 -05:00
Mike Gelfand d1d27ae35f Add new translations from Transifex (95% and higher)
GTK client: none.

Qt client: Japanese.

Mac client: none (there're suitable languages, but they're lacking XIB files
and we haven't switched to base localization yet).
2020-05-02 13:26:24 +03:00
Mike Gelfand a79dbe4436 Sync existing translations with Transifex 2020-05-02 13:25:56 +03:00
Charles Kerr 797700e63f
perf: lazy-update actions enabled on change events (#1187)
* perf: lazy-update actions enabled on change events

Actions' sensitivity was being lazy-updated in response to other events
but accidentally were doing immediate updates in response to torrentsChanged
signals being emitted from TorrentModel. This commit makes that path a
lazy-update as well.

* chore: uncrustify

* refactor: make the idle updater a lambda again
2020-05-01 23:23:47 -05:00
Charles Kerr 87c9287b6a
refactor: in tr_truncd(), use DBL_DIG in printf() (#1186)
Previously it was calculated from `log10(1.0 / DBL_EPISILON) - 1`;
however, there's no need to calculate it out when there's an ANSI
standard that already spells it out consisely.
2020-05-01 22:11:45 -05:00
Mike Gelfand 2123adf8e5 CVE-2018-10756: Fix heap-use-after-free in tr_variantWalk
In libtransmission/variant.c, function tr_variantWalk, when the variant
stack is reallocated, a pointer to the previously allocated memory
region is kept. This address is later accessed (heap use-after-free)
while walking back down the stack, causing the application to crash.
The application can be any application which uses libtransmission, such
as transmission-daemon, transmission-gtk, transmission-show, etc.

Reported-by: Tom Richards <tom@tomrichards.net>
2020-04-29 17:29:38 +03:00
Bogdan Vasiliev a6482b0061
GTK: behavior improvements of the torrent details window (#892)
* gtk: torrent details file-list default sort

* gtk: save torrent details window size

* gtk: torrent details window size & sort, code style

* gtk: torrent details window, conf.c dict fix

Co-authored-by: Charles Kerr <ckerr@github.com>
2020-04-27 16:34:02 -05:00