* fix: mime-type icons on Windows
* fixup! fix: mime-type icons on Windows
use file_icon_ as the fallback icon
do not mark the temp string as translatable
---------
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* refactor: add StatsMode to libtransmission-app
* test: add display-mode unit tests
* feat: add apicompat for StatsMode
* refactor: use StatsMode in Qt client
* refactor: add template method for gtr_set_pref()
* refactor: use StatsMode in GTK client
* ci: use the all-tests alias instead of hardcoding tests
* ci: copy runtime DLLS into test output directory for Windows test binaries
* fix: warning: declaration shadows a variable in the global namespace [clang-diagnostic-shadow]
* fix: warning: use 'contains' to check for membership [readability-container-contains]
* fix: warning: variable gl_confdir can be made static or moved into an anonymous namespace to enforce internal linkage [misc-use-internal-linkage]
* warning: function 'TorrentFilter::match_mode' has a definition with different parameter names [readability-inconsistent-declaration-parameter-name]
* refactor: use std::filesystem for tr_sys_path_is_same()
* refactor: use std::filesystem for tr_sys_path_exists()
* refactor: use std::filesystem for tr_sys_path_is_relative()
* refactor: use std::filesystem for tr_sys_path_get_info()
* refactor: use std::filesystem for tr_sys_dir_create()
* refactor: add `maybe_set_error()` helper
* refactor: change behavior to match previous impl
* fix: tr_sys_path_is_same() checks
refactor: address code review feedback
* refactor: address code review feedback
* chore: fix readability-else-after-return clang-tidy warning
* fix: warning: Value stored to 'created' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
fix: warning: parameter 'permissions' is unused [misc-unused-parameters]
* ci: work around a MSVC STL 14.44.35207 clang-tidy false warning
* refactor: simplify return logic of tr_sys_path_is_same()
* refactor: callers now own the return value of tr_torrentStat()
fix one potential thread issue by simplifying ownership
* refactor: make tr_stat_errtype an enum class; move into tr_stat
* refactor: order tr_stat fields to reduce padding
* chore: fix branch shear
* fix: int-to-enum-class comparison
* fix: namespace regression
* chore: make clang-tidy happy
* refactor: tr_ctorGetDownloadDir() returns a std::optional<std::string>
* refactor: tr_sessionGetConfigDir() now returns a std::string
* refactor: tr_sessionGetDownloadDir() now returns a std::string
* refactor: tr_sessionGetIncompleteDir() now returns a std::string
* refactor: tr_sessionGetRPCWhitelist() now returns a std::string
* refactor: tr_sessionGetRPCPassword() now returns a std::string
* refactor: tr_sessionGetRPCUsername() now returns a std::string
* refactor: tr_sessionGetScript() now returns a std::string
* refactor: tr_blocklistGetURL() now returns a std::string
* refactor: tr_ctorGetSourceFile() now returns a std::optional<std::string>
* refactor: tr_torrentFile() now returns a std::string
* refactor do not cache style in convert_outgoing_data() -- not testing-friendly
* refactor: pass a QNetworkAccessManager into RpcClient constructor
this way we can inject a fake one in tests
* refactor: add RpcClient tests
* refactor: remove pointless QVERIFY call
* refactor: add api_compat::default_style()
* refactor: add api_compat::set_default_style()
* test: parameterize RpcClient tests for Tr4 and Tr5
* refactor: replace TR_RPC_SESSION_ID_HEADER macro with TrRpcSessionIdHeader constant
refactor: replace TR_RPC_RPC_VERSION_HEADER macro with TrRpcVersionHeader constant
* refactor: remove macro TR_DEFAULT_RPC_PORT_STR
* refactor: remove macro TR_DEFAULT_PEER_PORT_STR
* refactor: remove macro TR_DEFAULT_PEER_LIMIT_GLOBAL_STR
* refactor: remove macro TR_DEFAULT_PEER_LIMIT_TORRENT_STR
* refactor: remove macro TR_DEFAULT_PEER_SOCKET_TOS_STR
* refactor: replace DEFAULT_BLOCKLIST_FILENAME macro with TrDefaultBlocklistFilename constant
* refactor: rename TrHttpServerDefaultBasePath to TrDefaultHttpServerBasePath for consistency with other defaults
* refactor: group constants together near the top of transmission.h
* refactor: hardcode string lengths to avoid FTBFS on older C++17 compilers
* refactor: move macros to the tr_getopt clients
* refactor: explicitly specify the parameter index to avoid passing in TrRpcSessionIdHeader twice
* refactor: add an error message to new static_asserts
* fix: hicpp-use-auto,modernize-use-auto
* refactor: make Prefs::getKey() a static method
refactor: make Prefs::isCore() a static method
refactor: make Prefs::type() a static method
* refactor: Application takes a Prefs& arg, not a std::unique_ptr<Prefs> arg
* fix: bugprone-exception-escape
save settings by calling prefs.save() from main()
* refactor: load settings by calling prefs.load() from main()
* refactor: use preferred declaration order in Prefs
* fixup! fix: bugprone-exception-escape
* refactor: add Prefs::current_values()
* refactor: clean up namespace use in Prefs.cc
* feat: add QString, QDateTime serializers
* test: add scaffolding for testing Qt code
test: add tests for Prefs
* refactor: remove unused #includes
* build: add clang-tidy rules to tests/qt/
* refactor: clean up the new test code a little
* chore: add missing copyright statement
* ci: ensure Qt6Test is installed
build: check for QTest when ENABLE_TESTS + ENABLE_QT are ON
* fixup! feat: add QString, QDateTime serializers
* fix: Wswitch warning
* build: do not disable tests in release/windows/build-qt5.psl, build-qt6.psl
* ci: set QT_QPA_PLATFORM for running new Qt tests
* test: build cleanly in Qt 5.15
* fixup! fixup! feat: add QString, QDateTime serializers
fix QDateTime serializer on macOS
* fixup! ci: set QT_QPA_PLATFORM for running new Qt tests
install xcb-util-cursor on alpine
* chore: update copyright year in COPYING
* chore: update copyright year in user-facing files (1)
* chore: update copyright year in user-facing files (2)
* chore: update copyright year in cmake/transmission.rc.in
---------
Co-authored-by: github-actions <github-actions@github.com>
* refactor: add libtransmission-app
* refactor: add libtransmission-app/display-modes.h
* refactor: use app::SortMode, app:ShowMode in Qt client
* feat: add to_variant(), to_value() in serializer
* refactor: use app::SortMode in GTK client
* refactor: use app::ShowMode in GTK client
* refactor: make naming consistent with libtransmission-app
* refactor: remove Session::addKeyName()
refactor: remove Session::removeKeyName()
these should have been removed a long time ago
* fix: better logging on error in Converters
* refactor: add Qt-app-specific variant converters
* refactor: use tr_variant::unmanaged_string(tr_quark) when in torrent_get table mode
* 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