* chore: fix CGFloat comparison warnings in macOS code.
There are 2 cases:
1. Speed comparisons.
The lowest significant value displayed in UI is 0.1 bytes per sec.
See [NSString stringForSpeed] and [NSString stringForSpeedCompact].
2. Ratio limit comparison.
The lowest significant value displayed in UI is 0.01 (no unit).
This is based on maximumFractionDigits=2 set in related XIB file.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: fix warning about shadowed variable
CGFloat const difference was used twice in the same scope
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: fix unused block parameter warnings
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: disable GCC_WARN_64_TO_32_BIT_CONVERSION for libtransmission
This warnings are not reported with CMake build.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: disable CLANG_WARN_STRICT_PROTOTYPES for dht
This is third party target, warning is not enabled with CMake build.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: disable '-Wexit-time-destructors' warning with CMake.
There are two cases when this is reported in libtransmission:
1. `log_state` in anonymous namespace in `log.cc`.
2. static inline `dh_pool_mutex` in `tr_handshake` in `handshake.h`.
I don't see how this may be improved or how this affects correctness,
so don't nag about that.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
---------
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
Version 3.14 was recently released with security fixes, and GitHub
runners have been updated to use it. Don't hardcode the version in
Program Files directory name to support any 3.x. Since 3.x support will
be dropped within a year, need to plan migration to 5.x when it's
released (4.x isn't suitable because of missing heat replacement).
* Support building Qt using CMake 3.28+
CMake 3.28 dropped support for deriving installation prefix(es) based on
PATH environment variable on Windows. Since all the other built packages
already pass necessary prefix path(s) explicitly via CMAKE_PREFIX_PATH
and it works for them, do the same for Qt 6 as well. Building Qt 5 isn't
affected as it doesn't use CMake.
* Fix environment variable name in `windows` build job
Using wrong name resulted in empty `CMAKE_PREFIX_PATH` CMake setting
value, which showed the effects of CMake 3.28 changes yet again.
* refactor: use fmt::print in log.cc
https://github.com/fmtlib/fmt/issues/428#issuecomment-395442159
> You can use fmt::print("...\n") on Windows as well.
Use this mechanism instead of tr_sys_file_write_line()
* refactor: use FILE* in daemon
* refactor: remove unused tr_sys_file_flush_possible()
* refactor: remove unused tr_sys_file_write_line()
* refactor: remove unused tr_sys_file_get_std()
* refactor: remove unused tr_std_sys_file_t
* only use a single concurrent queue for timeMachineExclude instead of one queue per torrent
* moving to +initialize for now (will become a `static let` in Swift anyway)
* DISPATCH_QUEUE_SERIAL because DISPATCH_QUEUE_CONCURRENT is limited to 64 simultaneous torrent dispatch_async
* `static` is better than `global`, to make it private to a single compilation unit
* perf: make pref_is_savable() constexpr
* refactor: use std::vector in tr_torrents::removedSince()
* chore: remove unused typedef in OptionsDialog
* perf: use std::vector in tr_num_parse_range()
* perf: use small::max_size_set in FileTreeItem::update()
* perf: use small:set in Wishlist::next()
* perf: use small:map in FilterBar
* perf: use small::map for counts in tr_logAddMessage()
* perf: use small::max_size_map in FileTreeModel::twiddleWanted()
perf: use small::max_size_map in FileTreeModel::twiddlePriority()
* perf: use a std::array instead of std::map in TorrentFilter::update()
* perf: use a std::array instead of std::map in TorrentSorter::set_mode()
* perf: use a std::array instead of std::map in TorrentSorter::update()
* perf: use small::set in Application::Impl::on_rpc_changed_idle()
* perf: use std::array for MessageLogColumnsModel::level_names_
* fixup! perf: use std::array for MessageLogColumnsModel::level_names_
* fixup! perf: use small::map for counts in tr_logAddMessage()
* fix: specify `port-test` ip protocol in response when possible
* feat: IPv4 and IPv6 port test in Qt Client
* feat: shorten timeout of `port-test`
* feat: IPv4 and IPv6 port test in Gtk Client
* chore: housekeeping
* refactor: remove IP protocol error message
* code review: mikedld gtk
* feat: return tag in qt rpc response
* code review: mikedld qt
* feat: move port test button up alongside spin button
* fixup! code review: mikedld gtk
* fixup! code review: mikedld qt
* code review: port status initial text
* feat: decouple ipv4 and ipv6 status updates (GTK)
* feat: decouple ipv4 and ipv6 status updates (Qt)
* code review: unknown protocols are non-pending
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* code review: simplify status text when the statuses are the same
* Revert "feat: return tag in qt rpc response"
This reverts commit 2a022c2bb0ee7ddad81f8176839cf0d043422368.
* code review: add translation context for status text (GTK)
* code review: move `port_test_pending_` to `Impl` (GTK)
* fixup! code review: move `port_test_pending_` to `Impl` (GTK)
---------
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>