* feat: Qt client now formats RPC requests in the RPC server's preferred style
* add macro to build TrRpcVersionSemver
Co-authored-by: Yat Ho <lagoho7@gmail.com>
Move `FavIconCache` into a new `transmission::app` namespace.
I intend to add a couple more pieces into libtransmission to avoid
code duplication between the Qt and GTK apps.
We should consider making another module for these pieces if they start
to pile up; but for now, let's cordon them into their own namespace.
* 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