* 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>
* Adopt NSTitlebarAccessoryViewController for filter and status bars
Also remove custom views as separator is drawn with Horizontal Line.
Simplifies maintainance a bit.
* Unembed main content and status bar from NSStackView
Stack is no longer needed, as bars are moved into titlebar.
Also sets compatibilityVersion to Xcode 12.0.
Now 'natively' supports BuildIndependentTargetsInParallel option.
No more pain with this line being removed every time Xcode project
touched.
- 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>
* Revert "feat: save queue order between sessions (#6753)"
This reverts commit 4db50dae10.
* refactor: new torrent queue class
* refactor: replace queue code with new class
* test: new tests for new class
* feat: store and load queue order across sessions
* build: xcode
* refactor: use set_difference instead of unordered_set
* code review: use `tr_torrent_id_t` as key
* fix: don't overflow when moving up/down
---------
Co-authored-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: housekeeping
* perf: short circuit peer has block check
* refactor: track active requests in each respective peer
* refactor: swap `ActiveRequests` with new request tracking method
* refactor: use bitfield to store active requests per peer
* perf: check active request numbers first
* refactor: initialise candidate values in constructor
* refactor: better naming
* refactor: use `find_by_block()` more
* refactor: store wishlist mediator in swarm object
* test: make it compile
* test: update endgame test
* test: new test for choke event
* test: remove redundant lines
* test: new test for request event
* test: new test for reject event
* refactor: cache block have state in wishlist
* test: fix `gotBlockResortsPiece`
* fixup! refactor: track active requests in each respective peer
* fixup! test: fix `gotBlockResortsPiece`
* fix: count webseeds when calculating active requests
* build: update xcode project
* fix: add missing `candidates_dirty_` checks
* chore: remove old `depends-on` comments
* fixup! refactor: use bitfield to store active requests per peer
* refactor: extract block peer event to separate function
* perf: reorder conditions by overhead
* perf: check for completed block instead of completed piece
* chore: remove duplicated "unrequested piece" check
* refactor: merge similar block size sanity check
* refactor: use map to store number of requests in wishlist
* refactor: add asserts
* refactor: flush write buffer as soon as there is new data
* refactor: more accurate function naming
* fix: account for corrupt pieces in wishlist
* fix: account for unaligned blocks in wishlist
* Revert "fix: account for unaligned blocks in wishlist"
This reverts commit c3fce93cbae49c11d62e26caccedf55c1987aa95.
* fixup! refactor: use map to store number of requests in wishlist
* fix: account for unaligned blocks in wishlist v2
* chore: add `[[nodiscard]]`
* fixup! fix: account for unaligned blocks in wishlist v2
* fix: crash when handshake finishes in the middle of function
* refactor: avoid repeated subscripting in `announcer-udp.cc`
* chore: remove redundant locking in global ip cache
* chore: misc code cleanup in global ip cache
* fixup! chore: misc code cleanup in global ip cache
* refactor: remove `tr_global_ip_cache::create()`
* refactor: rename `tr_global_ip_cache` to `tr_ip_cache`
* build: sync changes to xcode
* fix: Sparkle Version Comparator
* Code review: Reducing CFBundleVersion to three components and avoiding versionComparatorForUpdater
* adding +99 when it's a non-beta release
* code review: set CFBUNDLE_VERSION and unset components
* re-adding support for ignoring beta
* refactor: add miniupnp 2.3.0 as a submodule
* refactor: remove miniupnpc submodule
* deps: specify the 2.3.0 branch
* build: point to miniupnp monorepo subdirectory miniupnpc
* Fix building miniupnp from Xcode
* fixed miniupnp updateminiupnpcstrings.sh usage
* updating to miniupnpc 2.2.6
* fix build for Windows
* code review: removing the header move
---------
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* 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>
* Sync translations with code
* Move Qt client's it_IT to it
"it_IT" was merged into pre-existing "it", so no (huge) loss of translations
should occur; "it" was chosen as a base since it contains more up-to-date
translations while "it_IT" hasn't changed much in years (I think, because most
phrases were marked as reviewed and so impossible to change by most translators
based on their assigned role).
* Sync translations with Transifex
* Add new languages (90+% complete)
Mac client:
* Basque (eu)
* Hebrew (he)
* Hungarian (hu)
* Japanese (ja)
* Polish (pl)
* Portuguese (Brazil) (pt_BR)
* Swedish (sv)
* Ukrainian (uk)
* Chinese (China) (zh_CN)
* Chinese (Taiwan) (zh_TW)
Qt client:
* Icelandic (is)
Also, fix Qt client languages list to include those already in
translations/ subdirectory and 90+% complete:
* Hebrew (he)
* Chinese (Taiwan) (zh_TW)
* Fix Xcode language mapping for pt_PT/pt-PT
* Fix Xcode language mapping for pt_BR/pt-BR
* Fix Xcode language mapping for zh_CN/zh-CN
* Fix Xcode language mapping for zh_TW/zh-TW
* Sync translations with Transifex (again)
Primarily to fixup "Port: $@" translation, but there were other updates in the
meantime.
* Update list of QuickLookPlugin languages
* Fixup local pt-BR language name in tx config
* refactor: do not use tr_strlcpy() in tr_strratio()
* refactor: do not use tr_strlcpy() in bindUnixSocket()
* refactor: do not use tr_strlcpy() in trackerView()
* chore: remove tr_strlcpy() unit tests
* chore: remove tr_strlcpy()
* chore: remove -DHAVE_STRLCPY from Xcode build
* fixup! refactor: do not use tr_strlcpy() in trackerView()
chore: fix copypaste bug
* pbxproj refactor:
- Renamed "Copy Files" build phase more explicitly
- Factored "Cocoa.framework" references and removed unused frameworks
* - Made timer.h "Project" only instead of Public
* - Declared libtransmission headers as C++ headers
Converted TorrentTableView from older style cell based table to more modern view based
* floating group rows are now used for an improved groups experience
* individual group indicators are hidden when _Use Groups_ is selected to minimize visual clutter (see #3328 )
* removed negated `usesAlternatingRowBackgroundColors` flag for minimal view in Controller.mm (personal preference - easy to restore)