* fix: accurate timestamp in daemon logs
* fix: gtk build errors
* fixup! fix: gtk build errors
* code review: use system_clock typedefs
* code review: use the full buffer for string view
* fixup! fix: accurate timestamp in daemon logs
* code review: limit exposure of `using`
* 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()
* Add compat operator* for RefPtr
* Rename `*_tree_view_*` button handling helpers to `*_item_view_*`
* Move torrent item colors to CSS
* Switch to list view for torrents list (GTK 4)
* Bump Fedora image to 39 (current rawhide) for GTK 4.11
Enable deprecations as there're lots of them in 4.11 and I'm not keen on
fixing them all right now. Disable warnings as errors due to
-Warray-bounds issue somewhere in libfmt.
* Move GTK compatibility macros into a separate header
* Fix Cairo compatibility checks
* Move Glib-namespaced definitions to GtkCompat header
* Remove unused stringify definitions since we're using fmtlib
* Automatically (re)order include directives (GTK client)
Include our headers first to ease IWYU enforcement.
* Fix includes missing from headers (GTK client)
* Fix build on Mac after includes reordering
* 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