Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-release-src > by-pkgid > 838409f06098f25972c735bffbbada7c > files > 22

gparted-0.33.0-2.mga7.src.rpm

From 244f4bcd2246a51dd9477f4c25a75388ff9f86b0 Mon Sep 17 00:00:00 2001
From: Luca Bacci <luca.bacci982@gmail.com>
Date: Mon, 13 Aug 2018 16:33:55 +0200
Subject: [PATCH 18/26] Simplify code using Gtk::Container::get_children() (#7)

GParted uses Gtk::Container::get_children().  In Gtkmm2
Gtk::Container::get_children() returns a Glibmm intermediate container
[1].  Gtkmm3 dropped the use of Glibmm intermediate containers in favour
of STL containers [2][3].

Now that Gtk::Container::get_children() directly returns a std::vector<>
simplify the code.

References:

[1] Gtkmm 2.24 Gtk::Container Class Reference
    "Glib::ListHandle<Widget*> Gtk::Container::get_children()"
    https://developer.gnome.org/gtkmm/2.24/classGtk_1_1Container.html#acd2f9b9ac16ba96178d3f5169b07f4d0

[2] Gtkmm 3.0 Gtk::Container Class Reference
    "std::vector<Widget*> Gtk::Container::get_children()"
    https://developer.gnome.org/gtkmm/3.0/classGtk_1_1Container.html#a3a2111e255cb5b72bd91a3be087cff27

[1] Programming with gtkmm3 / Changes in gtkmm3
    "11. We now use std::vector in several methods instead of the
    intermediate *Handle types to make the API clearer."
    https://developer.gnome.org/gtkmm-tutorial/3.0/changes-gtkmm3.html.en

Closes #7 - Port to Gtk3
---
 src/Win_GParted.cc | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/Win_GParted.cc b/src/Win_GParted.cc
index ea29baa7..52da1193 100644
--- a/src/Win_GParted.cc
+++ b/src/Win_GParted.cc
@@ -1520,20 +1520,21 @@ void Win_GParted::combo_devices_changed()
 	Refresh_Visual();
 	
 	// Update radio buttons..
-	if (mainmenu_items[MENU_DEVICES]->has_submenu()) {
-		std::vector<Gtk::Widget *> child_items;
-		child_items = mainmenu_items[MENU_DEVICES]->get_submenu()->get_children();
-		static_cast<Gtk::RadioMenuItem *>(child_items[current_device])
+	if (mainmenu_items[MENU_DEVICES]->has_submenu())
+	{
+		static_cast<Gtk::RadioMenuItem *>
+		(mainmenu_items[MENU_DEVICES]->get_submenu()->get_children()[current_device])
 			->set_active(true);
 	}
 }
 
 void Win_GParted::radio_devices_changed( unsigned int item ) 
 {
-	std::vector<Gtk::Widget *> child_items;
-	child_items = mainmenu_items[MENU_DEVICES]->get_submenu()->get_children();
-	if (static_cast<Gtk::RadioMenuItem *>(child_items[item])->get_active())
+	if (static_cast<Gtk::RadioMenuItem *>
+	    (mainmenu_items[MENU_DEVICES]->get_submenu()->get_children()[item])->get_active())
+	{
 		combo_devices .set_active( item ) ;
+	}
 }
 
 void Win_GParted::on_show()
-- 
2.21.0