Fix the build with gtkmm 4: https://github.com/transmission/transmission/issues/6392 Patch copied from upstream source repository: https://github.com/transmission/transmission/commit/e116672b27b314d54514c96b1fa7aef1dee900b1 From e116672b27b314d54514c96b1fa7aef1dee900b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C5=93ur?= <coeur@gmx.fr> Date: Sun, 17 Dec 2023 16:37:35 +0100 Subject: [PATCH] fix: build error on GTKMM-4 (#6393) --- gtk/OptionsDialog.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gtk/OptionsDialog.cc b/gtk/OptionsDialog.cc index 08198540c10..8c28fc76f98 100644 --- a/gtk/OptionsDialog.cc +++ b/gtk/OptionsDialog.cc @@ -338,7 +338,16 @@ void TorrentFileChooserDialog::onOpenDialogResponse(int response, Glib::RefPtr<S bool const do_prompt = get_choice(std::string(ShowOptionsDialogChoice)) == "true"; bool const do_notify = false; - auto const files = IF_GTKMM4(get_files2, get_files)(); +#if GTKMM_CHECK_VERSION(4, 0, 0) + auto files = std::vector<Glib::RefPtr<Gio::File>>(); + auto files_model = get_files(); + for (auto i = guint{ 0 }; i < files_model->get_n_items(); ++i) + { + files.push_back(gtr_ptr_dynamic_cast<Gio::File>(files_model->get_object(i))); + } +#else + auto const files = get_files(); +#endif g_assert(!files.empty()); /* remember this folder the next time we use this dialog */