filechooser: Put event controllers into ui file

This commit is contained in:
Benjamin Otte 2018-03-09 06:08:31 +01:00 committed by Carlos Garnacho
parent fa97236b62
commit 31de97749a
2 changed files with 20 additions and 22 deletions

View File

@ -251,10 +251,6 @@ struct _GtkFileChooserWidgetPrivate {
GtkWidget *rename_file_popover;
GFile *rename_file_source_file;
GtkGesture *long_press_gesture;
GtkGesture *multipress_gesture;
GtkEventController *key_controller;
GtkFileSystemModel *browse_files_model;
char *browse_files_last_selected_name;
@ -3552,10 +3548,6 @@ gtk_file_chooser_widget_dispose (GObject *object)
priv->box = NULL;
}
g_clear_object (&priv->long_press_gesture);
g_clear_object (&priv->multipress_gesture);
g_clear_object (&priv->key_controller);
G_OBJECT_CLASS (gtk_file_chooser_widget_parent_class)->dispose (object);
}
@ -8410,6 +8402,9 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
gtk_widget_class_bind_template_callback (widget_class, rename_file_name_changed);
gtk_widget_class_bind_template_callback (widget_class, rename_file_rename_clicked);
gtk_widget_class_bind_template_callback (widget_class, rename_file_end);
gtk_widget_class_bind_template_callback (widget_class, multi_press_cb);
gtk_widget_class_bind_template_callback (widget_class, long_press_cb);
gtk_widget_class_bind_template_callback (widget_class, key_press_cb);
gtk_widget_class_set_css_name (widget_class, I_("filechooser"));
}
@ -8546,20 +8541,6 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl)
priv->bookmarks_manager = _gtk_bookmarks_manager_new (NULL, NULL);
priv->long_press_gesture = gtk_gesture_long_press_new (priv->browse_files_tree_view);
gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->long_press_gesture), TRUE);
g_signal_connect (priv->long_press_gesture, "pressed",
G_CALLBACK (long_press_cb), impl);
priv->multipress_gesture = gtk_gesture_multi_press_new (priv->browse_files_tree_view);
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->multipress_gesture), GDK_BUTTON_SECONDARY);
g_signal_connect (priv->multipress_gesture, "pressed",
G_CALLBACK (multi_press_cb), impl);
priv->key_controller = gtk_event_controller_key_new (priv->browse_files_tree_view);
g_signal_connect (priv->key_controller, "key-pressed",
G_CALLBACK (key_press_cb), impl);
/* Setup various attributes and callbacks in the UI
* which cannot be done with GtkBuilder
*/

View File

@ -143,6 +143,23 @@
<property name="AtkObject::accessible-name" translatable="yes">Files</property>
</object>
</child>
<child>
<object class="GtkGestureLongPress">
<property name="touch-only">True</property>
<signal name="pressed" handler="long_press_cb" swapped="no"/>
</object>
</child>
<child>
<object class="GtkGestureMultiPress">
<property name="button">3</property>
<signal name="pressed" handler="multi_press_cb" swapped="no"/>
</object>
</child>
<child>
<object class="GtkEventControllerKey">
<signal name="key-pressed" handler="key_press_cb" swapped="no"/>
</object>
</child>
<signal name="drag-data-received" handler="file_list_drag_data_received_cb" swapped="no"/>
<signal name="drag-drop" handler="file_list_drag_drop_cb" swapped="no"/>
<signal name="drag-begin" handler="file_list_drag_begin_cb" swapped="no"/>