From 3487f938534aabae0e191f8a78442a098cc84bb6 Mon Sep 17 00:00:00 2001 From: waker Date: Sun, 5 Aug 2012 12:28:29 +0200 Subject: gtkui: automatically fill new/edited column title from its type --- plugins/gtkui/callbacks.c | 19 +++++++++++++++++++ plugins/gtkui/callbacks.h | 4 ++++ plugins/gtkui/deadbeef.glade | 1 + plugins/gtkui/interface.c | 3 +++ plugins/gtkui/plcommon.c | 3 +++ 5 files changed, 30 insertions(+) diff --git a/plugins/gtkui/callbacks.c b/plugins/gtkui/callbacks.c index be18328c..d9533056 100644 --- a/plugins/gtkui/callbacks.c +++ b/plugins/gtkui/callbacks.c @@ -801,6 +801,16 @@ on_helpwindow_key_press_event (GtkWidget *widget, return FALSE; } +// defined in plcommon.c +extern int editcolumn_title_changed; + +void +on_editcolumn_title_changed (GtkEditable *editable, + gpointer user_data) +{ + editcolumn_title_changed = 1; +} + void on_column_id_changed (GtkComboBox *combobox, gpointer user_data) @@ -817,6 +827,14 @@ on_column_id_changed (GtkComboBox *combobox, return; } gtk_widget_set_sensitive (fmt, act >= DB_COLUMN_ID_MAX ? TRUE : FALSE); + + if (!editcolumn_title_changed) { + GtkWidget *title= lookup_widget (toplevel, "title"); + if (title) { + gtk_entry_set_text (GTK_ENTRY (title), gtk_combo_box_get_active_text (combobox)); + editcolumn_title_changed = 0; + } + } } @@ -1273,3 +1291,4 @@ on_sort_by_custom_activate (GtkMenuItem *menuitem, dlg = NULL; } + diff --git a/plugins/gtkui/callbacks.h b/plugins/gtkui/callbacks.h index a354baca..068cce0a 100644 --- a/plugins/gtkui/callbacks.h +++ b/plugins/gtkui/callbacks.h @@ -1163,3 +1163,7 @@ on_convert8to16_toggled (GtkToggleButton *togglebutton, void on_reset_autostop_toggled (GtkToggleButton *togglebutton, gpointer user_data); + +void +on_editcolumn_title_changed (GtkEditable *editable, + gpointer user_data); diff --git a/plugins/gtkui/deadbeef.glade b/plugins/gtkui/deadbeef.glade index 87f9bd6b..e86736ef 100644 --- a/plugins/gtkui/deadbeef.glade +++ b/plugins/gtkui/deadbeef.glade @@ -2153,6 +2153,7 @@ True True + 0 diff --git a/plugins/gtkui/interface.c b/plugins/gtkui/interface.c index 414a2d6c..b520fb34 100644 --- a/plugins/gtkui/interface.c +++ b/plugins/gtkui/interface.c @@ -1622,6 +1622,9 @@ create_editcolumndlg (void) gtk_widget_show (label85); gtk_box_pack_start (GTK_BOX (hbox49), label85, FALSE, FALSE, 0); + g_signal_connect ((gpointer) title, "changed", + G_CALLBACK (on_editcolumn_title_changed), + NULL); g_signal_connect ((gpointer) id, "changed", G_CALLBACK (on_column_id_changed), NULL); diff --git a/plugins/gtkui/plcommon.c b/plugins/gtkui/plcommon.c index a7b1e21d..c633cb60 100644 --- a/plugins/gtkui/plcommon.c +++ b/plugins/gtkui/plcommon.c @@ -857,11 +857,13 @@ init_column (col_info_t *inf, int id, const char *format) { } } +int editcolumn_title_changed = 0; void on_add_column_activate (GtkMenuItem *menuitem, gpointer user_data) { + editcolumn_title_changed = 0; GtkWidget *dlg = create_editcolumndlg (); gtk_dialog_set_default_response (GTK_DIALOG (dlg), GTK_RESPONSE_OK); gtk_window_set_title (GTK_WINDOW (dlg), _("Add column")); @@ -908,6 +910,7 @@ on_edit_column_activate (GtkMenuItem *menuitem, } gtk_entry_set_text (GTK_ENTRY (lookup_widget (dlg, "title")), title); + editcolumn_title_changed = 0; int idx = 10; if (inf->id == -1) { if (inf->format) { -- cgit v1.2.3