[Xfce4-commits] [apps/xfburn] 15/42: the Welcome buttons work again
noreply at xfce.org
noreply at xfce.org
Tue Oct 15 02:21:58 CEST 2019
This is an automated email from the git hooks/post-receive script.
k a t a n a s t e e l p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository apps/xfburn.
commit 89ce66cfe212c75ce9fe607676cfa4fb864895db
Author: Rene Kjellerup <rk.katana.steel at gmail.com>
Date: Fri Nov 30 12:10:53 2018 -0800
the Welcome buttons work again
by passing the simple action group forward to the
welcome tap creation.
a bit of rework has been going on to replace GtkActionGroup
with the GActionMap & GActionGroup interface
---
xfburn.ui | 1 +
xfburn/xfburn-compositions-notebook.c | 2 +-
xfburn/xfburn-compositions-notebook.h | 2 +-
xfburn/xfburn-main-window.c | 120 ++++++++++++++++++----------------
xfburn/xfburn-welcome-tab.c | 20 +++---
xfburn/xfburn-welcome-tab.h | 2 +-
6 files changed, 79 insertions(+), 68 deletions(-)
diff --git a/xfburn.ui b/xfburn.ui
index 807f3d8..c5802fc 100644
--- a/xfburn.ui
+++ b/xfburn.ui
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
<interface>
<menu id="main-menu">
<submenu>
diff --git a/xfburn/xfburn-compositions-notebook.c b/xfburn/xfburn-compositions-notebook.c
index 70d0818..ab9116a 100644
--- a/xfburn/xfburn-compositions-notebook.c
+++ b/xfburn/xfburn-compositions-notebook.c
@@ -226,7 +226,7 @@ xfburn_compositions_notebook_add_composition (XfburnCompositionsNotebook *notebo
}
void
-xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GtkActionGroup *action_group)
+xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GActionGroup *action_group)
{
GtkWidget *welcome_tab = NULL;
GtkWidget *label;
diff --git a/xfburn/xfburn-compositions-notebook.h b/xfburn/xfburn-compositions-notebook.h
index 9f98888..8910236 100644
--- a/xfburn/xfburn-compositions-notebook.h
+++ b/xfburn/xfburn-compositions-notebook.h
@@ -53,7 +53,7 @@ GType xfburn_compositions_notebook_get_type (void);
GtkWidget *xfburn_compositions_notebook_new (void);
XfburnComposition *xfburn_compositions_notebook_add_composition (XfburnCompositionsNotebook *notebook, XfburnCompositionType type);
-void xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GtkActionGroup *action_group);
+void xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GActionGroup *action_group);
void xfburn_compositions_notebook_close_composition (XfburnCompositionsNotebook *notebook);
diff --git a/xfburn/xfburn-main-window.c b/xfburn/xfburn-main-window.c
index aaec404..a79b480 100644
--- a/xfburn/xfburn-main-window.c
+++ b/xfburn/xfburn-main-window.c
@@ -47,7 +47,7 @@
/* private struct */
typedef struct {
GActionGroup *action_group;
- GActionMap *action_map;
+ GSimpleActionGroup *action_map;
GtkBuilder *ui_manager;
GtkWidget *menubar;
@@ -70,30 +70,30 @@ static void xfburn_main_window_init (XfburnMainWindow *);
static gboolean cb_delete_main_window (XfburnMainWindow *, GdkEvent *, XfburnMainWindowPrivate *);
// static void cb_edit_toolbars_view (ExoToolbarsView *, gpointer);
-static void action_about (GtkAction *, XfburnMainWindow *);
-static void action_preferences (GtkAction *, XfburnMainWindow *);
+static void action_about (GAction *, GVariant*, XfburnMainWindow *);
+static void action_preferences (GAction *, GVariant*, XfburnMainWindow *);
-static void action_new_data_composition (GtkAction *, XfburnMainWindow *);
-static void action_new_audio_composition (GtkAction *, XfburnMainWindow *);
+static void action_new_data_composition (GAction *, GVariant*, XfburnMainWindow *);
+static void action_new_audio_composition (GAction *, GVariant*, XfburnMainWindow *);
/*
static void action_load (GtkAction *, XfburnMainWindow *);
static void action_save (GtkAction *, XfburnMainWindow *);
static void action_save_as (GtkAction *, XfburnMainWindow *);
*/
-static void action_close (GtkAction *, XfburnMainWindow *);
-static void action_quit (GtkAction *, XfburnMainWindow *);
+static void action_close (GAction *, GVariant*, XfburnMainWindow *);
+static void action_quit (GAction *, GVariant*, XfburnMainWindow *);
-static void action_blank (GtkAction *, XfburnMainWindow *);
-static void action_copy_cd (GtkAction *, XfburnMainWindow *);
-static void action_burn_image (GtkAction *, XfburnMainWindow *);
+static void action_blank (GAction *, GVariant*, XfburnMainWindow *);
+static void action_copy_cd (GAction *, GVariant*, XfburnMainWindow *);
+static void action_burn_image (GAction *, GVariant*, XfburnMainWindow *);
//static void action_copy_dvd (GtkAction *, XfburnMainWindow *);
-static void action_burn_dvd_image (GtkAction *, XfburnMainWindow *);
+static void action_burn_dvd_image (GAction *, GVariant*, XfburnMainWindow *);
-static void action_refresh_directorybrowser (GtkAction *, XfburnMainWindow *);
-static void action_show_filebrowser (GtkToggleAction *, XfburnMainWindow *);
-static void action_show_toolbar (GtkToggleAction * action, XfburnMainWindow * window);
+static void action_refresh_directorybrowser (GAction *, GVariant*, XfburnMainWindow *);
+static void action_show_filebrowser (GAction *, GVariant*, XfburnMainWindow *);
+static void action_show_toolbar (GAction * action, GVariant*, XfburnMainWindow * window);
/* globals */
static GtkWindowClass *parent_class = NULL;
@@ -165,12 +165,16 @@ static const struct {
G_CALLBACK (action_burn_dvd_image),},
};
*/
-static const GtkToggleActionEntry toggle_action_entries[] = {
+static const GActionEntry toggle_action_entries[] = {
+ { "show-filebrowser", NULL, NULL, "true", action_show_filebrowser },
+ { "show-toolbar", NULL, NULL, "true", action_show_toolbar },
+};
+/* static const GtkToggleActionEntry toggle_action_entries[] = {
{"show-filebrowser", NULL, N_("Show file browser"), NULL, N_("Show/hide the file browser"),
G_CALLBACK (action_show_filebrowser), TRUE,},
{"show-toolbar", NULL, N_("Show toolbar"), NULL, N_("Show/hide the toolbar"),
G_CALLBACK (action_show_toolbar), TRUE,},
-};
+}; */
static const gchar *toolbar_actions[] = {
"new-data-composition",
@@ -258,9 +262,14 @@ xfburn_main_window_init (XfburnMainWindow * mainwin)
g_signal_connect (G_OBJECT (mainwin), "delete-event", G_CALLBACK (cb_delete_main_window), priv);
/* create ui manager */
+ priv->ui_manager = gtk_builder_new ();
+ gtk_builder_set_translation_domain (priv->ui_manager, GETTEXT_PACKAGE);
+
priv->action_group = gtk_action_group_new ("xfburn-main-window");
- gtk_action_group_set_translation_domain (priv->action_group, GETTEXT_PACKAGE);
- g_action_map_add_action_entries(priv->action_map, action_entries, G_N_ELEMENTS(action_entries), mainwin);
+ priv->action_map = g_simple_action_group_new();
+
+ g_action_map_add_action_entries (priv->action_map, action_entries, G_N_ELEMENTS(action_entries), mainwin);
+ g_action_map_add_action_entries (priv->action_map, toggle_action_entries, G_N_ELEMENTS(toggle_action_entries), mainwin);
/* gtk_action_group_add_actions (priv->action_group, action_entries, G_N_ELEMENTS (action_entries),
GTK_WIDGET (mainwin));
gtk_action_group_add_toggle_actions (priv->action_group, toggle_action_entries,
@@ -268,7 +277,6 @@ xfburn_main_window_init (XfburnMainWindow * mainwin)
gtk_ui_manager_insert_action_group (priv->ui_manager, priv->action_group, 0);
*/
- priv->ui_manager = gtk_builder_new ();
xfce_resource_push_path (XFCE_RESOURCE_DATA, DATADIR);
file = xfce_resource_lookup (XFCE_RESOURCE_DATA, "xfburn/xfburn.3.ui");
@@ -294,11 +302,12 @@ xfburn_main_window_init (XfburnMainWindow * mainwin)
gtk_widget_show (vbox);
/* menubar */
- GMenu *menu_model = gtk_builder_get_object (priv->ui_manager, "main-menu");
- priv->menubar = gtk_menu_new_from_model(menu_model);
+ GMenuModel *menu_model = (GMenuModel*)gtk_builder_get_object (priv->ui_manager, "main-menu");
+
+ priv->menubar = gtk_menu_bar_new_from_model(menu_model);
if (G_LIKELY (priv->menubar != NULL)) {
- gtk_menu_attach_to_widget(priv->menubar, mainwin, NULL);
- gtk_box_pack_start (GTK_BOX (vbox), priv->menubar, FALSE, FALSE, 0);
+ gtk_widget_insert_action_group(priv->menubar, "xfburn", priv->action_map);
+ gtk_box_pack_start (GTK_BOX (vbox), priv->menubar,FALSE,TRUE,5);
gtk_widget_show (priv->menubar);
}
@@ -409,7 +418,7 @@ cb_delete_main_window (XfburnMainWindow * mainwin, GdkEvent * event, XfburnMainW
/* actions */
static void
-action_blank (GtkAction * action, XfburnMainWindow * window)
+action_blank (GAction * action, GVariant* param, XfburnMainWindow * window)
{
GtkWidget *dialog;
@@ -419,7 +428,7 @@ action_blank (GtkAction * action, XfburnMainWindow * window)
gtk_widget_destroy (dialog);
}
-static void action_copy_cd (GtkAction *action, XfburnMainWindow *window)
+static void action_copy_cd (GAction *action, GVariant* param, XfburnMainWindow *window)
{
/*
GtkWidget *dialog;
@@ -431,7 +440,7 @@ static void action_copy_cd (GtkAction *action, XfburnMainWindow *window)
}
static void
-action_burn_image (GtkAction * action, XfburnMainWindow * window)
+action_burn_image (GAction * action, GVariant* param, XfburnMainWindow * window)
{
GtkWidget *dialog;
@@ -455,7 +464,7 @@ action_copy_dvd (GtkAction * action, XfburnMainWindow * window)
*/
static void
-action_burn_dvd_image (GtkAction * action, XfburnMainWindow * window)
+action_burn_dvd_image (GAction * action, GVariant* param, XfburnMainWindow * window)
{
}
@@ -485,7 +494,7 @@ action_save_as (GtkAction *action, XfburnMainWindow * window)
*/
static void
-action_close (GtkAction *action, XfburnMainWindow * window)
+action_close (GAction *action, GVariant* param, XfburnMainWindow * window)
{
XfburnMainWindowPrivate *priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (window);
@@ -493,13 +502,13 @@ action_close (GtkAction *action, XfburnMainWindow * window)
}
static void
-action_new_data_composition (GtkAction *action, XfburnMainWindow * window)
+action_new_data_composition (GAction *action, GVariant* param, XfburnMainWindow * window)
{
xfburn_main_window_add_data_composition_with_files (window, 0, NULL);
}
static void
-action_new_audio_composition (GtkAction *action, XfburnMainWindow * window)
+action_new_audio_composition (GAction *action, GVariant* param, XfburnMainWindow * window)
{
//XfburnMainWindowPrivate *priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (window);
@@ -507,14 +516,14 @@ action_new_audio_composition (GtkAction *action, XfburnMainWindow * window)
}
static void
-action_quit (GtkAction * action, XfburnMainWindow * window)
+action_quit (GAction * action, GVariant* param, XfburnMainWindow * window)
{
// if (xfce_confirm (_("Are sure you want to quit?"), "application-exit", _("_Quit")))
gtk_main_quit ();
}
static void
-action_about (GtkAction * action, XfburnMainWindow * window)
+action_about (GAction * action, GVariant* param, XfburnMainWindow * window)
{
gint x, y;
GdkPixbuf *icon = NULL;
@@ -584,7 +593,7 @@ action_about (GtkAction * action, XfburnMainWindow * window)
}
static void
-action_preferences (GtkAction * action, XfburnMainWindow * window)
+action_preferences (GAction * action, GVariant* param, XfburnMainWindow * window)
{
GtkWidget *dialog;
@@ -596,7 +605,7 @@ action_preferences (GtkAction * action, XfburnMainWindow * window)
}
static void
-action_refresh_directorybrowser (GtkAction * action, XfburnMainWindow * window)
+action_refresh_directorybrowser (GAction * action, GVariant* param, XfburnMainWindow * window)
{
XfburnMainWindowPrivate *priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (window);
@@ -604,13 +613,13 @@ action_refresh_directorybrowser (GtkAction * action, XfburnMainWindow * window)
}
static void
-action_show_filebrowser (GtkToggleAction * action, XfburnMainWindow * window)
+action_show_filebrowser (GAction * action, GVariant* param, XfburnMainWindow * window)
{
XfburnMainWindowPrivate *priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (window);
+ gboolean toggle = g_variant_get_boolean (g_action_get_state (action));
+ xfburn_settings_set_boolean ("show-filebrowser", toggle);
- xfburn_settings_set_boolean ("show-filebrowser", gtk_toggle_action_get_active (action));
-
- if (gtk_toggle_action_get_active (action)) {
+ if ( toggle ) {
gtk_widget_show (priv->file_browser);
}
else {
@@ -619,13 +628,14 @@ action_show_filebrowser (GtkToggleAction * action, XfburnMainWindow * window)
}
static void
-action_show_toolbar (GtkToggleAction * action, XfburnMainWindow * window)
+action_show_toolbar (GAction * action, GVariant* param, XfburnMainWindow * window)
{
XfburnMainWindowPrivate *priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (window);
+ gboolean toggle = g_variant_get_boolean (g_action_get_state (action));
- xfburn_settings_set_boolean ("show-toolbar", gtk_toggle_action_get_active (action));
+ xfburn_settings_set_boolean ("show-toolbar", toggle);
- if (gtk_toggle_action_get_active (action)) {
+ if ( toggle ) {
gtk_widget_show (priv->toolbars);
}
else {
@@ -651,7 +661,7 @@ xfburn_main_window_new (void)
if (obj) {
XfburnMainWindow *win;
XfburnMainWindowPrivate *priv;
- GtkAction *action;
+ GAction *action;
GList *device = NULL;
XfburnDeviceList *devlist;
@@ -659,10 +669,10 @@ xfburn_main_window_new (void)
priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (win);
/* load settings */
- action = gtk_action_group_get_action (priv->action_group, "show-filebrowser");
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), xfburn_settings_get_boolean ("show-filebrowser", FALSE));
- action = gtk_action_group_get_action (priv->action_group, "show-toolbar");
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), xfburn_settings_get_boolean ("show-toolbar", FALSE));
+ action = g_action_map_lookup_action (priv->action_map, "show-filebrowser");
+ g_action_change_state(action, g_variant_new_boolean (xfburn_settings_get_boolean ("show-filebrowser", FALSE)));
+ action = g_action_map_lookup_action (priv->action_map, "show-toolbar");
+ g_action_change_state(action, g_variant_new_boolean (xfburn_settings_get_boolean ("show-toolbar", FALSE)));
/* action = gtk_action_group_get_action (priv->action_group, "save-composition");
gtk_action_set_sensitive (GTK_ACTION (action), FALSE);*/
@@ -688,20 +698,20 @@ xfburn_main_window_new (void)
}
if (!priv->support_cdr) {
- action = gtk_action_group_get_action (priv->action_group, "copy-data");
- gtk_action_set_sensitive (action, FALSE);
- action = gtk_action_group_get_action (priv->action_group, "copy-audio");
- gtk_action_set_sensitive (action, FALSE);
- action = gtk_action_group_get_action (priv->action_group, "burn-image");
- gtk_action_set_sensitive (action, FALSE);
+ action = g_action_map_lookup_action (priv->action_map, "copy-data");
+ g_simple_action_set_enabled (action, FALSE);
+ action = g_action_map_lookup_action (priv->action_map, "copy-audio");
+ g_simple_action_set_enabled (action, FALSE);
+ action = g_action_map_lookup_action (priv->action_map, "burn-image");
+ g_simple_action_set_enabled (action, FALSE);
}
if (!priv->support_cdrw) {
- action = gtk_action_group_get_action (priv->action_group, "blank-disc");
- gtk_action_set_sensitive (action, FALSE);
+ action = g_action_map_lookup_action (priv->action_map, "blank-disc");
+ g_simple_action_set_enabled (action, FALSE);
}
/* show welcome tab */
- xfburn_compositions_notebook_add_welcome_tab (XFBURN_COMPOSITIONS_NOTEBOOK (priv->compositions_notebook), priv->action_group);
+ xfburn_compositions_notebook_add_welcome_tab (XFBURN_COMPOSITIONS_NOTEBOOK (priv->compositions_notebook), priv->action_map);
}
return obj;
diff --git a/xfburn/xfburn-welcome-tab.c b/xfburn/xfburn-welcome-tab.c
index 9314677..28c032b 100644
--- a/xfburn/xfburn-welcome-tab.c
+++ b/xfburn/xfburn-welcome-tab.c
@@ -240,29 +240,29 @@ new_audio_cd (GtkButton *button, XfburnWelcomeTab *tab)
/* */
GtkWidget *
-xfburn_welcome_tab_new (XfburnCompositionsNotebook *notebook, GtkActionGroup *action_group)
+xfburn_welcome_tab_new (XfburnCompositionsNotebook *notebook, GActionGroup *action_group)
{
GtkWidget *obj;
obj = g_object_new (XFBURN_TYPE_WELCOME_TAB, NULL);
if (obj) {
XfburnWelcomeTabPrivate *priv = XFBURN_WELCOME_TAB_GET_PRIVATE (obj);
- GtkAction *action;
+ GAction *action;
priv->notebook = notebook;
/* FIXME retrieve action group from UI Manager */
- action = gtk_action_group_get_action (action_group, "burn-image");
- gtk_widget_set_sensitive (priv->button_image, gtk_action_is_sensitive (action));
+ action = g_action_map_lookup_action (action_group, "burn-image");
+ gtk_widget_set_sensitive (priv->button_image, g_action_get_enabled (action));
- action = gtk_action_group_get_action (action_group, "new-data-composition");
- gtk_widget_set_sensitive (priv->button_data_comp, gtk_action_is_sensitive (action));
+ action = g_action_map_lookup_action (action_group, "new-data-composition");
+ gtk_widget_set_sensitive (priv->button_data_comp, g_action_get_enabled (action));
- action = gtk_action_group_get_action (action_group, "new-audio-composition");
- gtk_widget_set_sensitive (priv->button_audio_comp, gtk_action_is_sensitive (action));
+ action = g_action_map_lookup_action (action_group, "new-audio-composition");
+ gtk_widget_set_sensitive (priv->button_audio_comp, g_action_get_enabled (action));
- action = gtk_action_group_get_action (action_group, "blank-disc");
- gtk_widget_set_sensitive (priv->button_blank, gtk_action_is_sensitive (action));
+ action = g_action_map_lookup_action (action_group, "blank-disc");
+ gtk_widget_set_sensitive (priv->button_blank, g_action_get_enabled (action));
}
return obj;
diff --git a/xfburn/xfburn-welcome-tab.h b/xfburn/xfburn-welcome-tab.h
index 6b0b8cd..6c2446e 100644
--- a/xfburn/xfburn-welcome-tab.h
+++ b/xfburn/xfburn-welcome-tab.h
@@ -48,7 +48,7 @@ typedef struct
} XfburnWelcomeTabClass;
GType xfburn_welcome_tab_get_type (void);
-GtkWidget *xfburn_welcome_tab_new (XfburnCompositionsNotebook *notebook, GtkActionGroup *action_group);
+GtkWidget *xfburn_welcome_tab_new (XfburnCompositionsNotebook *notebook, GActionGroup *action_group);
G_END_DECLS
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list