From e907ada85ddd9f8762d367f873ff29d9603f91d2 Mon Sep 17 00:00:00 2001 From: Nokse22 <44558032+Nokse22@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:47:19 +0200 Subject: [PATCH 1/4] translated grid view demo to python --- src/Grid View/main.py | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/Grid View/main.py diff --git a/src/Grid View/main.py b/src/Grid View/main.py new file mode 100644 index 00000000..2a6c7652 --- /dev/null +++ b/src/Grid View/main.py @@ -0,0 +1,74 @@ +import gi + +gi.require_version("Gtk", "4.0") +gi.require_version("Adw", "1") +from gi.repository import Gtk, Adw +import workbench + +grid_view = workbench.builder.get_object("grid_view") +add = workbench.builder.get_object("add") +remove = workbench.builder.get_object("remove") + +item = 4 + +string_model = Gtk.StringList.new( + ["Default Item 1", "Default Item 2", "Default Item 3"] +) + +model = Gtk.SingleSelection(model=string_model) + +factory_for_grid_view = Gtk.SignalListItemFactory() + + +def on_factory_for_grid_view_setup(_factory, list_item): + list_box = Gtk.Box(width_request=160, height_request=160, css_classes=["card"]) + label = Gtk.Label(halign=Gtk.Align.CENTER, hexpand=True, valign=Gtk.Align.CENTER) + list_box.append(label) + list_item.set_child(list_box) + + +def on_factory_for_grid_view_bind(_factory, list_item): + list_box = list_item.get_child() + model_item = list_item.get_item() + label_widget = list_box.get_last_child() + + label_widget.set_label(model_item.get_string()) + + +factory_for_grid_view.connect("setup", on_factory_for_grid_view_setup) +factory_for_grid_view.connect("bind", on_factory_for_grid_view_bind) + +grid_view.set_model(model) +grid_view.set_factory(factory_for_grid_view) + + +def on_item_changed(_list, position, removed, added): + print( + f"position: {position}, Item removed? {removed != 0}, Item added? {added != 0}" + ) + + +def on_selection_changed(*_): + selected_item = model.get_selected() + print(f"Model item selected from view: {string_model.get_string(selected_item)}") + + +string_model.connect("items-changed", on_item_changed) +model.connect("selection-changed", on_selection_changed) + + +def on_add_clicked(*_): + global item + new_item = f"New item {item}" + string_model.append(new_item) + item += 1 + + +def on_remove_clicked(*_): + selected_item = model.get_selected() + string_model.remove(selected_item) + + +add.connect("clicked", on_add_clicked) +remove.connect("clicked", on_remove_clicked) + From e1f33bb4831eccfd7c39b28f47d0fc847bca37f2 Mon Sep 17 00:00:00 2001 From: Nokse22 <44558032+Nokse22@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:55:32 +0200 Subject: [PATCH 2/4] Fixed Grid View python port CI --- src/Grid View/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Grid View/main.py b/src/Grid View/main.py index 2a6c7652..32d79e8c 100644 --- a/src/Grid View/main.py +++ b/src/Grid View/main.py @@ -2,7 +2,7 @@ gi.require_version("Gtk", "4.0") gi.require_version("Adw", "1") -from gi.repository import Gtk, Adw +from gi.repository import Gtk import workbench grid_view = workbench.builder.get_object("grid_view") From 5221757bb9e8a9edebf2d6036a3a056e2abf1d26 Mon Sep 17 00:00:00 2001 From: Sonny Date: Tue, 8 Oct 2024 11:04:45 +0200 Subject: [PATCH 3/4] Update src/Grid View/main.py --- src/Grid View/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Grid View/main.py b/src/Grid View/main.py index 32d79e8c..7b80cd5e 100644 --- a/src/Grid View/main.py +++ b/src/Grid View/main.py @@ -9,7 +9,7 @@ add = workbench.builder.get_object("add") remove = workbench.builder.get_object("remove") -item = 4 +item = 1 string_model = Gtk.StringList.new( ["Default Item 1", "Default Item 2", "Default Item 3"] From 18ebb950c6684e218c7d19b6ddbcbab2a32ccca5 Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Tue, 8 Oct 2024 11:13:41 +0200 Subject: [PATCH 4/4] f --- src/Grid View/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Grid View/main.py b/src/Grid View/main.py index 7b80cd5e..f098e55c 100644 --- a/src/Grid View/main.py +++ b/src/Grid View/main.py @@ -71,4 +71,3 @@ def on_remove_clicked(*_): add.connect("clicked", on_add_clicked) remove.connect("clicked", on_remove_clicked) -