[gnome-utils] dictionary: Add an "Edit" button in the sources dialog
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-utils] dictionary: Add an "Edit" button in the sources dialog
- Date: Sat, 29 Jan 2011 19:22:19 +0000 (UTC)
commit 0f7c1398017c8bcc5088f19d7d71620e86758e31
Author: Emmanuele Bassi <ebassi linux intel com>
Date: Sat Jan 29 19:16:57 2011 +0000
dictionary: Add an "Edit" button in the sources dialog
Double-clicking on the source row is not very discoverable, so let's add
a button for that.
https://bugzilla.gnome.org/show_bug.cgi?id=595451
.../data/gnome-dictionary-preferences.ui | 11 ++++
gnome-dictionary/src/gdict-pref-dialog.c | 58 ++++++++++++++++++--
2 files changed, 63 insertions(+), 6 deletions(-)
---
diff --git a/gnome-dictionary/data/gnome-dictionary-preferences.ui b/gnome-dictionary/data/gnome-dictionary-preferences.ui
index 1f04df8..d7fa1db 100644
--- a/gnome-dictionary/data/gnome-dictionary-preferences.ui
+++ b/gnome-dictionary/data/gnome-dictionary-preferences.ui
@@ -102,6 +102,17 @@
<property name="focus_on_click">True</property>
</object>
</child>
+ <child>
+ <object class="GtkButton" id="edit_button">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-edit</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
</object>
<packing>
<property name="padding">0</property>
diff --git a/gnome-dictionary/src/gdict-pref-dialog.c b/gnome-dictionary/src/gdict-pref-dialog.c
index 02abae6..d2758c5 100644
--- a/gnome-dictionary/src/gdict-pref-dialog.c
+++ b/gnome-dictionary/src/gdict-pref-dialog.c
@@ -79,6 +79,7 @@ struct _GdictPrefDialog
GtkWidget *sources_view;
GtkWidget *sources_add;
GtkWidget *sources_remove;
+ GtkWidget *sources_edit;
gchar *print_font;
GtkWidget *font_button;
@@ -401,6 +402,46 @@ out:
}
static void
+source_edit_clicked_cb (GtkButton *button,
+ GdictPrefDialog *dialog)
+{
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gboolean is_selected;
+ gchar *name, *description;
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (dialog->sources_view));
+ if (!selection)
+ return;
+
+ is_selected = gtk_tree_selection_get_selected (selection, &model, &iter);
+ if (!is_selected)
+ return;
+
+ gtk_tree_model_get (model, &iter, SOURCES_NAME_COLUMN, &name, -1);
+ if (!name)
+ return;
+ else
+ {
+ GtkWidget *edit_dialog;
+
+ edit_dialog = gdict_source_dialog_new (GTK_WINDOW (dialog),
+ _("Edit Dictionary Source"),
+ GDICT_SOURCE_DIALOG_EDIT,
+ dialog->loader,
+ name);
+ gtk_dialog_run (GTK_DIALOG (edit_dialog));
+
+ gtk_widget_destroy (edit_dialog);
+ }
+
+ g_free (name);
+
+ update_sources_view (dialog);
+}
+
+static void
set_source_loader (GdictPrefDialog *dialog,
GdictSourceLoader *loader)
{
@@ -609,6 +650,12 @@ gdict_pref_dialog_init (GdictPrefDialog *dialog)
g_signal_connect (dialog->sources_remove, "clicked",
G_CALLBACK (source_remove_clicked_cb), dialog);
+ dialog->sources_edit = GTK_WIDGET (gtk_builder_get_object (dialog->builder, "edit_button"));
+ gtk_widget_set_tooltip_text (dialog->sources_edit,
+ _("Edit the currently selected dictionary source"));
+ g_signal_connect (dialog->sources_edit, "clicked",
+ G_CALLBACK (source_edit_clicked_cb), dialog);
+
font = g_settings_get_string (dialog->settings, GDICT_SETTINGS_PRINT_FONT_KEY);
dialog->font_button = GTK_WIDGET (gtk_builder_get_object (dialog->builder, "print_font_button"));
gtk_font_button_set_font_name (GTK_FONT_BUTTON (dialog->font_button), font);
@@ -639,12 +686,12 @@ gdict_show_pref_dialog (GtkWidget *parent,
g_return_if_fail (GTK_IS_WIDGET (parent));
g_return_if_fail (GDICT_IS_SOURCE_LOADER (loader));
- if (parent)
+ if (parent != NULL)
dialog = g_object_get_data (G_OBJECT (parent), "gdict-pref-dialog");
else
dialog = global_dialog;
- if (!dialog)
+ if (dialog == NULL)
{
dialog = g_object_new (GDICT_TYPE_PREF_DIALOG,
"source-loader", loader,
@@ -657,7 +704,7 @@ gdict_show_pref_dialog (GtkWidget *parent,
G_CALLBACK (gtk_widget_hide_on_delete),
NULL);
- if (parent && GTK_IS_WINDOW (parent))
+ if (parent != NULL && GTK_IS_WINDOW (parent))
{
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent));
gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE);
@@ -669,7 +716,6 @@ gdict_show_pref_dialog (GtkWidget *parent,
global_dialog = dialog;
}
- gtk_window_set_screen (GTK_WINDOW (dialog),
- gtk_widget_get_screen (parent));
- gtk_window_present (GTK_WINDOW (dialog));
+ gtk_window_set_screen (GTK_WINDOW (dialog), gtk_widget_get_screen (parent));
+ gtk_window_present (GTK_WINDOW (dialog));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]