mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
help-overlay: add help overlay to SpWindow and app menu
This adds an app menu and window action to activate the keyboard shortcuts overlay.
This commit is contained in:
82
src/resources/gtk/help-overlay.ui
Normal file
82
src/resources/gtk/help-overlay.ui
Normal file
@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<object class="GtkShortcutsWindow" id="help_overlay">
|
||||
<child>
|
||||
<object class="GtkShortcutsSection">
|
||||
<property name="visible">1</property>
|
||||
<property name="section-name">sysprof</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Sysprof Shortcuts</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Recording</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Stop recording</property>
|
||||
<property name="accelerator">Escape</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Callgraph</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Expand function</property>
|
||||
<property name="subtitle" translatable="yes" context="shortcut window">Shows the direct descendants of the callgraph function</property>
|
||||
<property name="accelerator">Right</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Collapse function</property>
|
||||
<property name="subtitle" translatable="yes" context="shortcut window">Hides all callgraph descendants below the selected function</property>
|
||||
<property name="accelerator">Left</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Jump into function</property>
|
||||
<property name="subtitle" translatable="yes" context="shortcut window">Selects the function or file as the top of the callgraph</property>
|
||||
<property name="accelerator">Return</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsGroup">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Visualizers</property>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Zoom in</property>
|
||||
<property name="accelerator"><primary>plus</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Zoom out</property>
|
||||
<property name="accelerator"><primary>minus</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcutsShortcut">
|
||||
<property name="visible">1</property>
|
||||
<property name="title" translatable="yes" context="shortcut window">Reset zoom</property>
|
||||
<property name="accelerator"><primary>0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@ -22,6 +22,10 @@
|
||||
<attribute name="label" translatable="yes">Help</attribute>
|
||||
<attribute name="action">app.help</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Keyboard Shortcuts</attribute>
|
||||
<attribute name="action">app.show-help-overlay</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Quit</attribute>
|
||||
<attribute name="action">app.quit</attribute>
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
<gresource prefix="/org/gnome/sysprof">
|
||||
<!-- Automatic GTK resources -->
|
||||
<file>gtk/menus.ui</file>
|
||||
<file>gtk/help-overlay.ui</file>
|
||||
|
||||
<!-- Application icons -->
|
||||
<file alias="icons/16x16/apps/sysprof.png">../../data/icons/16x16/apps/sysprof.png</file>
|
||||
|
||||
@ -263,15 +263,52 @@ sysprof_open_capture (GSimpleAction *action,
|
||||
sp_window_open_from_dialog (SP_WINDOW (window));
|
||||
}
|
||||
|
||||
static void
|
||||
sysprof_show_help_overlay (GSimpleAction *action,
|
||||
GVariant *variant,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkApplication *app = user_data;
|
||||
SpWindow *window = NULL;
|
||||
|
||||
g_assert (G_IS_APPLICATION (app));
|
||||
g_assert (G_IS_SIMPLE_ACTION (action));
|
||||
g_assert (variant == NULL);
|
||||
|
||||
for (GList *list = gtk_application_get_windows (app); list; list = list->next)
|
||||
{
|
||||
GtkWindow *element = list->data;
|
||||
|
||||
if (SP_IS_WINDOW (element))
|
||||
{
|
||||
window = SP_WINDOW (element);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (window == NULL)
|
||||
{
|
||||
window = g_object_new (SP_TYPE_WINDOW,
|
||||
"application", app,
|
||||
NULL);
|
||||
gtk_window_present (GTK_WINDOW (window));
|
||||
}
|
||||
|
||||
g_assert (g_action_group_has_action (G_ACTION_GROUP (window), "show-help-overlay"));
|
||||
|
||||
g_action_group_activate_action (G_ACTION_GROUP (window), "show-help-overlay", NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
sp_application_init (SpApplication *self)
|
||||
{
|
||||
static const GActionEntry actions[] = {
|
||||
{ "about", sysprof_about },
|
||||
{ "new-window", sysprof_new_window },
|
||||
{ "open-capture", sysprof_open_capture },
|
||||
{ "help", sysprof_help },
|
||||
{ "quit", sysprof_quit },
|
||||
{ "about", sysprof_about },
|
||||
{ "new-window", sysprof_new_window },
|
||||
{ "open-capture", sysprof_open_capture },
|
||||
{ "help", sysprof_help },
|
||||
{ "show-help-overlay", sysprof_show_help_overlay },
|
||||
{ "quit", sysprof_quit },
|
||||
};
|
||||
|
||||
g_action_map_add_action_entries (G_ACTION_MAP (self), actions, G_N_ELEMENTS (actions), self);
|
||||
|
||||
Reference in New Issue
Block a user