1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-24 08:43:27 +00:00
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
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
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
FaviconCache.cc fixup! refactor: GTK favicon lookup improvements (#4278) (#4286) 2022-11-30 14:51:38 -06:00
FaviconCache.h
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
main.cc Fix issues reported by clang-tidy cert checks (GTK client) (#4174) 2022-11-15 00:53:12 +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
my-valgrind.sh
Notify.cc Fix issues reported by clang-tidy cert checks (GTK client) (#4174) 2022-11-15 00:53:12 +00:00
Notify.h
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
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
transmission-gtk.1
transmission-gtk.desktop.in
transmission-gtk.metainfo.xml.in
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
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