* fix: save log level, encryption mod, preallocation mode as ints
* fix: ensure log level is saved in tr_sessionGetSettings()
* fix: ensure the right verbosity row is selected
* Sync translations with code
* Sync translations with Transifex
* Remove Mac menu title that isn't displayed and shouldn't be translated
* Add context to logging level strings in GTK client
* Use "µTP" consistently in code
* Use ellipsis instead of three docs in Qt client strings
* Close HTML tags in blocklist-related strings
* Remove trailing space from a translatable string in Qt client
* Add missing plural forms for English strings in Qt client
* Fix spelling: metaInfo -> metainfo
* Make compact mode switch work for both GTK 3 and 4
* Implement GTK 4-specific view gesture handling
* Fix torrents view context menu on GTK 4
* Explicitly show/hide menubar on startup/teardown
* Switch from `Gtk::Pixbuf` to `Gio::Icon` for views
* Support GTK 4 exceptions based on `std::exception`
* Fix options menu setup with GTK 4
* Use `delete-event` (GTK 3) and `close-request` (GTK 4) signals to handle window clousure
* Add custom file chooser button implementation
GTK 4 drops FileChooserButton widget and suggests implementing it using
Button.
* Add helpers to set X11 hints with GTK 4
* Remove `HigWorkarea` class that's no longer used
* Make main menu shortcuts work with GTK 4
* Make drops work in main window and make dialog with GTK 4
* Remove unused `gtr_action_get_widget()` helper
* Fix text direction mark setup with GTK 4 (due to switch to enum class)
* Fix file tree font size calculation with GTK 4
* Fix crash during shutdown with GTK 4
* Switch from `RadioButton` to `CheckButton` for compatibility with GTK 4
* Fix opening files with GTK 4
* Rework torrent cell renderer to support both GTK 3 and 4
* Disable system tray icon support with GTK 4
* Fix windows positioning with GTK 4
* Fix focus event handling with GTK 4
* Adapt to tree model row/iterator changes in GTK 4
* Adapt to toplevel/root window changes in GTK 4
* Adapt to clipboard changes in GTK 4
* Adapt to icon/theme changes in GTK 4
* Adapt to file/path changes in GTK 4
* Random leftover fixes for GTK 4 compatibility
* Clean up unused code
* Move GTK 3 *.ui files into a subdirectory
* Add GTK 4 *.ui files
* Search for both GTK 3 and 4 during configuration
* build: rename GTK_MINIMUM, etc as GTKMM_MINIMUM in CMakeLists
* build: bump glibmm depdency min version to 2.60.0
https://github.com/transmission/transmission/issues/3846\#issuecomment-1263782526
for extraclassinit.h
* build: fix duplicated version number for deflate dependency
* build: sort dependency list in CMakeLists.txt
no functional changes, just housekeeping
* refactor: remove gtr_get_ptr()
* Move CSS definitions to resources
* Add Gtk::Builder helpers
* Switch StatsDialog to Gtk::Builder
* Switch RelocateDialog to Gtk::Builder
* Switch OptionsDialog to Gtk::Builder
* Switch MakeDialog to Gtk::Builder
* Switch FilterBar to Gtk::Builder
* Switch MainWindow to Gtk::Builder
* Switch MessageLogWindow to Gtk::Builder
* Switch DetailsDialog to Gtk::Builder
* Switch PrefsDialog to Gtk::Builder
* Fixup translatable strings
Since this branch was brewing for a while, changes happened in the meantime.
* refactor: tr_torrentGetMetadataPiece() returns an optional vector
* refactor: use tr_pathbuf in create_temp_path()
* refactor: use tr_pathbuf in win32 create_temp_path()
* refactor: use std::vector in isPeerInteresting()
* refactor: remove tr_new0 from tr_peerMgrPeerStats()
* refactor: remove tr_new0 from rechokeUploads()
* refactor: silence clang nullptr dereference warning
* refactor: make tr_natpmp a C++ class
* refactor: use std::string in tr_log_message
* fix: add default case to switch statement
* fix: remove redundant static specifier
* fix: use std::optional.value_or
* fix: make type of variable pointer-to-const
* refactor: move log state into a struct
* refactor: make tr_peerMgr constructor explicit
* fix: make type of variable pointer-to-const
* fix: replace insert with try_emplace
* fix: implicit conversion may lose precision
* fix: use init-statement to reduce variable scope
* chore: mark unused return value with (void)
* refactor: include <memory> when using shared_ptr or unique_ptr
* refactor: include <cstdio> iff we use it
* refactor: include <cstring> iff we use it
* refactor: include <cstdlib> iff we use it
* refactor: include <string_view> or <string> iff we use it
* refactor: include <array> iff we use it
* refactor: include <ctime> iff we use it
* refactor: include <cctype> iff we use it
* refactor: misc #include cleanups in libtransmission
* (C++) Macros should not be used to define constants
* (C++) Memory should not be managed manually
* (C++) "void*" should not be used in typedefs, member variables, function parameters or return type
* (C++) When the "Rule-of-Zero" is not applicable, the "Rule-of-Five" should be followed
* (C++) "switch" statements should have "default" clauses
* (C++) "explicit" should be used on single-parameter constructors and conversiosn operators
* (C++) Non-const global variables should not be used