[telegnome] Finish porting channel edit dialog to GtkBuilder
- From: Colin Watson <cjwatson src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [telegnome] Finish porting channel edit dialog to GtkBuilder
- Date: Sat, 6 Feb 2016 19:05:51 +0000 (UTC)
commit c050d18ed9f74db795960c0f841a237e730440b7
Author: Colin Watson <cjwatson debian org>
Date: Sat Feb 6 19:03:28 2016 +0000
Finish porting channel edit dialog to GtkBuilder
* src/prefs.c (tg_prefs_edit_channel): Use GtkBuilder rather than
manual widget construction code. Hide dialog rather than destroying
it.
(tg_prefs_show): Store pointers to various built objects needed by
tg_prefs_edit_channel.
* po/POTFILES.in: Remove src/prefs.c.
po/POTFILES.in | 1 -
src/prefs.c | 104 +++++++++++++++++++++++---------------------------------
2 files changed, 43 insertions(+), 62 deletions(-)
---
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8f91caa..2ab0517 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -3,7 +3,6 @@
data/org.gnome.telegnome.gschema.xml
src/gui.c
[type: gettext/glade] src/menus.ui
-src/prefs.c
[type: gettext/glade] src/prefs.ui
[type: gettext/glade] src/telegnome.ui
telegnome.desktop.in
diff --git a/src/prefs.c b/src/prefs.c
index fba78ef..927b8e7 100644
--- a/src/prefs.c
+++ b/src/prefs.c
@@ -23,8 +23,9 @@
**
*/
+#include <string.h>
+
#include <glib.h>
-#include <glib/gi18n.h>
#include <glib-object.h>
#include <gio/gio.h>
#define G_SETTINGS_ENABLE_BACKEND
@@ -48,6 +49,12 @@ typedef struct _TgPrefsWindow {
GtkListStore *channel_store;
GtkWidget *channel_view;
GtkWidget *channel_label;
+ GtkWidget *channel_dialog;
+ GtkWidget *name_entry;
+ GtkWidget *description_entry;
+ GtkWidget *page_url_entry;
+ GtkWidget *subpage_url_entry;
+ GtkWidget *country_entry;
} TgPrefsWindow;
static TgPrefsWindow *prefs_window;
@@ -100,7 +107,6 @@ static gboolean
tg_prefs_edit_channel(TgChannel *orig)
{
GSettings *settings;
- GtkWidget *dialog, *grid, *label, *name, *page, *subpage, *desc, *country, *frame;
gint reply;
gboolean changed = FALSE;
@@ -108,66 +114,28 @@ tg_prefs_edit_channel(TgChannel *orig)
settings = tg_channel_get_settings(orig);
g_settings_delay(settings);
-
- dialog = gtk_dialog_new_with_buttons(
- _("New/Edit Channel"),
- GTK_WINDOW(prefs_window->dialog),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- _("_OK"), GTK_RESPONSE_ACCEPT,
- _("_Cancel"), GTK_RESPONSE_REJECT,
- NULL);
-
- grid = gtk_grid_new();
- gtk_grid_set_row_homogeneous(GTK_GRID(grid), TRUE);
- gtk_grid_set_row_spacing(GTK_GRID(grid), 5);
- gtk_grid_set_column_spacing(GTK_GRID(grid), 5);
-
- label = gtk_label_new(_("Name"));
- g_object_set(G_OBJECT(label), "xalign", 1.0, "yalign", 0.5, NULL);
- name = gtk_entry_new();
- g_settings_bind(settings, "name", name, "text", G_SETTINGS_BIND_DEFAULT);
- gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), name, 1, 0, 1, 1);
-
- label = gtk_label_new(_("Description"));
- g_object_set(G_OBJECT(label), "xalign", 1.0, "yalign", 0.5, NULL);
- desc = gtk_entry_new();
- g_settings_bind(settings, "description", desc, "text", G_SETTINGS_BIND_DEFAULT);
- gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), desc, 1, 1, 1, 1);
-
- label = gtk_label_new(_("Page URL"));
- g_object_set(G_OBJECT(label), "xalign", 1.0, "yalign", 0.5, NULL);
- page = gtk_entry_new();
- g_settings_bind(settings, "page-url", page, "text", G_SETTINGS_BIND_DEFAULT);
- gtk_grid_attach(GTK_GRID(grid), label, 0, 2, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), page, 1, 2, 1, 1);
-
- label = gtk_label_new(_("Subpage URL"));
- g_object_set(G_OBJECT(label), "xalign", 1.0, "yalign", 0.5, NULL);
- subpage = gtk_entry_new();
- g_settings_bind(settings, "subpage-url", subpage, "text", G_SETTINGS_BIND_DEFAULT);
- gtk_grid_attach(GTK_GRID(grid), label, 0, 3, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), subpage, 1, 3, 1, 1);
-
- label = gtk_label_new(_("Country"));
- g_object_set(G_OBJECT(label), "xalign", 1.0, "yalign", 0.5, NULL);
- country = gtk_entry_new();
- g_settings_bind(settings, "country", country, "text", G_SETTINGS_BIND_DEFAULT);
- gtk_grid_attach(GTK_GRID(grid), label, 0, 4, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), country, 1, 4, 1, 1);
-
- frame = gtk_frame_new(_("Channel Information"));
- gtk_container_add(GTK_CONTAINER(frame), grid);
-
- gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), frame);
-
- gtk_widget_show_all(dialog);
-
- reply = gtk_dialog_run(GTK_DIALOG(dialog));
+ g_settings_bind(settings, "name",
+ prefs_window->name_entry, "text",
+ G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind(settings, "description",
+ prefs_window->description_entry, "text",
+ G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind(settings, "page-url",
+ prefs_window->page_url_entry, "text",
+ G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind(settings, "subpage-url",
+ prefs_window->subpage_url_entry, "text",
+ G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind(settings, "country",
+ prefs_window->country_entry, "text",
+ G_SETTINGS_BIND_DEFAULT);
+
+ gtk_widget_show_all(prefs_window->channel_dialog);
+
+ reply = gtk_dialog_run(GTK_DIALOG(prefs_window->channel_dialog));
switch (reply) {
- case GTK_RESPONSE_ACCEPT:
+ case GTK_RESPONSE_OK:
g_settings_apply(settings);
changed = TRUE;
break;
@@ -176,7 +144,7 @@ tg_prefs_edit_channel(TgChannel *orig)
changed = FALSE;
break;
}
- gtk_widget_destroy(dialog);
+ gtk_widget_hide(prefs_window->channel_dialog);
return changed;
}
@@ -397,6 +365,20 @@ tg_prefs_show(TgGui *gui, GCallback close_cb)
prefs_window->channel_label = GTK_WIDGET
(gtk_builder_get_object(prefs_window->builder,
"prefs_channel_label"));
+ prefs_window->channel_dialog = GTK_WIDGET
+ (gtk_builder_get_object(prefs_window->builder, "channel_dialog"));
+ prefs_window->name_entry = GTK_WIDGET
+ (gtk_builder_get_object(prefs_window->builder, "name_entry"));
+ prefs_window->description_entry = GTK_WIDGET
+ (gtk_builder_get_object(prefs_window->builder,
+ "description_entry"));
+ prefs_window->page_url_entry = GTK_WIDGET
+ (gtk_builder_get_object(prefs_window->builder, "page_url_entry"));
+ prefs_window->subpage_url_entry = GTK_WIDGET
+ (gtk_builder_get_object(prefs_window->builder,
+ "subpage_url_entry"));
+ prefs_window->country_entry = GTK_WIDGET
+ (gtk_builder_get_object(prefs_window->builder, "country_entry"));
gtk_builder_add_callback_symbols
(prefs_window->builder,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]