Commit Graph

16368 Commits

Author SHA1 Message Date
Cœur
312078806d warning: The CFBundleVersion of an app extension ('1') must match that of its containing parent app ('14718.1.2'). (#7762) 2025-11-07 20:19:04 -06:00
Charles Kerr
f20fd5e373 chore: bump transmission 4.1.0 beta.3 (#7769)
* chore: bump to Transmission 4.1.0-beta.3

* docs: add release notes for 4.1.0-beta.3

* docs: update release notes
4.1.0-beta.3
2025-11-05 17:54:17 -06:00
Mitch Livingston
d15c8626d8 Updated app icon for Liquid Glass (#7736) 2025-11-05 17:46:43 -06:00
Mike Gelfand
b27fafca45 Sync translations (#7768)
* Sync translations with code

* Sync translations with Transifex
2025-11-05 22:05:13 +00:00
github-actions[bot]
418434a5f3 chore: update generated transmission-web files (#7726)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-05 14:51:54 -06:00
Charles Kerr
152e468e3a fix: filter-by-tracker failed after the tracker list changed (#7761) 2025-11-05 14:25:45 -06:00
Rukario
c35af04606 feat: revamped search bar for web client (#6948) 2025-11-05 14:21:50 -06:00
Rukario
90268076b8 refactor: clean up Flexbox style rules in CSS (#7358) 2025-11-03 12:26:37 -06:00
Rukario
7be9808ccd Privacy and error filter for web client (#6977)
Squashed all commits + co-authoring previous works

Co-authored-by: Derek Reiff <d@derekr.net>
Co-authored-by: Will Da Silva <will@willdasilva.xyz>
Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>
2025-11-03 12:24:07 -06:00
Dzmitry Neviadomski
85a325ed71 feat: Introduce PowerManager on macOS (#7543)
- Use modern APIs to prevent idle system sleep.
- Consolidate all related logic.
- Make Controller class a little bit less huge.

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-11-02 14:41:22 -06:00
Dzmitry Neviadomski
90b52bc65c Improve building crc32c target with Xcode (#7754)
* Fix input path and add output path for Copy Header step in crc32c

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Enable build step sandboxing for crc32c target.

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Dummy commit for Xcode as it keeps reordering targets

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

---------

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-11-02 12:29:22 -06:00
Rukario
afdbfdbcda feat: viewport neutral layout and style for small viewports in web app (#7328)
* Update transmission-app.scss

* Update transmission-app.scss
2025-11-02 11:58:15 -06:00
Yat Ho
2a3a8ea364 perf: even faster wishlist (#7744)
* chore: add comments to annotate observer dependencies

* refactor: overhaul wishlist

Avoid expensive `count_active_requests` and `has_active_request_to_peer`.
- Remove "endgame"
- Never rebuild candidate list mid-download

* chore: code cleanup

* test: fix

* perf: sort block list in reverse order

* refactor: reduce request timeout from 90 to 15 seconds
2025-11-02 11:55:38 -06:00
Rukario
50e0ffb910 feat: tweak font size for web app (#7329) 2025-11-02 11:52:54 -06:00
Rukario
78c50747cc refactor: offload icons from HTMLdoc to JavaScript for icon deployment (#7277)
* Update index.html

* Update utils.js

* Update torrent-row.js

* Update transmission-app.scss

* Update transmission.js

* Freezing object with `Object.freeze`

Co-Authored-By: Yat Ho <lagoho7@gmail.com>

* Update torrent-row.js

* Update utils.js

* Prefers destructuring assignment over bracket notation accessor

Co-authored-by: Yat Ho <lagoho7@gmail.com>

---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>
2025-11-02 11:52:22 -06:00
Mike Gelfand
7b4c0ee096 Use native folder icon in torrent files tree (#7757)
Not all Qt styles seem to provide a `DirOpenIcon` icon (Windows 11 style
doesn't, which leads to no icon in the tree), and `DirIcon` is usually
the same (or worse) as the one returned by our icon cache. It's also not
clear why we'd want an _open_ folder icon specifically, given that the
condition in the `else` branch is essentially checking the same thing.
2025-11-02 00:38:01 +00:00
Mike Gelfand
602993cb67 Draw custom colored progress bars (Qt client) (#7756) 2025-11-01 23:48:18 +00:00
Yat Ho
f4bd21d97f fix: acquire lock in tr_peerMgrPeerStats (#7638) 2025-11-01 19:02:16 +00:00
Mike Gelfand
2b4803a023 Bump Windows dependencies (#7755) 2025-11-01 18:59:13 +00:00
Dzmitry Neviadomski
9b496350a9 feat: Data-based QuickLook extension for macOS 12+ (#7213)
* feat: Prepate Xcode project skeleton for QuickLookExtension

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Add initial implementation of QuickLookExtension

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Add working Data-based QuickLook Preview

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Add new style.css

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Copy Localization.strings as is from legacy QuickLook plugin

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* fixup: Fix compilation missing NSStringAdditions

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* fixup: Apply clang-format, update style.css, fix file name reference

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Adopt CMake build from legacy QuickLook Plugin

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* fixup: Remove counter for debug

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* fixup: Make header row for file span across all table

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* feat: Improve style.css

- Use CSS Vars
- Add missing paddings
- Add sticky headers for tables

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Use UTType for Image generation more directly.

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Fixup for Xcode project checks in PR

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Fix Copyright and remove Xcode generated comments

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Remove unneeded fields from targets Info.plist template.

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Move tx localization to new QuickLook Extension

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Apply code review suggestions

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

---------

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-10-31 11:30:55 -05:00
Rukario
1d0db31ae7 feat: submenu to group away context menu items (#7263)
* Update context-menu.js

* Update transmission-app.scss

* Update transmission-app.scss

* Update transmission-app.scss

* Update context-menu.js

* Update transmission-app.scss

* Update context-menu.js

* Update transmission-app.scss

* Update context-menu.js

* Update transmission-app.scss

* Update context-menu.js

* Update action-manager.js

* Update context-menu.js

* Update context-menu.js

* Update action-manager.js

* Update context-menu.js

* Update context-menu.js

* Update context-menu.js

* Update context-menu.js
2025-10-30 18:19:48 -05:00
Yat Ho
bfb5e35021 chore: add suffix to private and protected members (#7746) 2025-10-30 10:13:27 -05:00
Yat Ho
555d4681c5 perf: reduce memory profile in announce failed handling (#7748) 2025-10-30 10:11:56 -05:00
Yat Ho
648c65868c feat: use Type=notify-reload in daemon service (#7570)
* feat: use `Type=notify-reload` in daemon service

* build: keep systemd names consistent

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-10-29 09:04:04 -05:00
Yat Ho
02a8bafb28 refactor: more generic http announce failure handling (#7745) 2025-10-28 16:20:43 -05:00
Charles Kerr
db67c258a9 refactor: don't use evbuffer in transmission-remote (#7739)
* refactor: remove evbuffer use in transmission-remote

Keep reducing our libevent API use, especially outside of libtransmission

* chore: reduce some unnecessary diffs to main
2025-10-27 18:30:25 -05:00
Yat Ho
41dd2cfd53 fix: accept either one of udp announce response (#7583)
* fix: accept either one of udp announce response

* fix: udp announcer tests should read packets in-order

* test: housekeeping

* test: new tests for the new logic
2025-10-27 12:08:59 -05:00
Charles Kerr
f26eca5fd5 refactor: avoid evutil_ascii_strcasecmp() in get_quota_space() (#7740) 2025-10-27 11:47:56 -05:00
Yat Ho
48cde98788 refactor: use new tr_variant API for stats.json (#7098)
* refactor: load stats with new tr_variant API

* refactor: save stats with new tr_variant API
2025-10-27 11:25:18 -05:00
Yat Ho
4f26b62908 fix: respect min interval and interval if they exist (#7493)
* fix: parse `min interval` and `interval` if they exist

* fix: account for `interval` and `min interval` during tracker failure

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-10-27 10:44:29 -05:00
Yat Ho
4bd9aa9b06 refactor: prioritise peers slots for downloading torrents (#7306)
* chore: housekeeping

* refactor: allow downloading torrents to steal connection slots

To be exact, the way it works is that downloading torrents will be allowed to start outgoing connections despite the session peer limit is reached. The periodic peer limit enforcements should keep the downloading connections and remove the idle connections in seeding torrents.

* refactor: prefer peers from downloading torrents when enforcing peer limit
2025-10-27 10:43:14 -05:00
Yat Ho
5c7135c319 build: define GDK_VERSION_MIN_REQUIRED (#7633)
This suppresses deprecation warnings in newer GDK versions that weren't in the version that comes with our minimum GTKMM version.
2025-10-27 09:45:03 -05:00
Cœur
e23ff0c7ae [peer-mgr] Prevent out-of-bounds in update_canonical_priority (#7738)
* [peer-mgr] Prevent out-of-bounds in update_canonical_priority

* code review: prefer `is_valid()`
2025-10-27 09:33:30 -05:00
Mike Gelfand
f8d8676f60 Sync translations (#7742)
* Fix "Message contains an embedded URL" xgettext warnings

See https://www.gnu.org/software/gettext/manual/html_node/No-embedded-URLs.html

* Sync translations with code

* Sync translations with Transifex
2025-10-27 14:39:58 +01:00
Charles Kerr
454b810698 fix: performance-for-range-copy warning in tr-peer-info-test.cc (#7741)
this warning broke the clang-tidy-libtransmission-win32 CI
2025-10-26 21:07:52 -05:00
Yat Ho
d31e77a494 chore: update transmission-web package (#7003)
* chore: update minor versions

* chore: bump to `style-loader@4`

major version change

* refactor: combine `#mainwin-toolbar:nth-last-child(2)` rule

* refactor: cleanup scss definitions

Notes: `.single-file` is no longer used in code

* chore: bump `esbuild-sass-plugin@3` `esbuild@0.25`

* chore: uninstall unused `stylelint-config-standard`

In fact, it was never used since added to `package.json`.

* chore: bump `stylelint@16` `stylelint-config-sass-guidelines@12`

* chore: bump `eslint@9` `eslint-plugin-sonarjs@1` `eslint-plugin-unicorn@61`

* chore: enable prettier for whole `transmission-web` package

* chore: bump `@primer/stylelint-config@13`

* chore: update minor versions

* build: remove lint config files from CMake dependency

* chore: bump minor versions

* chore: bump `eslint-plugin-sonarjs@3`

* ci: use `actions/setup-node@v4` to install Node.js

So that there's no risk of the OS package manager's Node.js version being too low.

Except in Alpine, which does not work with `actions/setup-node@v4`. Ref: https://github.com/actions/setup-node/issues/387

* chore: replace `lodash.isEqual` with `fast-deep-equal`

* chore: bump minor versions

* chore: re-generate package-lock.json

* chore: fix lint errors
2025-10-25 12:09:36 -05:00
Yat Ho
0715897fc8 feat: use canonical peer priority to decide which peers to keep (#6981)
* feat: CRC32-C

* feat: canonical peer priority calculation bep-40

* test: add test cases for IPv4 canonical peer priority

* refactor: compare by canonical priority

* fix: use network byte order for peer ports

* test: more cases

* build: xcode

Co-authored-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* ci: test system crc32c library

---------

Co-authored-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-10-25 12:05:20 -05:00
Yat Ho
e7d4a69107 fix: update wishlist when files wanted changed (#7733)
* refactor: extract salt calculation to method

* fix: update wishlist when files wanted changed
2025-10-24 20:48:48 -05:00
Ilkka Kallioniemi
c4dc244212 docs: add Debian 13 building instructions
* Add Debian 13 / Trixie docs

* Remove Debian 11 instructions
2025-10-20 17:34:39 -05:00
Yat Ho
07e2ea93ad docs: use IEC standard units (#7232)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-10-17 18:05:11 -05:00
Yat Ho
03b5e3f716 chore: deprecate torrent-get.manualAnnounceTime (#7497) 2025-10-17 18:00:40 -05:00
Yat Ho
9055650c8f refactor(remote): delegate percent done calculation to core (#7622) 2025-10-17 17:58:59 -05:00
Managor
3f7e1e4309 Update transmission-daemon.1 (#7559) 2025-10-16 08:45:27 -05:00
Yat Ho
49c099f6fa refactor: add more details to logs in ip cache (#7525)
* refactor: add more details to error logs in ip cache

* refactor: improve logs for ip cache set methods

* code review: warn if cannot obtain any source address

* refactor: error if cannot obtain any source address

* code review: better variable naming
2025-10-16 08:44:53 -05:00
Geoffrey Bonneville
c0ef40a52a fix: flush torrent files on piece completed in sequential mode (#7489)
* fix: flush torrent files on piece completed in sequential mode

* Mark flush_torrent_files as const

* Apply review changes

* docs: Update cache-size-mb description in Editing-Configuration-Files.md

* docs: written on disk -> written to fs

* fix: flush torrent files when switching to sequential download

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-10-16 08:29:47 -05:00
Yat Ho
bae63e4cfc fix: Band-Aid fix for utp speed limit (#7541)
* fix: don't clamp in `can_read_wrapper()` for TCP

* fix: notify bandwidth different in utp and TCP
2025-10-15 22:19:51 -05:00
Yat Ho
894c0859aa ci: run clang-tidy for tests (#7526)
* ci: run clang-tidy for tests

* fix: clang-tidy warnings

* ci: run clang-tidy only when needed
2025-10-15 19:21:34 -05:00
Yat Ho
58c4386ddd fix: correctly get Windows socket error codes in get_source_address (#7524)
* fix: use correct error codes in `get_source_address()` on windows

* fix: get `sockerrno` value before closing socket
2025-10-15 19:21:00 -05:00
Rukario
c885646d65 fix: also share grid-area: icon; across full-compact modes (#7356) 2025-10-15 19:19:15 -05:00
Yat Ho
b5affa7ff0 fix: ignore whitespaces in whitelist (#7522)
* feat: accept multiple delimiters in tr_strv_sep

* fix: ignore whitespaces in whitelist
2025-10-15 18:59:26 -05:00