diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2023-03-18 14:27:52 +0100 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2023-03-18 15:19:25 +0100 |
commit | bccebed360cb8208602478c0af2351455bafa69f (patch) | |
tree | ba1abb7811f27bd9b071cd6504f0f7333fd3bb89 | |
parent | f1aeb6f6746efa35aec93e334b175d74e56df315 (diff) |
Add an action to start the tests
-rw-r--r-- | src/adwaita/Makefile.am | 3 | ||||
-rw-r--r-- | src/adwaita/disfluid-adwaita.h | 2 | ||||
-rw-r--r-- | src/adwaita/disfluid-application.c | 20 | ||||
-rw-r--r-- | src/adwaita/disfluid-menus.c | 13 |
4 files changed, 36 insertions, 2 deletions
diff --git a/src/adwaita/Makefile.am b/src/adwaita/Makefile.am index b45cf14..e989970 100644 --- a/src/adwaita/Makefile.am +++ b/src/adwaita/Makefile.am @@ -15,7 +15,8 @@ noinst_LTLIBRARIES += %D%/libdisfluid-adwaita.la -I include -I $(srcdir)/include \ -I %D% -I $(srcdir)/%D% \ -DLOCALEDIR=\"$(localedir)\" \ - -DINSTALLDIR=\"$(bindir)\" + -DINSTALLDIR=\"$(bindir)\" \ + -DLIBEXECDIR=\"$(libexecdir)\" %C%_libdisfluid_adwaita_la_LIBADD = \ lib/libgnu.la \ diff --git a/src/adwaita/disfluid-adwaita.h b/src/adwaita/disfluid-adwaita.h index f1c4e78..f0f3f7d 100644 --- a/src/adwaita/disfluid-adwaita.h +++ b/src/adwaita/disfluid-adwaita.h @@ -55,6 +55,8 @@ void disfluid_adw_show_tests_results (GtkApplication * app, GMenuItem *disfluid_adw_menu_item_about (void); +GMenuItem *disfluid_adw_menu_item_run_tests (void); + GMenu *disfluid_adw_main_menu (void); void disfluid_adw_cache_entry_set_file_name (DisfluidAdwCacheEntry * diff --git a/src/adwaita/disfluid-application.c b/src/adwaita/disfluid-application.c index a909d2c..b15d6c6 100644 --- a/src/adwaita/disfluid-application.c +++ b/src/adwaita/disfluid-application.c @@ -49,6 +49,23 @@ launch_about_window (GSimpleAction * action, GVariant * parameter, } static void +start_tests (GSimpleAction * action, GVariant * parameter, gpointer user_data) +{ + (void) action; + (void) parameter; + (void) user_data; + char *arg_0; + if (asprintf (&arg_0, "%s/disfluid-run-unit-tests", relocate (LIBEXECDIR)) < + 0) + { + abort (); + } + char *args[] = { arg_0, NULL }; + g_spawn_async (NULL, args, NULL, 0, NULL, NULL, NULL, NULL); + free (arg_0); +} + +static void disfluid_adw_application_init (DisfluidAdwApplication * self) { (void) self; @@ -61,7 +78,8 @@ disfluid_adw_application_init (DisfluidAdwApplication * self) g_application_get_flags (G_APPLICATION (self)) | G_APPLICATION_HANDLES_OPEN); static GActionEntry app_actions[] = { - {.name = "about",.activate = launch_about_window} + {.name = "about",.activate = launch_about_window}, + {.name = "runtests",.activate = start_tests} }; g_action_map_add_action_entries (G_ACTION_MAP (self), app_actions, G_N_ELEMENTS (app_actions), self); diff --git a/src/adwaita/disfluid-menus.c b/src/adwaita/disfluid-menus.c index ffa0c00..34766c7 100644 --- a/src/adwaita/disfluid-menus.c +++ b/src/adwaita/disfluid-menus.c @@ -29,12 +29,25 @@ disfluid_adw_menu_item_about (void) return item; } +GMenuItem * +disfluid_adw_menu_item_run_tests (void) +{ + GMenuItem *item = g_menu_item_new (_("Run Tests"), "app.runtests"); + GIcon *system_run_icon = G_ICON (g_themed_icon_new ("system-run")); + g_menu_item_set_icon (item, system_run_icon); + g_object_unref (system_run_icon); + return item; +} + GMenu * disfluid_adw_main_menu (void) { GMenu *menu = g_menu_new (); GMenuItem *about = disfluid_adw_menu_item_about (); + GMenuItem *runtests = disfluid_adw_menu_item_run_tests (); g_menu_append_item (menu, about); + g_menu_append_item (menu, runtests); g_object_unref (about); + g_object_unref (runtests); return menu; } |