app: all remaining select-item handlers replaced by select-items ones.

This commit is contained in:
Jehan 2021-06-19 23:11:38 +02:00
parent 2a404cb41d
commit 8a46a72d7d
4 changed files with 89 additions and 58 deletions

View file

@ -89,9 +89,9 @@ static void gimp_controller_list_row_activated (GtkTreeView *tv,
GtkTreeViewColumn *column,
GimpControllerList *list);
static void gimp_controller_list_select_item (GimpContainerView *view,
GimpViewable *viewable,
gpointer insert_data,
static gboolean gimp_controller_list_select_items(GimpContainerView *view,
GList *viewables,
GList *paths,
GimpControllerList *list);
static void gimp_controller_list_activate_item (GimpContainerView *view,
GimpViewable *viewable,
@ -282,8 +282,8 @@ gimp_controller_list_init (GimpControllerList *list)
gtk_box_pack_start (GTK_BOX (list->hbox), list->dest, TRUE, TRUE, 0);
gtk_widget_show (list->dest);
g_signal_connect_object (list->dest, "select-item",
G_CALLBACK (gimp_controller_list_select_item),
g_signal_connect_object (list->dest, "select-items",
G_CALLBACK (gimp_controller_list_select_items),
G_OBJECT (list), 0);
g_signal_connect_object (list->dest, "activate-item",
G_CALLBACK (gimp_controller_list_activate_item),
@ -451,15 +451,17 @@ gimp_controller_list_row_activated (GtkTreeView *tv,
gtk_button_clicked (GTK_BUTTON (list->add_button));
}
static void
gimp_controller_list_select_item (GimpContainerView *view,
GimpViewable *viewable,
gpointer insert_data,
GimpControllerList *list)
static gboolean
gimp_controller_list_select_items (GimpContainerView *view,
GList *viewables,
GList *paths,
GimpControllerList *list)
{
gboolean selected;
list->dest_info = GIMP_CONTROLLER_INFO (viewable);
g_return_val_if_fail (g_list_length (viewables) < 2, FALSE);
list->dest_info = viewables ? GIMP_CONTROLLER_INFO (viewables->data) : NULL;
selected = GIMP_IS_CONTROLLER_INFO (list->dest_info);
@ -482,6 +484,8 @@ gimp_controller_list_select_item (GimpContainerView *view,
gtk_widget_set_sensitive (list->edit_button, selected);
gtk_widget_set_sensitive (list->up_button, selected);
gtk_widget_set_sensitive (list->down_button, selected);
return TRUE;
}
static void

View file

@ -43,6 +43,7 @@
#include "gimpdevices.h"
#include "gimpmessagebox.h"
#include "gimpmessagedialog.h"
#include "gimpviewrenderer.h"
#include "gimp-intl.h"
@ -96,10 +97,10 @@ static void gimp_device_editor_remove_device (GimpContainer *container,
static void gimp_device_editor_device_changed (GimpDeviceInfo *info,
GimpDeviceEditor *editor);
static void gimp_device_editor_select_device (GimpContainerView *view,
GimpViewable *viewable,
gpointer insert_data,
GimpDeviceEditor *editor);
static gboolean gimp_device_editor_select_device (GimpContainerView *view,
GList *viewables,
GList *paths,
GimpDeviceEditor *editor);
static void gimp_device_editor_delete_clicked (GtkWidget *button,
GimpDeviceEditor *editor);
@ -149,7 +150,7 @@ gimp_device_editor_init (GimpDeviceEditor *editor)
gtk_paned_pack1 (GTK_PANED (editor), private->treeview, TRUE, FALSE);
gtk_widget_show (private->treeview);
g_signal_connect_object (private->treeview, "select-item",
g_signal_connect_object (private->treeview, "select-items",
G_CALLBACK (gimp_device_editor_select_device),
G_OBJECT (editor), 0);
@ -431,48 +432,65 @@ gimp_device_editor_device_changed (GimpDeviceInfo *info,
}
}
static void
static gboolean
gimp_device_editor_select_device (GimpContainerView *view,
GimpViewable *viewable,
gpointer insert_data,
GList *viewables,
GList *paths,
GimpDeviceEditor *editor)
{
GimpDeviceEditorPrivate *private = GIMP_DEVICE_EDITOR_GET_PRIVATE (editor);
if (viewable && insert_data)
g_return_val_if_fail (g_list_length (viewables) < 2, FALSE);
if (viewables)
{
GimpContainerTreeView *treeview;
GtkWidget *widget;
GtkTreeIter iter;
gboolean iter_valid;
treeview = GIMP_CONTAINER_TREE_VIEW (private->treeview);
gtk_tree_model_get (treeview->model, insert_data,
GIMP_CONTAINER_TREE_STORE_COLUMN_USER_DATA, &widget,
-1);
if (widget)
for (iter_valid = gtk_tree_model_get_iter_first (treeview->model, &iter);
iter_valid;
iter_valid = gtk_tree_model_iter_next (treeview->model, &iter))
{
GimpDeviceInfo *info;
gboolean delete_sensitive = FALSE;
GimpViewRenderer *renderer;
gtk_stack_set_visible_child (GTK_STACK (private->stack), widget);
gtk_tree_model_get (treeview->model, &iter,
GIMP_CONTAINER_TREE_STORE_COLUMN_USER_DATA, &widget,
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
-1);
if (renderer->viewable == viewables->data && widget)
{
GimpDeviceInfo *info;
gboolean delete_sensitive = FALSE;
g_object_get (widget ,"info", &info, NULL);
gtk_stack_set_visible_child (GTK_STACK (private->stack), widget);
gtk_label_set_text (GTK_LABEL (private->label),
gimp_object_get_name (info));
gtk_image_set_from_icon_name (GTK_IMAGE (private->image),
gimp_viewable_get_icon_name (GIMP_VIEWABLE (info)),
GTK_ICON_SIZE_BUTTON);
g_object_get (widget ,"info", &info, NULL);
if (! gimp_device_info_get_device (info, NULL))
delete_sensitive = TRUE;
gtk_label_set_text (GTK_LABEL (private->label),
gimp_object_get_name (info));
gtk_image_set_from_icon_name (GTK_IMAGE (private->image),
gimp_viewable_get_icon_name (GIMP_VIEWABLE (info)),
GTK_ICON_SIZE_BUTTON);
gtk_widget_set_sensitive (private->delete_button, delete_sensitive);
if (! gimp_device_info_get_device (info, NULL))
delete_sensitive = TRUE;
g_object_unref (info);
gtk_widget_set_sensitive (private->delete_button, delete_sensitive);
g_object_unref (info);
g_object_unref (renderer);
break;
}
g_object_unref (renderer);
}
}
return TRUE;
}
static void

View file

@ -111,9 +111,10 @@ static gboolean
gimp_settings_box_row_separator_func (GtkTreeModel *model,
GtkTreeIter *iter,
gpointer data);
static void gimp_settings_box_setting_selected (GimpContainerView *view,
GimpViewable *object,
gpointer insert_data,
static gboolean
gimp_settings_box_setting_selected (GimpContainerView *view,
GList *objects,
GList *paths,
GimpSettingsBox *box);
static gboolean gimp_settings_box_menu_press (GtkWidget *widget,
GdkEventButton *bevent,
@ -298,7 +299,7 @@ gimp_settings_box_constructed (GObject *object)
gimp_help_set_help_data (private->combo, _("Pick a preset from the list"),
NULL);
g_signal_connect_after (private->combo, "select-item",
g_signal_connect_after (private->combo, "select-items",
G_CALLBACK (gimp_settings_box_setting_selected),
box);
@ -546,15 +547,19 @@ gimp_settings_box_row_separator_func (GtkTreeModel *model,
return name == NULL;
}
static void
static gboolean
gimp_settings_box_setting_selected (GimpContainerView *view,
GimpViewable *object,
gpointer insert_data,
GList *objects,
GList *paths,
GimpSettingsBox *box)
{
if (object)
g_return_val_if_fail (g_list_length (objects) < 2, FALSE);
if (objects)
g_signal_emit (box, settings_box_signals[SELECTED], 0,
object);
objects->data);
return TRUE;
}
static gboolean

View file

@ -89,9 +89,9 @@ static gboolean
gimp_settings_editor_row_separator_func (GtkTreeModel *model,
GtkTreeIter *iter,
gpointer data);
static void gimp_settings_editor_select_item (GimpContainerView *view,
GimpViewable *viewable,
gpointer insert_data,
static gboolean gimp_settings_editor_select_items (GimpContainerView *view,
GList *viewables,
GList *paths,
GimpSettingsEditor *editor);
static void gimp_settings_editor_import_clicked (GtkWidget *widget,
GimpSettingsEditor *editor);
@ -178,8 +178,8 @@ gimp_settings_editor_constructed (GObject *object)
gimp_settings_editor_row_separator_func,
private->view, NULL);
g_signal_connect (tree_view, "select-item",
G_CALLBACK (gimp_settings_editor_select_item),
g_signal_connect (tree_view, "select-items",
G_CALLBACK (gimp_settings_editor_select_items),
editor);
gimp_container_tree_view_connect_name_edited (tree_view,
@ -298,22 +298,26 @@ gimp_settings_editor_row_separator_func (GtkTreeModel *model,
return name == NULL;
}
static void
gimp_settings_editor_select_item (GimpContainerView *view,
GimpViewable *viewable,
gpointer insert_data,
GimpSettingsEditor *editor)
static gboolean
gimp_settings_editor_select_items (GimpContainerView *view,
GList *viewables,
GList *paths,
GimpSettingsEditor *editor)
{
GimpSettingsEditorPrivate *private = GET_PRIVATE (editor);
gboolean sensitive;
private->selected_setting = G_OBJECT (viewable);
g_return_val_if_fail (g_list_length (viewables) < 2, FALSE);
private->selected_setting = viewables ? G_OBJECT (viewables->data) : NULL;
sensitive = (private->selected_setting != NULL &&
gimp_object_get_name (private->selected_setting));
gtk_widget_set_sensitive (private->export_button, sensitive);
gtk_widget_set_sensitive (private->delete_button, sensitive);
return TRUE;
}
static void