[libgda] Control center adaptations to avoid using deprecated APIs and package resources
- From: Vivien Malerba <vivien src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] Control center adaptations to avoid using deprecated APIs and package resources
- Date: Thu, 10 Apr 2014 19:10:57 +0000 (UTC)
commit 0ed1452107f0cb6b412b960e65ab5d2932b02794
Author: Vivien Malerba <malerba gnome-db org>
Date: Thu Apr 10 21:06:57 2014 +0200
Control center adaptations to avoid using deprecated APIs and package resources
control-center/.gitignore | 1 +
control-center/Makefile.am | 24 ++-
control-center/control-center.gresource.xml | 12 ++
control-center/dsn-config.c | 27 +--
control-center/dsn-properties-dialog.c | 20 +--
control-center/gda-control-center-newcnc.png | Bin 7910 -> 0 bytes
control-center/gdaui-bar.c | 83 +--------
control-center/gdaui-bar.h | 6 +-
control-center/gdaui-dsn-assistant.c | 1 +
control-center/gdaui-login-dialog.c | 15 +-
control-center/main.c | 231 +++++++++++---------------
control-center/menus.ui | 41 +++++
control-center/provider-config.c | 9 +-
doc/C/packaging_ui.xml | 9 +-
installers/Windows/make-zip-setup.sh | 4 -
15 files changed, 213 insertions(+), 270 deletions(-)
---
diff --git a/control-center/.gitignore b/control-center/.gitignore
index b170929..498446e 100644
--- a/control-center/.gitignore
+++ b/control-center/.gitignore
@@ -1,2 +1,3 @@
gda-control-center-6.0
gda-control-center-6.*.desktop
+control-center.gresources.c
diff --git a/control-center/Makefile.am b/control-center/Makefile.am
index 3227f36..c8c46f2 100644
--- a/control-center/Makefile.am
+++ b/control-center/Makefile.am
@@ -31,7 +31,16 @@ gda_control_center_6_0_SOURCES=\
dsn-properties-dialog.h \
main.c \
provider-config.c \
- provider-config.h
+ provider-config.h \
+ control-center.gresources.c
+
+# resources
+RESOURCES=\
+ menus.ui \
+ gda-control-center.png
+
+control-center.gresources.c: control-center.gresource.xml $(RESOURCES)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)
--sourcedir=$(srcdir)/../libgda-ui/data --generate-source $(srcdir)/control-center.gresource.xml
if PLATFORM_WIN32
EXTRALDFLAGS=-mwindows
@@ -59,14 +68,13 @@ desktopdir=$(datadir)/applications
Desktop_in_files = gda-control-center-6.0.desktop.in
desktop_DATA = $(Desktop_in_files:.desktop.in=.desktop)
-# icons
-iconsdir=$(datadir)/libgda-6.0/pixmaps
-icons_DATA= \
- gda-control-center.png \
- gda-control-center-newcnc.png
-
EXTRA_DIST = \
+ control-center.gresource.xml \
control-center-res.rc \
gda-control-center.ico \
- $(Desktop_in_files) $(icons_DATA)
+ $(Desktop_in_files)
+
DISTCLEANFILES = $(desktop_DATA)
+
+CLEANFILES = \
+ control-center.gresources.c
diff --git a/control-center/control-center.gresource.xml b/control-center/control-center.gresource.xml
new file mode 100644
index 0000000..be50c42
--- /dev/null
+++ b/control-center/control-center.gresource.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/application">
+ <file compressed="true">menus.ui</file>
+ </gresource>
+ <gresource prefix="/images">
+ <file compressed="no">gda-control-center.png</file>
+ </gresource>
+ <gresource prefix="/images">
+ <file compressed="no">gdaui-generic.png</file>
+ </gresource>
+</gresources>
diff --git a/control-center/dsn-config.c b/control-center/dsn-config.c
index e74ab62..cd4243e 100644
--- a/control-center/dsn-config.c
+++ b/control-center/dsn-config.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 - 2011 Vivien Malerba <malerba gnome-db org>
+ * Copyright (C) 2009 - 2014 Vivien Malerba <malerba gnome-db org>
* Copyright (C) 2010 David King <davidk openismus com>
* Copyright (C) 2011 Murray Cumming <murrayc murrayc com>
*
@@ -63,17 +63,12 @@ list_popup_delete_cb (G_GNUC_UNUSED GtkWidget *menu, gpointer user_data)
static GtkWidget *
new_menu_item (const gchar *label,
- gboolean pixmap,
- GCallback cb_func,
- gpointer user_data)
+ GCallback cb_func,
+ gpointer user_data)
{
GtkWidget *item;
- if (pixmap)
- item = gtk_image_menu_item_new_from_stock (label, NULL);
- else
- item = gtk_menu_item_new_with_mnemonic (label);
-
+ item = gtk_menu_item_new_with_mnemonic (label);
g_signal_connect (G_OBJECT (item), "activate",
G_CALLBACK (cb_func), user_data);
@@ -87,12 +82,10 @@ list_popup_cb (GdauiRawGrid *grid, GtkMenu *menu, gpointer user_data)
gboolean ok;
GArray *selection;
- item_delete = new_menu_item (GTK_STOCK_DELETE,
- TRUE,
+ item_delete = new_menu_item (_("_Delete"),
G_CALLBACK (list_popup_delete_cb),
user_data);
- item_properties = new_menu_item (GTK_STOCK_PROPERTIES,
- TRUE,
+ item_properties = new_menu_item (_("_Properties"),
G_CALLBACK (list_popup_properties_cb),
user_data);
@@ -138,10 +131,8 @@ dsn_config_new (void)
priv->title = gdaui_bar_new (title);
g_free (title);
- gchar *path;
- path = gda_gbr_get_file_path (GDA_DATA_DIR, LIBGDA_ABI_NAME, "pixmaps", "gdaui-generic.png", NULL);
- gdaui_bar_set_icon_from_file (GDAUI_BAR (priv->title), path);
- g_free (path);
+ gdaui_bar_set_icon_from_resource (GDAUI_BAR (priv->title), "/images/gdaui-generic.png");
+
gtk_box_pack_start (GTK_BOX (dsn), priv->title, FALSE, FALSE, 0);
gtk_widget_show (priv->title);
@@ -178,7 +169,7 @@ dsn_config_new (void)
gtk_box_pack_start (GTK_BOX (dsn), box, FALSE, FALSE, 0);
gtk_widget_show (box);
- image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
+ image = gtk_image_new_from_icon_name ("dialog-information", GTK_ICON_SIZE_DIALOG);
gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
gtk_widget_show (image);
gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0);
diff --git a/control-center/dsn-properties-dialog.c b/control-center/dsn-properties-dialog.c
index 1c58e0f..b80b86b 100644
--- a/control-center/dsn-properties-dialog.c
+++ b/control-center/dsn-properties-dialog.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 - 2011 Vivien Malerba <malerba gnome-db org>
+ * Copyright (C) 2009 - 2014 Vivien Malerba <malerba gnome-db org>
* Copyright (C) 2010 David King <davidk openismus com>
* Copyright (C) 2011 Murray Cumming <murrayc murrayc com>
*
@@ -38,8 +38,8 @@ enum {
static gboolean
data_source_info_equal (const GdaDsnInfo *info1, const GdaDsnInfo *info2)
{
- #define str_is_equal(x,y) (((x) && (y) && !strcmp ((x),(y))) || (!(x) && (!y)))
- if (!info1 && !info2)
+#define str_is_equal(x,y) (((x) && (y) && !strcmp ((x),(y))) || (!(x) && (!y)))
+ if (!info1 && !info2)
return TRUE;
if (!info1 || !info2)
return FALSE;
@@ -75,7 +75,7 @@ dsn_changed_cb (GdauiDsnEditor *config, gpointer user_data)
static void
data_source_info_free (GdaDsnInfo *info)
{
- g_free (info->provider);
+ g_free (info->provider);
g_free (info->cnc_string);
g_free (info->description);
g_free (info->auth_string);
@@ -93,7 +93,6 @@ dsn_properties_dialog (GtkWindow *parent, const gchar *dsn)
{
GdaDsnInfo *dsn_info, *priv_dsn_info;
GtkWidget *dialog, *props, *label, *hbox;
- GdkPixbuf *icon;
gchar *str;
gint result;
GdaProviderInfo *pinfo;
@@ -108,8 +107,8 @@ dsn_properties_dialog (GtkWindow *parent, const gchar *dsn)
parent, GTK_DIALOG_DESTROY_WITH_PARENT,
_("Test"), TEST_BUTTON,
_("Browse"), BROWSE_BUTTON,
- GTK_STOCK_REVERT_TO_SAVED, REVERT_BUTTON,
- GTK_STOCK_CLOSE, GTK_RESPONSE_OK,
+ _("_Revert"), REVERT_BUTTON,
+ _("Close"), GTK_RESPONSE_OK,
NULL);
gtk_window_set_default_size (GTK_WINDOW (dialog), 450, 300);
gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), TEST_BUTTON, pinfo ? TRUE : FALSE);
@@ -132,10 +131,9 @@ dsn_properties_dialog (GtkWindow *parent, const gchar *dsn)
g_object_set_data_full (G_OBJECT (dialog), "old_dsn_info", priv_dsn_info,
(GDestroyNotify) data_source_info_free);
- gchar *path;
- path = gda_gbr_get_file_path (GDA_DATA_DIR, LIBGDA_ABI_NAME, "pixmaps", "gda-control-center.png",
NULL);
- icon = gdk_pixbuf_new_from_file (path, NULL);
- g_free (path);
+
+ GdkPixbuf *icon;
+ icon = gdk_pixbuf_new_from_resource ("/images/gda-control-center.png", NULL);
if (icon) {
gtk_window_set_icon (GTK_WINDOW (dialog), icon);
g_object_unref (icon);
diff --git a/control-center/gdaui-bar.c b/control-center/gdaui-bar.c
index 1082149..af42b96 100644
--- a/control-center/gdaui-bar.c
+++ b/control-center/gdaui-bar.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 - 2011 Vivien Malerba <malerba gnome-db org>
+ * Copyright (C) 2009 - 2014 Vivien Malerba <malerba gnome-db org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -388,36 +388,14 @@ gdaui_bar_set_icon_from_file (GdauiBar *bar, const gchar *file)
}
/**
- * gdaui_set_icon_from_stock
- * @bar: a #GdauiBar widget.
- * @stock_id: a stock icon name.
- * @size: a tock icon size.
- *
- * Set the icon using a stock icon for the given gray bar.
+ * gdaui_bar_set_icon_from_resource:
*/
void
-gdaui_bar_set_icon_from_stock (GdauiBar *bar, const gchar *stock_id, GtkIconSize size)
+gdaui_bar_set_icon_from_resource (GdauiBar *bar, const gchar *resource_name)
{
- g_return_if_fail (GDAUI_IS_BAR (bar));
-
- gtk_image_set_from_stock (GTK_IMAGE (bar->priv->icon), stock_id, size);
- gdaui_bar_set_show_icon (bar, TRUE);
-}
-
-/**
- * gdaui_set_icon_from_pixbuf
- * @bar: a #GdauiBar widget.
- * @pixbuf: a #GdkPixbuf
- *
- * Set the icon using a stock icon for the given gray bar.
- */
-void
-gdaui_bar_set_icon_from_pixbuf (GdauiBar *bar, GdkPixbuf *pixbuf)
-{
- g_return_if_fail (GDAUI_IS_BAR (bar));
-
- gtk_image_set_from_pixbuf (GTK_IMAGE (bar->priv->icon), pixbuf);
- gdaui_bar_set_show_icon (bar, TRUE);
+ g_return_if_fail (GDAUI_IS_BAR (bar));
+ gtk_image_set_from_resource (GTK_IMAGE (bar->priv->icon), resource_name);
+ gdaui_bar_set_show_icon (bar, TRUE);
}
/**
@@ -457,49 +435,6 @@ gdaui_bar_get_show_icon (GdauiBar *bar)
return bar->priv->show_icon;
}
-/**
- * gdaui_bar_add_button_from_stock:
- * @bar: a #GdauiBar
- * @stock_id: the stock name of the button to add
- *
- * Returns: (transfer none): the created #GtkButton
- */
-GtkWidget *
-gdaui_bar_add_button_from_stock (GdauiBar *bar, const gchar *stock_id)
-{
- g_return_val_if_fail (GDAUI_IS_BAR (bar), NULL);
- g_return_val_if_fail (stock_id && *stock_id, NULL);
-
- GtkWidget *vb, *button, *img;
-
- vb = gtk_button_box_new (GTK_ORIENTATION_VERTICAL);
- gtk_button_box_set_layout (GTK_BUTTON_BOX (vb), GTK_BUTTONBOX_CENTER);
- gtk_box_pack_start (GTK_BOX (bar->priv->action_area), vb, FALSE, FALSE, 0);
-
- button = gtk_button_new ();
- img = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
- gtk_container_add (GTK_CONTAINER (button), img);
- gtk_box_pack_start (GTK_BOX (vb), button, FALSE, FALSE, 0);
- g_object_set (G_OBJECT (button), "label", NULL, NULL);
-
- /* CSS theming */
- GtkStyleContext *context;
- context = gtk_widget_get_style_context (vb);
- gtk_style_context_add_provider (context, css_provider, G_MAXUINT);
- gtk_style_context_add_class (context, "gdauibar_button");
-
- context = gtk_widget_get_style_context (button);
- gtk_style_context_add_provider (context, css_provider, G_MAXUINT);
- gtk_style_context_add_class (context, "gdauibar_button");
-
- context = gtk_widget_get_style_context (img);
- gtk_style_context_add_provider (context, css_provider, G_MAXUINT);
- gtk_style_context_add_class (context, "gdauibar_button");
-
- gtk_widget_show_all (vb);
- return button;
-}
-
static void
find_icon_pressed_cb (GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_pos,
G_GNUC_UNUSED GdkEvent *event, G_GNUC_UNUSED gpointer data)
@@ -538,9 +473,9 @@ gdaui_bar_add_search_entry (GdauiBar *bar)
gtk_style_context_add_provider (context, css_provider, G_MAXUINT);
gtk_style_context_add_class (context, "gdauibar_entry");
- gtk_entry_set_icon_from_stock (GTK_ENTRY (entry),
- GTK_ENTRY_ICON_SECONDARY,
- GTK_STOCK_CLEAR);
+ gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry),
+ GTK_ENTRY_ICON_SECONDARY,
+ "edit-clear");
g_signal_connect (entry, "icon-press",
G_CALLBACK (find_icon_pressed_cb), NULL);
diff --git a/control-center/gdaui-bar.h b/control-center/gdaui-bar.h
index 0c5db93..1350d60 100644
--- a/control-center/gdaui-bar.h
+++ b/control-center/gdaui-bar.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 - 2011 Vivien Malerba <malerba gnome-db org>
+ * Copyright (C) 2009 - 2014 Vivien Malerba <malerba gnome-db org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -56,12 +56,10 @@ GType gdaui_bar_get_type (void) G_GNUC_CONST;
GtkWidget *gdaui_bar_new (const gchar *text);
const gchar *gdaui_bar_get_text (GdauiBar *bar);
void gdaui_bar_set_text (GdauiBar *bar, const gchar *text);
-void gdaui_bar_set_icon_from_pixbuf (GdauiBar *bar, GdkPixbuf *pixbuf);
void gdaui_bar_set_icon_from_file (GdauiBar *bar, const gchar *file);
-void gdaui_bar_set_icon_from_stock (GdauiBar *bar, const gchar *stock_id, GtkIconSize size);
+void gdaui_bar_set_icon_from_resource(GdauiBar *bar, const gchar *resource_name);
void gdaui_bar_set_show_icon (GdauiBar *bar, gboolean show);
gboolean gdaui_bar_get_show_icon (GdauiBar *bar);
-GtkWidget *gdaui_bar_add_button_from_stock (GdauiBar *bar, const gchar *stock_id);
GtkWidget *gdaui_bar_add_search_entry (GdauiBar *bar);
G_END_DECLS
diff --git a/control-center/gdaui-dsn-assistant.c b/control-center/gdaui-dsn-assistant.c
index b697e0a..7ab334c 100644
--- a/control-center/gdaui-dsn-assistant.c
+++ b/control-center/gdaui-dsn-assistant.c
@@ -720,6 +720,7 @@ gdaui_dsn_assistant_new (void)
GdauiDsnAssistant *assistant;
assistant = g_object_new (GDAUI_TYPE_DSN_ASSISTANT, NULL);
+ gtk_window_set_default_size (GTK_WINDOW (assistant), 500, -1);
return GTK_WIDGET (assistant);
}
diff --git a/control-center/gdaui-login-dialog.c b/control-center/gdaui-login-dialog.c
index 3d3f506..7c7db1b 100644
--- a/control-center/gdaui-login-dialog.c
+++ b/control-center/gdaui-login-dialog.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 - 2011 Vivien Malerba <malerba gnome-db org>
+ * Copyright (C) 2009 - 2014 Vivien Malerba <malerba gnome-db org>
* Copyright (C) 2010 David King <davidk openismus com>
* Copyright (C) 2011 Murray Cumming <murrayc murrayc com>
*
@@ -95,7 +95,6 @@ gdaui_login_dialog_init (GdauiLoginDialog *dialog, G_GNUC_UNUSED GdauiLoginDialo
{
GtkWidget *hbox, *vbox, *image, *label;
GtkWidget *nb;
- GdkPixbuf *icon;
GtkWidget *dcontents;
g_return_if_fail (GDAUI_IS_LOGIN_DIALOG (dialog));
@@ -103,8 +102,8 @@ gdaui_login_dialog_init (GdauiLoginDialog *dialog, G_GNUC_UNUSED GdauiLoginDialo
dcontents = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
dialog->priv = g_new0 (GdauiLoginDialogPrivate, 1);
- gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
- gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CONNECT, GTK_RESPONSE_OK);
+ gtk_dialog_add_button (GTK_DIALOG (dialog), _("_Cancel"), GTK_RESPONSE_CANCEL);
+ gtk_dialog_add_button (GTK_DIALOG (dialog), _("C_onnect"), GTK_RESPONSE_OK);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
@@ -116,7 +115,7 @@ gdaui_login_dialog_init (GdauiLoginDialog *dialog, G_GNUC_UNUSED GdauiLoginDialo
gtk_widget_show (hbox);
gtk_box_pack_start (GTK_BOX (dcontents), hbox, TRUE, TRUE, 0);
- image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG);
+ image = gtk_image_new_from_icon_name ("dialog-password", GTK_ICON_SIZE_DIALOG);
gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
gtk_widget_show (image);
gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 5);
@@ -152,10 +151,8 @@ gdaui_login_dialog_init (GdauiLoginDialog *dialog, G_GNUC_UNUSED GdauiLoginDialo
g_signal_connect (G_OBJECT (dialog->priv->login), "changed",
G_CALLBACK (login_changed_cb), dialog);
- gchar *path;
- path = gda_gbr_get_file_path (GDA_DATA_DIR, LIBGDA_ABI_NAME, "pixmaps", "gdaui-generic.png", NULL);
- icon = gdk_pixbuf_new_from_file (path, NULL);
- g_free (path);
+ GdkPixbuf *icon;
+ icon = gdk_pixbuf_new_from_resource ("/images/gdaui-generic.png", NULL);
if (icon) {
gtk_window_set_icon (GTK_WINDOW (dialog), icon);
g_object_unref (icon);
diff --git a/control-center/main.c b/control-center/main.c
index 6a79250..58f8227 100644
--- a/control-center/main.c
+++ b/control-center/main.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 - 2011 Vivien Malerba <malerba gnome-db org>
+ * Copyright (C) 2009 - 2014 Vivien Malerba <malerba gnome-db org>
* Copyright (C) 2010 David King <davidk openismus com>
* Copyright (C) 2011 Murray Cumming <murrayc murrayc com>
*
@@ -29,11 +29,10 @@
GtkApplication *app;
GtkWindow *main_window;
-GtkActionGroup *actions;
-#define DSN_PAGE "DSN_Page"
-#define PROVIDER_PAGE "Provider_Page"
-static GtkWidget *create_main_notebook (void);
+#define DSN_PAGE "DSN"
+#define NOTEBOOK "Nb"
+static GtkWidget *create_main_notebook (GtkApplicationWindow *app_window);
static void
show_error (GtkWindow *parent, const gchar *format, ...)
@@ -60,7 +59,7 @@ show_error (GtkWindow *parent, const gchar *format, ...)
GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE, "%s", str);
gtk_dialog_add_action_widget (GTK_DIALOG (dialog),
- gtk_button_new_from_stock (GTK_STOCK_OK),
+ gtk_button_new_with_mnemonic (_("_Ok")),
GTK_RESPONSE_OK);
gtk_widget_show_all (dialog);
gtk_dialog_run (GTK_DIALOG (dialog));
@@ -90,7 +89,7 @@ assistant_closed_cb (GdauiDsnAssistant *assistant, G_GNUC_UNUSED gpointer user_d
}
static void
-file_new_cb (G_GNUC_UNUSED GtkAction *action, G_GNUC_UNUSED gpointer user_data)
+file_new_cb (G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, G_GNUC_UNUSED gpointer user_data)
{
GtkWidget *assistant;
@@ -103,14 +102,14 @@ file_new_cb (G_GNUC_UNUSED GtkAction *action, G_GNUC_UNUSED gpointer user_data)
}
static void
-file_properties_cb (G_GNUC_UNUSED GtkAction *action, gpointer user_data)
+file_properties_cb (G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, gpointer user_data)
{
- GtkWidget *nb = GTK_WIDGET (user_data);
- GtkWidget *dsn, *provider, *current_widget;
+ GtkWidget *app_window = GTK_WIDGET (user_data);
+ GtkWidget *nb, *dsn, *current_widget;
gint current;
- dsn = g_object_get_data (G_OBJECT (nb), DSN_PAGE);
- provider = g_object_get_data (G_OBJECT (nb), PROVIDER_PAGE);
+ dsn = g_object_get_data (G_OBJECT (app_window), DSN_PAGE);
+ nb = g_object_get_data (G_OBJECT (app_window), NOTEBOOK);
current = gtk_notebook_get_current_page (GTK_NOTEBOOK (nb));
if (current == -1)
@@ -122,14 +121,14 @@ file_properties_cb (G_GNUC_UNUSED GtkAction *action, gpointer user_data)
}
static void
-file_delete_cb (G_GNUC_UNUSED GtkAction *action, gpointer user_data)
+file_delete_cb (G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, gpointer user_data)
{
- GtkWidget *nb = GTK_WIDGET (user_data);
- GtkWidget *dsn, *provider, *current_widget;
+ GtkWidget *app_window = GTK_WIDGET (user_data);
+ GtkWidget *nb, *dsn, *current_widget;
gint current;
- dsn = g_object_get_data (G_OBJECT (nb), DSN_PAGE);
- provider = g_object_get_data (G_OBJECT (nb), PROVIDER_PAGE);
+ dsn = g_object_get_data (G_OBJECT (app_window), DSN_PAGE);
+ nb = g_object_get_data (G_OBJECT (app_window), NOTEBOOK);
current = gtk_notebook_get_current_page (GTK_NOTEBOOK (nb));
if (current == -1)
@@ -141,13 +140,13 @@ file_delete_cb (G_GNUC_UNUSED GtkAction *action, gpointer user_data)
}
static void
-window_closed_cb (G_GNUC_UNUSED GtkAction *action, G_GNUC_UNUSED gpointer user_data)
+window_closed_cb (G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, G_GNUC_UNUSED gpointer user_data)
{
g_application_quit (G_APPLICATION (app));
}
static void
-about_cb (G_GNUC_UNUSED GtkAction *action, G_GNUC_UNUSED gpointer user_data)
+about_cb (G_GNUC_UNUSED GSimpleAction *action, GVariant *parameter, G_GNUC_UNUSED gpointer user_data)
{
GdkPixbuf *icon;
GtkWidget *dialog;
@@ -168,22 +167,20 @@ about_cb (G_GNUC_UNUSED GtkAction *action, G_GNUC_UNUSED gpointer user_data)
"Christian Rose <menthos menthos com> Swedish translations\n" \
"Kjartan Maraas <kmaraas online no> Norwegian translation\n";
- gchar *path;
- path = gda_gbr_get_file_path (GDA_DATA_DIR, LIBGDA_ABI_NAME, "pixmaps", "gda-control-center.png",
NULL);
- icon = gdk_pixbuf_new_from_file (path, NULL);
- g_free (path);
dialog = gtk_about_dialog_new ();
gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG (dialog), _("Database access control center"));
gtk_about_dialog_set_version (GTK_ABOUT_DIALOG (dialog), PACKAGE_VERSION);
- gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG (dialog), "(C) 1998 - 2011 GNOME Foundation");
+ gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG (dialog), "(C) 1998 - 2014 GNOME Foundation");
gtk_about_dialog_set_comments (GTK_ABOUT_DIALOG (dialog), _("Database access services for the GNOME
Desktop"));
gtk_about_dialog_set_license (GTK_ABOUT_DIALOG (dialog), "GNU Lesser General Public License");
gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (dialog), "http://www.gnome-db.org");
gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (dialog), authors);
gtk_about_dialog_set_documenters (GTK_ABOUT_DIALOG (dialog), documenters);
gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG (dialog), translator_credits);
- gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (dialog), icon);
+ icon = gdk_pixbuf_new_from_resource ("/images/gda-control-center.png", NULL);
+ if (icon)
+ gtk_about_dialog_set_logo (GTK_ABOUT_DIALOG (dialog), icon);
g_signal_connect (G_OBJECT (dialog), "response",
G_CALLBACK (gtk_widget_destroy),
dialog);
@@ -192,89 +189,66 @@ about_cb (G_GNUC_UNUSED GtkAction *action, G_GNUC_UNUSED gpointer user_data)
}
-static GtkActionEntry ui_actions[] = {
- { "Database", NULL, N_("_Data source"), NULL, N_("Database"), NULL },
- { "DatabaseClose", GTK_STOCK_CLOSE, N_("_Close"), NULL, N_("Close this window"), G_CALLBACK
(window_closed_cb) },
- { "DatabaseNew", GTK_STOCK_NEW, N_("_New datasource"), NULL, N_("Create new data source"), G_CALLBACK
(file_new_cb) },
- { "DatabaseDelete", GTK_STOCK_DELETE, N_("_Delete datasource"), NULL, N_("Delete selected data
source"), G_CALLBACK (file_delete_cb) },
- { "DatabaseProperties", GTK_STOCK_PROPERTIES, N_("_Properties"), NULL, N_("Edit properties for
selected data source"), G_CALLBACK (file_properties_cb) },
- { "About", NULL, N_("_About"), NULL, N_("About"), NULL },
- { "HelpAbout", GTK_STOCK_ABOUT, N_("_About"), NULL, N_("About GNOME-DB"), G_CALLBACK (about_cb) }
+static GActionEntry app_entries[] = {
+ { "quit", window_closed_cb, NULL, NULL, NULL },
};
-static const gchar *ui_actions_info =
- "<ui>"
- " <menubar name='MenuBar'>"
- " <menu name='Database' action='Database'>"
- " <menuitem name='DatabaseNew' action= 'DatabaseNew'/>"
- " <menuitem name='DatabaseProperties' action= 'DatabaseProperties'/>"
- " <menuitem name='DatabaseDelete' action= 'DatabaseDelete'/>"
- " <separator/>"
- " <menuitem name='DatabaseClose' action= 'DatabaseClose'/>"
- " </menu>"
- " <menu name='About' action='About'>"
- " <menuitem name='HelpAbout' action= 'HelpAbout'/>"
- " </menu>"
- " </menubar>"
- " <toolbar name='ToolBar'>"
- " <toolitem action='DatabaseNew'/>"
- " <toolitem action='DatabaseProperties'/>"
- " <toolitem action='DatabaseDelete'/>"
- " </toolbar>"
- "</ui>";
+static GActionEntry win_entries[] = {
+ { "DatasourceNew", file_new_cb, NULL, NULL, NULL },
+ { "DatasourceDelete", file_delete_cb, NULL, NULL, NULL },
+ { "DatasourceProperties", file_properties_cb, NULL, NULL, NULL },
+ { "about", about_cb, NULL, NULL, NULL }
+};
static void
-prepare_menu (GtkBox *vbox, GtkWidget *nb)
+startup (GApplication *app)
{
- GtkWidget *menubar;
- GtkWidget *toolbar;
- GtkUIManager *ui;
-
- actions = gtk_action_group_new ("Actions");
- gtk_action_group_set_translation_domain (actions, GETTEXT_PACKAGE);
- gtk_action_group_add_actions (actions, ui_actions, G_N_ELEMENTS (ui_actions), nb);
-
- ui = gtk_ui_manager_new ();
- gtk_ui_manager_insert_action_group (ui, actions, 0);
- gtk_ui_manager_add_ui_from_string (ui, ui_actions_info, -1, NULL);
-
- menubar = gtk_ui_manager_get_widget (ui, "/MenuBar");
- gtk_box_pack_start (vbox, menubar, FALSE, FALSE, 0);
- gtk_widget_show (menubar);
-
- toolbar = gtk_ui_manager_get_widget (ui, "/ToolBar");
- gtk_box_pack_start (vbox, toolbar, FALSE, FALSE, 0);
- gtk_widget_show (toolbar);
-
- GtkAction *action;
- action = gtk_action_group_get_action (actions, "DatabaseProperties");
- g_object_set (G_OBJECT (action), "sensitive", FALSE, NULL);
- action = gtk_action_group_get_action (actions, "DatabaseDelete");
- g_object_set (G_OBJECT (action), "sensitive", FALSE, NULL);
-}
+ GtkBuilder *builder;
+ GMenuModel *appmenu;
+ GMenuModel *menubar;
+ builder = gtk_builder_new ();
+ g_assert (gtk_builder_add_from_resource (builder, "/application/menus.ui", NULL));
-static GtkWidget *
-create_main_window (void)
+ appmenu = (GMenuModel *)gtk_builder_get_object (builder, "appmenu");
+ menubar = (GMenuModel *)gtk_builder_get_object (builder, "menubar");
+
+ gtk_application_set_app_menu (GTK_APPLICATION (app), appmenu);
+ gtk_application_set_menubar (GTK_APPLICATION (app), menubar);
+
+ g_object_unref (builder);
+}
+
+static void
+activate (GApplication *app)
{
- GtkWidget *window, *vbox;
+ static GtkWidget *window = NULL;
+ if (window) {
+ gtk_window_present (GTK_WINDOW (window));
+ return;
+ }
+
+ GtkWidget *vbox;
GtkWidget *nb;
- GdkPixbuf *icon;
+
+ gdaui_init ();
/* create the main window */
- window = gtk_application_window_new (app);
+ window = gtk_application_window_new (GTK_APPLICATION (app));
main_window = GTK_WINDOW (window);
- gtk_window_set_title (GTK_WINDOW (window), _("Database access control center"));
+ gtk_window_set_title (GTK_WINDOW (window), _("Datasource access control center"));
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size (GTK_WINDOW (window), 650, 600);
- g_signal_connect (G_OBJECT (window), "destroy",
- G_CALLBACK (window_closed_cb), NULL);
+
+ /* actions */
+ g_action_map_add_action_entries (G_ACTION_MAP (window),
+ win_entries, G_N_ELEMENTS (win_entries),
+ window);
+
/* icon */
- gchar *path;
- path = gda_gbr_get_file_path (GDA_DATA_DIR, LIBGDA_ABI_NAME, "pixmaps", "gda-control-center.png",
NULL);
- icon = gdk_pixbuf_new_from_file (path, NULL);
- g_free (path);
+ GdkPixbuf *icon;
+ icon = gdk_pixbuf_new_from_resource ("/images/gda-control-center.png", NULL);
if (icon) {
gtk_window_set_icon (GTK_WINDOW (window), icon);
g_object_unref (icon);
@@ -285,37 +259,30 @@ create_main_window (void)
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show (vbox);
- nb = create_main_notebook ();
- prepare_menu (GTK_BOX (vbox), nb);
-
+ nb = create_main_notebook (GTK_APPLICATION_WINDOW (window));
gtk_container_set_border_width (GTK_CONTAINER (nb), 6);
gtk_box_pack_start (GTK_BOX (vbox), nb, TRUE, TRUE, 0);
gtk_widget_show (nb);
gtk_widget_show (window);
- return window;
-}
-static void
-activate (GtkApplication *app)
-{
- static GtkWidget *window = NULL;
+ /* set actions start state */
+ GAction *action;
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "DatasourceProperties");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);
- if (! window) {
- gdaui_init ();
- window = create_main_window ();
- gtk_window_set_application (GTK_WINDOW (window), app);
- gtk_widget_show (window);
- }
+ action = g_action_map_lookup_action (G_ACTION_MAP (window), "DatasourceDelete");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);
}
int
main (int argc, char *argv[])
{
gint status;
-
- app = gtk_application_new ("org.GnomeDb.GdaBrowser", G_APPLICATION_FLAGS_NONE);
+
+ app = gtk_application_new ("org.Libgda.Preferences", G_APPLICATION_FLAGS_NONE);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
+ g_signal_connect (app, "startup", G_CALLBACK (startup), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
@@ -325,40 +292,40 @@ main (int argc, char *argv[])
}
static void
-dsn_selection_changed_cb (GdauiRawGrid *dbrawgrid, G_GNUC_UNUSED gboolean row_selected, G_GNUC_UNUSED
gpointer data)
+dsn_selection_changed_cb (GdauiRawGrid *dbrawgrid, GtkApplicationWindow *main_window)
{
- GtkAction *action;
GArray *selection;
-
selection = gdaui_data_selector_get_selected_rows (GDAUI_DATA_SELECTOR (dbrawgrid));
- action = gtk_action_group_get_action (actions, "DatabaseProperties");
- g_object_set (G_OBJECT (action), "sensitive", selection ? TRUE : FALSE, NULL);
+ GAction *action;
+ action = g_action_map_lookup_action (G_ACTION_MAP (main_window), "DatasourceProperties");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), selection ? TRUE : FALSE);
- action = gtk_action_group_get_action (actions, "DatabaseDelete");
- g_object_set (G_OBJECT (action), "sensitive", selection ? TRUE : FALSE, NULL);
+ action = g_action_map_lookup_action (G_ACTION_MAP (main_window), "DatasourceDelete");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), selection ? TRUE : FALSE);
if (selection)
g_array_free (selection, TRUE);
}
static void
-main_nb_page_switched_cb (G_GNUC_UNUSED GtkNotebook *notebook, G_GNUC_UNUSED GtkWidget *page, guint
page_num, G_GNUC_UNUSED gpointer data)
+main_nb_page_switched_cb (G_GNUC_UNUSED GtkNotebook *notebook, G_GNUC_UNUSED GtkWidget *page, guint page_num,
+ GtkApplicationWindow *main_window)
{
gboolean show;
- GtkAction *action;
+ show = page_num == 0 ? TRUE : FALSE;
- if (!actions)
- return;
+ GAction *action;
+ action = g_action_map_lookup_action (G_ACTION_MAP (main_window), "DatasourceProperties");
+ //g_object_set (G_OBJECT (action), "visible", show, NULL);
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), show);
- show = page_num == 0 ? TRUE : FALSE;
- action = gtk_action_group_get_action (actions, "DatabaseProperties");
- g_object_set (G_OBJECT (action), "visible", show, NULL);
- action = gtk_action_group_get_action (actions, "DatabaseDelete");
- g_object_set (G_OBJECT (action), "visible", show, NULL);
+ action = g_action_map_lookup_action (G_ACTION_MAP (main_window), "DatasourceDelete");
+ g_simple_action_set_enabled (G_SIMPLE_ACTION (action), show);
+ //g_object_set (G_OBJECT (action), "visible", show, NULL);
}
static GtkWidget *
-create_main_notebook (void)
+create_main_notebook (GtkApplicationWindow *app_window)
{
GtkWidget *nb;
GtkWidget *dsn;
@@ -366,26 +333,30 @@ create_main_notebook (void)
GdauiRawGrid *grid;
nb = gtk_notebook_new ();
+ g_object_set_data (G_OBJECT (app_window), NOTEBOOK, nb);
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (nb), TRUE);
gtk_notebook_set_scrollable (GTK_NOTEBOOK (nb), TRUE);
gtk_notebook_popup_enable (GTK_NOTEBOOK (nb));
gtk_widget_show (nb);
g_signal_connect (G_OBJECT (nb), "switch-page",
- G_CALLBACK (main_nb_page_switched_cb), NULL);
+ G_CALLBACK (main_nb_page_switched_cb), app_window);
+
+ g_action_map_add_action_entries (G_ACTION_MAP (app),
+ app_entries, G_N_ELEMENTS (app_entries),
+ app);
/* data source configuration page */
dsn = dsn_config_new ();
- g_object_set_data (G_OBJECT (nb), DSN_PAGE, dsn);
+ g_object_set_data (G_OBJECT (app_window), DSN_PAGE, dsn);
gtk_notebook_append_page (GTK_NOTEBOOK (nb), dsn,
gtk_label_new (_("Data Sources")));
grid = g_object_get_data (G_OBJECT (dsn), "grid");
g_signal_connect (G_OBJECT (grid), "selection-changed",
- G_CALLBACK (dsn_selection_changed_cb), NULL);
+ G_CALLBACK (dsn_selection_changed_cb), app_window);
/* providers configuration page */
provider = provider_config_new ();
- g_object_set_data (G_OBJECT (nb), PROVIDER_PAGE, provider);
gtk_notebook_append_page (GTK_NOTEBOOK (nb), provider,
gtk_label_new (_("Providers")));
diff --git a/control-center/menus.ui b/control-center/menus.ui
new file mode 100644
index 0000000..4088a35
--- /dev/null
+++ b/control-center/menus.ui
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<interface>
+ <menu id="appmenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="action">app.quit</attribute>
+ <attribute name="accel"><Primary>q</attribute>
+ </item>
+ </section>
+ </menu>
+ <menu id="menubar">
+ <submenu>
+ <attribute name="label" translatable="yes">_Data sources</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_New</attribute>
+ <attribute name="action">win.DatasourceNew</attribute>
+ <attribute name="accel"><Primary>n</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Properties</attribute>
+ <attribute name="action">win.DatasourceProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Delete</attribute>
+ <attribute name="action">win.DatasourceDelete</attribute>
+ <attribute name="accel"><Primary>d</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.about</attribute>
+ <attribute name="accel"><Primary>a</attribute>
+ </item>
+ </submenu>
+ </menu>
+</interface>
diff --git a/control-center/provider-config.c b/control-center/provider-config.c
index c947b69..3ff4241 100644
--- a/control-center/provider-config.c
+++ b/control-center/provider-config.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 - 2011 Vivien Malerba <malerba gnome-db org>
+ * Copyright (C) 2009 - 2014 Vivien Malerba <malerba gnome-db org>
* Copyright (C) 2011 Murray Cumming <murrayc murrayc com>
*
* This program is free software; you can redistribute it and/or
@@ -62,10 +62,7 @@ provider_config_new (void)
priv->title = gdaui_bar_new (title);
g_free (title);
- gchar *path;
- path = gda_gbr_get_file_path (GDA_DATA_DIR, LIBGDA_ABI_NAME, "pixmaps", "gdaui-generic.png", NULL);
- gdaui_bar_set_icon_from_file (GDAUI_BAR (priv->title), path);
- g_free (path);
+ gdaui_bar_set_icon_from_resource (GDAUI_BAR (priv->title), "/images/gdaui-generic.png");
gtk_box_pack_start (GTK_BOX (provider), priv->title, FALSE, FALSE, 0);
gtk_widget_show (priv->title);
@@ -92,7 +89,7 @@ provider_config_new (void)
gtk_container_set_border_width (GTK_CONTAINER (box), 6);
gtk_box_pack_start (GTK_BOX (provider), box, FALSE, FALSE, 0);
- image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
+ image = gtk_image_new_from_icon_name ("dialog-information", GTK_ICON_SIZE_DIALOG);
gtk_widget_show (image);
gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0);
diff --git a/doc/C/packaging_ui.xml b/doc/C/packaging_ui.xml
index 12f622d..f4ec39f 100644
--- a/doc/C/packaging_ui.xml
+++ b/doc/C/packaging_ui.xml
@@ -112,12 +112,9 @@
`-- share
|-- applications
| `-- gda-control-center-6.0.desktop
- |-- libgda-6.0
- | `-- pixmaps
- | `-- gdaui-generic.png
- `-- pixmaps
- |-- gda-control-center-newcnc.png
- `-- gda-control-center.png
+ `-- libgda-6.0
+ `-- pixmaps
+ `-- gdaui-generic.png
</programlisting>
</para>
</sect2>
diff --git a/installers/Windows/make-zip-setup.sh b/installers/Windows/make-zip-setup.sh
index 9cf4184..4b4f1c6 100755
--- a/installers/Windows/make-zip-setup.sh
+++ b/installers/Windows/make-zip-setup.sh
@@ -462,10 +462,6 @@ files=(gda-browser-6.0.png)
add_files_to_zip $archive $prefix share/pixmaps $files
add_found_files_to_nsh core share/pixmaps
-files=(gda-control-center.png)
-add_files_to_zip $archive $prefix share/libgda-6.0/pixmaps $files
-add_found_files_to_nsh core share/libgda-6.0/pixmaps
-
files=(gdaui-entry-number.xml gdaui-entry-string.xml)
add_files_to_zip $archive $prefix share/libgda-6.0/ui $files
add_found_files_to_nsh core share/libgda-6.0/ui
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]