* refactor: remove unused appname arg from tr_sessionLoadSettings()
* refactor: swap order of arguments to tr_sessionLoadSettings()
so way the optional arg can go at the end
* test: add benc2cpp.py, a benc beautifier for hardcoded cpp test cases
* test: add .resume file unit test
* refactor: use api_compat::convert_incoming_data() and convert_outgoing_data() on .resume files
* chore: mark TR_KEY_peers2_6_kebab as APICOMPAT
* chore: mark TR_KEY_speed_Bps_kebab as APICOMPAT
* chore: mark TR_KEY_use_speed_limit_kebab as APICOMPAT
* chore: mark as APICOMPAT: TR_KEY_use_global_speed_limit_kebab
* chore: mark as APICOMPAT: TR_KEY_ratio_mode_kebab
* chore: mark as APICOMPAT: TR_KEY_idle_limit_kebab
* chore: mark as APICOMPAT: TR_KEY_idle_mode_kebab
* chore: mark as APICOMPAT: TR_KEY_max_peers_kebab
* chore: mark as APICOMPAT: TR_KEY_added_date_kebab
* chore: mark as APICOMPAT: TR_KEY_seeding_time_seconds_kebab
* chore: mark as APICOMPAT: TR_KEY_downloading_time_seconds_kebab
* chore: mark as APICOMPAT: TR_KEY_bandwidth_priority
* chore: mark as APICOMPAT: TR_KEY_done_date_kebab
* chore: mark as APICOMPAT: TR_KEY_activity_date_kebab
* chore: remove remaining _kebab cases from resume.cc
* chore: clang-format
* Enable FreeType and Harfbuzz for Windows release builds
This fixes icon font glyphs rendering in Qt client.
* Bump Qt to 6.10.1
* Use pixel sizes for icon font glyphs rendering on Windows
The glyphs otherwise turn out of a smaller, non-standard size which
makes them less crisp.
Add a module to convert between tr4 and tr5 RPC / settings / config file payloads.
This will be used as a compatibility layer between Transmission 5's naming scheme
and Transmission <= 4.
Co-authored-by: Yat Ho <lagoho7@gmail.com>
Co-authored-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* refactor: replace Settings class with Serializable
* Fields can now be declared as const static,
so we only have to build this list once per class
instead of once per iteration.
* Add typesafe single-property getters & setters.
* Split the converter registry into a generic standalone class.
* refactor: make Serializable::Field::getter private
refactor: make Serializable::Field::const_getter private
* docs: tweak code comments
* refactor: make Serializable::Field::Getter private
refactor: make Serializable::Field::ConstGetter private
refactor: make Serializable::Field::MemberStorage private
* chore: fix readability-identifier-naming clang-tidy warnings
* Update libtransmission/serializable.h
Co-authored-by: Yat Ho <lagoho7@gmail.com>
* Update libtransmission/serializable.h
Co-authored-by: Yat Ho <lagoho7@gmail.com>
* Update libtransmission/serializable.h
Co-authored-by: Yat Ho <lagoho7@gmail.com>
* fixup! Update libtransmission/serializable.h
---------
Co-authored-by: Yat Ho <lagoho7@gmail.com>
* refactor: add quarks for the RPC method names
* update tr_quark_convert() to handle RPC method names
* refactor: use interned keys for RPC method names
* test: add torrentGetLegacy test
* refactor: use interned keys for RPC method names in tr-qt
* refactor: use interned keys for RPC method names in tr-remote
* refactor: use interned keys for RPC method names in tests
* refactor: use interned keys for RPC method names in tr-gtk
* chore: fix readability-identifier-naming regression
* chore: remove two unused quarks
looks like these were never used?
* chore: remove unused quark TR_KEY_have
unused since May 2024 3677e7a5
* chore: remove unused quark TR_KEY_date
unused since Oct 2021 9200d972
* fix: remove unused codepath
* chore: savepoint
* chore: code style
* refactor: add std::string_view constructor for NativeIcon::Spec
* chore: add TODO comment
* feat: honor per-desktop HIG on when to show menu icons
* chore: remove Faenza system-run icon
unused since b58e95910b
* chore: remove Faenza view-refresh icon
not needed due to b58e95910b
* chore: remove Faenza media-playback-pause icon
not needed due to b58e95910b
* chore: remove Faenza media-playback-start icon
not needed due to b58e95910b
* chore: add a safeguard against merging with incomplete TODO items
* feat: add more icons
refactor: remove some tracer cerr statements
* refactor: remove IconCache use from MainWindow
* chore: remove Faenza icon set
* chore: re-enable remote session network icon
* fix: FTBFS on Windows
* refactor: use symbolic names for Segoe icons
* docs: add links to Segoe MDL2 Assets icon list
* chore: savepoint
segoe icons work
still a WIP; includes test code that should not ship
* feat: use segoe::FastForward for action_StartNow
feat: use segoe::Move for action_SetLocation
refactor: make it easier for devs to force a font at compile time for development work
segoe license does not allow bundling but does allow dev work
chore: code_style.sh
* refactor: remove unused addEmblem()
* docs: add code comment on how to force an icon font
* fix: Win 10, 11 icons play nicely with dark mode
* chore: savepoint
add draft of SF Symbol -> QPixmap loader
* chore: remove dangling font reference from qrc file
* fix: FTBFS
* refactor: use bribri code for NSImage -> QPixmap
* feat: support dark, light mode when rendering SF Symbol monochrome icons
* fixup! feat: support dark, light mode when rendering SF Symbol monochrome icons
fix: fail gracefully on macOS 11
* chore: code style
* chore: tweak some SF Symbol icon choices
* chore: consistent uppercase for hex segoe QChars
* chore: undefine DEV_FORCE_FONT_FAMILY and DEV_FORCE_FONT_RESOURCE
* chore: savepoint
* refactor: clean up NativeIcon impl
* refactor: remove unused MenuMode::Other
* refactor: DRY in FilterBar::createActivityCombo()
* chore: remove obsolete code comment
* refactor: rename icons::Facet as icons::Type
* fix: oops
* refactor: minor cleanup
* fix: tyop
* chore: remove unused #includes
* fix: add modes for some icons
* refactor: tweak some icon choices on macOS
* fix: ensure icons are visible on File, Help menus
fix: remove unused local variable
* refactor: tweak some icon choices for XDG
* refactor: remove the fallback QStyle::StandardPixmaps
These interfere with deciding whether an icon is well-defined and
unambiguous as per the macOS and Windows HIG guidelines.
If a standard or unambiguous icon exists in the native icon sets,
specify it with an SF Symbols name, a Segoe codepoint,
or XDG standard icon name. Otherwise, leave those fields blank.
* refactor: remove unused #includes
* docs: add "choosing icons" section in NativeIcons.cc
* refactor: simplify icons::shouldBeShownInMenu()
* refactor: reduce unnecessary code shear from main
* refactor: make TorrentDelegate::warning_emblem_ const
* refactor: extract-method MainWindow::updateActionIcons()
* feat: update MainWindow icons when light/dark theme changes
* feat: restore the QStyle::StandardPixmaps as fallbacks
Can be used on older Windows / macOS if Segoe or SF Symbols are unavailable
* refactor: add button text for add/edit/remove tracker buttons
QStyle::StandardPixmap doesn't have good icons for these,
so let's ensure that these buttons have visible text.
* fix: building NativeIconMac.mm on mac even if not clang
* chore: iwyu in new code
* docs: tweak the "Choosing Icons" comments again
* fix: handle changed QStyles in icons::icon()
do not cache point_sizes set between calls
refactor: const correctness
* fixup! refactor: simplify icons::shouldBeShownInMenu()
refactor: minor code tweak, declare vars in order that they are used
* ci: move macos-13 actions to macos-14
We have some GitHub Actions which we try to run on the oldest version of
macOS available. That's currently macos-13, but GitHub is deprecating it:
> This is a scheduled macos-13 brownout.
> The macOS-13 based runner images > are being deprecated. For more details,
> see https://github.com/actions/runner-images/issues/13046.
We last bumped this from macos-12 to macos-13 in 43f5ca8#7275
* ci: do not specify architectures in macOS CI builds
GitHub has is phasing out su pport for macOS x86_64 runners
* ci: fold the macos-X-from-tarball jobs into a single job
* ci: fold macos-26 and macos-14 jobs into a single job
* Use macos-15-intel runners instead of macos-14 (arm64).
If we test compilation two times, at least do it on different host
archs.
Also macOS 15 supports latest Xcode with macOS 26.1 SDK.
* Make job names more meaningful
* Fix indentation in macos-xcodebuild-universal
---------
Co-authored-by: Charles Kerr <charles@charleskerr.com>