transmission/gtk
Mike Gelfand 32531fe5ef
Use `Gio::List{Model,Store}` for torrents (#4430)
* Use `Gio::List{Model,Store}` for torrents

Switch from `Gtk::{TreeModel,ListStore}` in preparation for cell
renderers deprecation in GTK 4.10. That will require switching to the
new view classes (`Gtk::{Column,List}View`) which only work with `Gio`
models. Implement an adapter to support GTK+ 3 where the old view class
(`Gtk::TreeView`) only works with `Gtk` models; it is effective enough
but requires a signal connection per item to notify on row changes.

Refactor filtering and sorting (which now happen over the new model) to
use compatible `Gtk::Filter` and `Gtk::Sorter` classes. Although these
classes are only present in GTK 4, the abstraction is suitable for GTK+
3 as well so make our subclasses work for both versions.

Since items (of `Torrent` class) of the new model provide only a very
limited (by design) layer of compatibility with GTK+ 3 way of doing
things, refactor selection handling to do it the new way. Move selection
helpers into `MainWindow` to abstract them away since new view classes
handle it differently.

* Improve session load performance based on profiling results
2022-12-21 21:26:25 +00:00
..
icons refactor(gtk): use symbolic icons in status bar (#3655) 2022-08-18 11:15:27 -05:00
screenshots
ui Make preferences dialog non-modal (#4391) 2022-12-17 21:07:07 +00:00
.clang-tidy Fix issues reported by clang-tidy `bugprone` checks (GTK client) (#4183) 2022-11-15 19:30:32 +00:00
Actions.cc Fix issues reported by clang-tidy `performance` checks (GTK client) (#4160) 2022-11-13 20:50:07 +00:00
Actions.h Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
Application.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
Application.h Update Copyright Year to 2022. (#3352) 2022-06-28 09:07:12 -05:00
CMakeLists.txt Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
DetailsDialog.cc Disconnect some more signals on widgets destruction (#4379) 2022-12-16 17:40:28 +00:00
DetailsDialog.h Switch to Gtk::Builder for all UI in GTK client (#3781) 2022-09-08 01:25:04 +03:00
Dialogs.cc Use fmt for string formatting (GTK client) (#3967) 2022-10-15 19:13:50 +03:00
Dialogs.h Update Copyright Year to 2022. (#3352) 2022-06-28 09:07:12 -05:00
FaviconCache.cc fixup! refactor: GTK favicon lookup improvements (#4278) (#4286) 2022-11-30 14:51:38 -06:00
FaviconCache.h chore: fix spdx abbreviations (#3602) 2022-08-08 13:05:39 -05:00
FileList.cc Disconnect some more signals on widgets destruction (#4379) 2022-12-16 17:40:28 +00:00
FileList.h Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
FilterBar.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
FilterBar.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
Flags.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
FreeSpaceLabel.cc Fix issues reported by clang-tidy `readability` checks (GTK client) (#4127) 2022-11-09 16:58:36 +00:00
FreeSpaceLabel.h Switch to Gtk::Builder for all UI in GTK client (#3781) 2022-09-08 01:25:04 +03:00
HigWorkarea.h Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
IconCache.cc Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
IconCache.h Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
ListModelAdapter.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
ListModelAdapter.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
MainWindow.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
MainWindow.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
MakeDialog.cc Fix issues reported by clang-tidy `bugprone` checks (GTK client) (#4183) 2022-11-15 19:30:32 +00:00
MakeDialog.h Switch to Gtk::Builder for all UI in GTK client (#3781) 2022-09-08 01:25:04 +03:00
MessageLogWindow.cc fix GTK client message log window does not restore level selection (#4242) 2022-11-26 07:32:51 -06:00
MessageLogWindow.h Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
Notify.cc Fix issues reported by clang-tidy `cert` checks (GTK client) (#4174) 2022-11-15 00:53:12 +00:00
Notify.h chore: fix spdx abbreviations (#3602) 2022-08-08 13:05:39 -05:00
OptionsDialog.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
OptionsDialog.h Switch to Gtk::Builder for all UI in GTK client (#3781) 2022-09-08 01:25:04 +03:00
PathButton.cc Add `ENABLE_WERROR` option for use on CI (#4381) 2022-12-16 22:38:30 +00:00
PathButton.h Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
Prefs.cc Fix issues reported by clang-tidy `misc` checks (GTK client) (#4167) 2022-11-14 16:22:38 +00:00
Prefs.h refactor: iwyu string, vector, cstdint (#2898) 2022-04-07 20:50:26 -05:00
PrefsDialog.cc Don't use message dialog to display blocklist update status (#4392) 2022-12-17 23:12:25 +00:00
PrefsDialog.h Switch to Gtk::Builder for all UI in GTK client (#3781) 2022-09-08 01:25:04 +03:00
RelocateDialog.cc Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
RelocateDialog.h Switch to Gtk::Builder for all UI in GTK client (#3781) 2022-09-08 01:25:04 +03:00
Session.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
Session.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
StatsDialog.cc Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
StatsDialog.h Switch to Gtk::Builder for all UI in GTK client (#3781) 2022-09-08 01:25:04 +03:00
SystemTrayIcon.cc Fix issues reported by clang-tidy `cppcoreguidelines` checks (GTK client) (#4158) 2022-11-13 17:36:16 +00:00
SystemTrayIcon.h Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
Torrent.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
Torrent.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
TorrentCellRenderer.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
TorrentCellRenderer.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
TorrentFilter.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
TorrentFilter.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
TorrentSorter.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
TorrentSorter.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
Utils.cc Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
Utils.h Use `Gio::List{Model,Store}` for torrents (#4430) 2022-12-21 21:26:25 +00:00
main.cc Fix issues reported by clang-tidy `cert` checks (GTK client) (#4174) 2022-11-15 00:53:12 +00:00
my-valgrind.sh
transmission-gtk.1 update documentation links (#2985) 2022-04-25 18:18:35 -05:00
transmission-gtk.desktop.in
transmission-gtk.metainfo.xml.in Body text changes (#3431) 2022-07-10 23:16:35 -05:00
transmission-ui.css Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
transmission-ui.xml Switch to Gtk::Builder for all UI in GTK client (#3781) 2022-09-08 01:25:04 +03:00
transmission.gresource.xml Add support for GTK 4 (#3916) 2022-10-09 01:50:03 +03:00
transmission.rc refactor: use svg icons in GTK client (#3395) 2022-07-03 17:14:13 -05:00