|
Jakub Filak |
9dc4db8 |
From 7eccd835673ebea736a756537c8ca7c1b9ab711a Mon Sep 17 00:00:00 2001
|
|
Jakub Filak |
9dc4db8 |
From: Jakub Filak <jfilak@redhat.com>
|
|
Jakub Filak |
9dc4db8 |
Date: Fri, 18 Jul 2014 11:11:57 +0200
|
|
Jakub Filak |
9dc4db8 |
Subject: [PATCH 6/8] gui: support Enter & 2Click in Preferences list
|
|
Jakub Filak |
9dc4db8 |
|
|
Jakub Filak |
9dc4db8 |
Related to rhbz#1067123
|
|
Jakub Filak |
9dc4db8 |
|
|
Jakub Filak |
9dc4db8 |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
Jakub Filak |
9dc4db8 |
---
|
|
Jakub Filak |
9dc4db8 |
src/gtk-helpers/config_dialog.c | 43 +++++++++++++++++++++++++++++++++++++----
|
|
Jakub Filak |
9dc4db8 |
1 file changed, 39 insertions(+), 4 deletions(-)
|
|
Jakub Filak |
9dc4db8 |
|
|
Jakub Filak |
9dc4db8 |
diff --git a/src/gtk-helpers/config_dialog.c b/src/gtk-helpers/config_dialog.c
|
|
Jakub Filak |
9dc4db8 |
index c99ea85..2a723cc 100644
|
|
Jakub Filak |
9dc4db8 |
--- a/src/gtk-helpers/config_dialog.c
|
|
Jakub Filak |
9dc4db8 |
+++ b/src/gtk-helpers/config_dialog.c
|
|
Jakub Filak |
9dc4db8 |
@@ -18,6 +18,7 @@
|
|
Jakub Filak |
9dc4db8 |
*/
|
|
Jakub Filak |
9dc4db8 |
|
|
Jakub Filak |
9dc4db8 |
#include <gtk/gtk.h>
|
|
Jakub Filak |
9dc4db8 |
+#include <gdk/gdk.h>
|
|
Jakub Filak |
9dc4db8 |
#include "internal_libreport_gtk.h"
|
|
Jakub Filak |
9dc4db8 |
|
|
Jakub Filak |
9dc4db8 |
enum
|
|
Jakub Filak |
9dc4db8 |
@@ -206,6 +207,40 @@ static gboolean config_filter_func(GtkTreeModel *model,
|
|
Jakub Filak |
9dc4db8 |
return visible;
|
|
Jakub Filak |
9dc4db8 |
}
|
|
Jakub Filak |
9dc4db8 |
|
|
Jakub Filak |
9dc4db8 |
+static void open_config_for_selected_row(GtkTreeView *tv)
|
|
Jakub Filak |
9dc4db8 |
+{
|
|
Jakub Filak |
9dc4db8 |
+ config_dialog_t *cdialog = (config_dialog_t *)get_column_value_from_row(tv, CONFIG_DIALOG, TYPE_POINTER);
|
|
Jakub Filak |
9dc4db8 |
+ const char *name = (const char *)get_column_value_from_row(tv, COLUMN_NAME, TYPE_STR);
|
|
Jakub Filak |
9dc4db8 |
+
|
|
Jakub Filak |
9dc4db8 |
+ cdialog_run(cdialog, name);
|
|
Jakub Filak |
9dc4db8 |
+}
|
|
Jakub Filak |
9dc4db8 |
+
|
|
Jakub Filak |
9dc4db8 |
+static gboolean on_key_press_event_cb(GtkWidget *btn, GdkEvent *event, gpointer user_data)
|
|
Jakub Filak |
9dc4db8 |
+{
|
|
Jakub Filak |
9dc4db8 |
+ GdkEventKey *ek = (GdkEventKey *)event;
|
|
Jakub Filak |
9dc4db8 |
+
|
|
Jakub Filak |
9dc4db8 |
+ if (ek->keyval == GDK_KEY_Return)
|
|
Jakub Filak |
9dc4db8 |
+ {
|
|
Jakub Filak |
9dc4db8 |
+ GtkTreeView *tv = (GtkTreeView *)user_data;
|
|
Jakub Filak |
9dc4db8 |
+ open_config_for_selected_row(tv);
|
|
Jakub Filak |
9dc4db8 |
+ }
|
|
Jakub Filak |
9dc4db8 |
+
|
|
Jakub Filak |
9dc4db8 |
+ return FALSE;
|
|
Jakub Filak |
9dc4db8 |
+}
|
|
Jakub Filak |
9dc4db8 |
+
|
|
Jakub Filak |
9dc4db8 |
+static gboolean on_button_press_event_cb(GtkWidget *btn, GdkEvent *event, gpointer user_data)
|
|
Jakub Filak |
9dc4db8 |
+{
|
|
Jakub Filak |
9dc4db8 |
+ GdkEventButton *eb = (GdkEventButton *)event;
|
|
Jakub Filak |
9dc4db8 |
+
|
|
Jakub Filak |
9dc4db8 |
+ if (eb->type == GDK_2BUTTON_PRESS)
|
|
Jakub Filak |
9dc4db8 |
+ {
|
|
Jakub Filak |
9dc4db8 |
+ GtkTreeView *tv = (GtkTreeView *)user_data;
|
|
Jakub Filak |
9dc4db8 |
+ open_config_for_selected_row(tv);
|
|
Jakub Filak |
9dc4db8 |
+ }
|
|
Jakub Filak |
9dc4db8 |
+
|
|
Jakub Filak |
9dc4db8 |
+ return FALSE;
|
|
Jakub Filak |
9dc4db8 |
+}
|
|
Jakub Filak |
9dc4db8 |
+
|
|
Jakub Filak |
9dc4db8 |
GtkWidget *create_config_tab_content(const char *column_label,
|
|
Jakub Filak |
9dc4db8 |
GtkListStore *store)
|
|
Jakub Filak |
9dc4db8 |
{
|
|
Jakub Filak |
9dc4db8 |
@@ -216,6 +251,9 @@ GtkWidget *create_config_tab_content(const char *column_label,
|
|
Jakub Filak |
9dc4db8 |
GTK_POLICY_AUTOMATIC);
|
|
Jakub Filak |
9dc4db8 |
/* workflow list treeview */
|
|
Jakub Filak |
9dc4db8 |
GtkWidget *tv = gtk_tree_view_new();
|
|
Jakub Filak |
9dc4db8 |
+ g_signal_connect(tv, "key-press-event", G_CALLBACK(on_key_press_event_cb), tv);
|
|
Jakub Filak |
9dc4db8 |
+ g_signal_connect(tv, "button-press-event", G_CALLBACK(on_button_press_event_cb), tv);
|
|
Jakub Filak |
9dc4db8 |
+
|
|
Jakub Filak |
9dc4db8 |
/* column with workflow name and description */
|
|
Jakub Filak |
9dc4db8 |
GtkCellRenderer *renderer;
|
|
Jakub Filak |
9dc4db8 |
GtkTreeViewColumn *column;
|
|
Jakub Filak |
9dc4db8 |
@@ -272,11 +310,8 @@ static void on_configure_cb(GtkWidget *btn, gpointer user_data)
|
|
Jakub Filak |
9dc4db8 |
GtkWidget *vbox = gtk_notebook_get_nth_page(nb, current_page_n);
|
|
Jakub Filak |
9dc4db8 |
GList *children = gtk_container_get_children(GTK_CONTAINER(vbox));
|
|
Jakub Filak |
9dc4db8 |
GtkScrolledWindow *sw = (GtkScrolledWindow *)children->data;
|
|
Jakub Filak |
9dc4db8 |
- GtkTreeView *tv = (GtkTreeView *)gtk_bin_get_child(GTK_BIN(sw));
|
|
Jakub Filak |
9dc4db8 |
- config_dialog_t *cdialog = (config_dialog_t *)get_column_value_from_row(tv, CONFIG_DIALOG, TYPE_POINTER);
|
|
Jakub Filak |
9dc4db8 |
- const char *name = (const char *)get_column_value_from_row(tv, COLUMN_NAME, TYPE_STR);
|
|
Jakub Filak |
9dc4db8 |
|
|
Jakub Filak |
9dc4db8 |
- cdialog_run(cdialog, name);
|
|
Jakub Filak |
9dc4db8 |
+ open_config_for_selected_row((GtkTreeView *)gtk_bin_get_child(GTK_BIN(sw)));
|
|
Jakub Filak |
9dc4db8 |
}
|
|
Jakub Filak |
9dc4db8 |
|
|
Jakub Filak |
9dc4db8 |
static void on_close_cb(GtkWidget *btn, gpointer config_list_w)
|
|
Jakub Filak |
9dc4db8 |
--
|
|
Jakub Filak |
9dc4db8 |
1.9.3
|
|
Jakub Filak |
9dc4db8 |
|