Updated with upstream update

This commit is contained in:
2023-10-30 15:55:30 -07:00
parent 098531073c
commit 3bbdd873ef
584 changed files with 91827 additions and 70362 deletions

View File

@ -80,6 +80,8 @@ struct _PikaHelpBrowserDialog
GMenuModel *popup_menu_model;
GMenuModel *copy_popup_menu_model;
PikaProcedureConfig *config;
};
G_DEFINE_TYPE (PikaHelpBrowserDialog, pika_help_browser_dialog, GTK_TYPE_APPLICATION_WINDOW)
@ -406,22 +408,29 @@ pika_help_browser_dialog_finalize (GObject *object)
/* Public functions. */
PikaHelpBrowserDialog *
pika_help_browser_dialog_new (const gchar *plug_in_binary,
GApplication *app)
pika_help_browser_dialog_new (const gchar *plug_in_binary,
GApplication *app,
PikaProcedureConfig *config)
{
PikaHelpBrowserDialog *window;
DialogData data = { 720, 560, 240, TRUE, 1.0 };
GBytes *bytes = NULL;
DialogData data = { 720, 560, 240, TRUE, 1.0 };
g_object_get (config, "dialog-data", &bytes, NULL);
if (bytes != NULL && g_bytes_get_size (bytes) == sizeof (DialogData))
data = *((DialogData *) g_bytes_get_data (bytes, NULL));
g_bytes_unref (bytes);
pika_ui_init (plug_in_binary);
pika_get_data (PIKA_HELP_BROWSER_DIALOG_DATA, &data);
window = g_object_new (PIKA_TYPE_HELP_BROWSER_DIALOG,
"application", app,
"role", plug_in_binary,
"default-width", data.width,
"default-height", data.height,
NULL);
window->config = config;
gtk_paned_set_position (GTK_PANED (window->paned), data.paned_position);
if (data.show_index)
gtk_widget_show (window->sidebar);
@ -1005,7 +1014,8 @@ dialog_unmap (GtkWidget *window,
gpointer user_data)
{
PikaHelpBrowserDialog *self = PIKA_HELP_BROWSER_DIALOG (user_data);
DialogData data;
GBytes *bytes;
DialogData data = { 720, 560, 240, TRUE, 1.0 };
gtk_window_get_size (GTK_WINDOW (window), &data.width, &data.height);
@ -1015,7 +1025,9 @@ dialog_unmap (GtkWidget *window,
data.zoom = (self->webview ?
webkit_web_view_get_zoom_level (WEBKIT_WEB_VIEW (self->webview)) : 1.0);
pika_set_data (PIKA_HELP_BROWSER_DIALOG_DATA, &data, sizeof (data));
bytes = g_bytes_new (&data, sizeof (DialogData));
g_object_set (self->config, "dialog-data", bytes, NULL);
g_bytes_unref (bytes);
}
static void

View File

@ -32,11 +32,11 @@
#define PIKA_TYPE_HELP_BROWSER_DIALOG (pika_help_browser_dialog_get_type ())
G_DECLARE_FINAL_TYPE (PikaHelpBrowserDialog, pika_help_browser_dialog,
PIKA, HELP_BROWSER_DIALOG,
GtkApplicationWindow)
PIKA, HELP_BROWSER_DIALOG, GtkApplicationWindow)
PikaHelpBrowserDialog * pika_help_browser_dialog_new (const char *plug_in_binary,
GApplication *app);
PikaHelpBrowserDialog * pika_help_browser_dialog_new (const char *plug_in_binary,
GApplication *app,
PikaProcedureConfig *config);
void pika_help_browser_dialog_load (PikaHelpBrowserDialog *self,
const char *uri);

View File

@ -52,12 +52,12 @@ G_DECLARE_FINAL_TYPE (PikaHelpBrowser, pika_help_browser,
PikaPlugIn)
static PikaValueArray * help_browser_run (PikaProcedure *procedure,
const PikaValueArray *args,
PikaProcedureConfig *config,
gpointer run_data);
static void temp_proc_install (PikaPlugIn *plug_in);
static PikaValueArray * temp_proc_run (PikaProcedure *procedure,
const PikaValueArray *args,
PikaProcedureConfig *config,
gpointer run_data);
static PikaHelpProgress * help_browser_progress_new (void);
@ -66,6 +66,7 @@ struct _PikaHelpBrowser
{
PikaPlugIn parent_instance;
PikaProcedureConfig *config;
GtkApplication *app;
PikaHelpBrowserDialog *window;
};
@ -123,6 +124,11 @@ help_browser_create_procedure (PikaPlugIn *plug_in,
"Domain URIs",
"Domain URIs",
G_PARAM_READWRITE);
PIKA_PROC_AUX_ARG_BYTES (procedure, "dialog-data",
"Dialog data",
"Remembering dialog's basic features; this is never meant to be a public argument",
PIKA_PARAM_READWRITE);
}
return procedure;
@ -135,7 +141,7 @@ on_app_activate (GApplication *gapp,
PikaHelpBrowser *browser = PIKA_HELP_BROWSER (user_data);
GtkApplication *app = GTK_APPLICATION (gapp);
browser->window = pika_help_browser_dialog_new (PLUG_IN_BINARY, gapp);
browser->window = pika_help_browser_dialog_new (PLUG_IN_BINARY, gapp, browser->config);
gtk_application_set_accels_for_action (app, "win.back", (const char*[]) { "<alt>Left", NULL });
gtk_application_set_accels_for_action (app, "win.forward", (const char*[]) { "<alt>Right", NULL });
@ -153,18 +159,30 @@ on_app_activate (GApplication *gapp,
static PikaValueArray *
help_browser_run (PikaProcedure *procedure,
const PikaValueArray *args,
PikaProcedureConfig *config,
gpointer user_data)
{
PikaHelpBrowser *browser = PIKA_HELP_BROWSER (user_data);
PikaHelpBrowser *browser = PIKA_HELP_BROWSER (user_data);
gchar **domain_names = NULL;
gchar **domain_uris = NULL;
if (! pika_help_init (PIKA_VALUES_GET_STRV (args, 1),
PIKA_VALUES_GET_STRV (args, 2)))
browser->config = config;
g_object_get (config,
"domain-names", &domain_names,
"domain-uris", &domain_uris,
NULL);
if (! pika_help_init ((const gchar **) domain_names,
(const gchar **) domain_uris))
{
g_strfreev (domain_names);
g_strfreev (domain_uris);
return pika_procedure_new_return_values (procedure,
PIKA_PDB_CALLING_ERROR,
NULL);
}
g_strfreev (domain_names);
g_strfreev (domain_uris);
temp_proc_install (pika_procedure_get_plug_in (procedure));
@ -290,25 +308,28 @@ show_help_on_idle (gpointer user_data)
static PikaValueArray *
temp_proc_run (PikaProcedure *procedure,
const PikaValueArray *args,
PikaProcedureConfig *config,
gpointer user_data)
{
PikaHelpBrowser *browser = PIKA_HELP_BROWSER (user_data);
IdleClosure *closure;
const char *str;
gchar *str;
closure = g_new0 (IdleClosure, 1);
closure->browser = browser;
str = PIKA_VALUES_GET_STRING (args, 0);
g_object_get (config, "help-domain", &str, NULL);
closure->help_domain = g_strdup ((str && *str)? str : PIKA_HELP_DEFAULT_DOMAIN);
g_free (str);
str = PIKA_VALUES_GET_STRING (args, 1);
g_object_get (config, "help-locales", &str, NULL);
if (str && *str)
closure->help_locales = g_strdup (str);
g_free (str);
str = PIKA_VALUES_GET_STRING (args, 2);
g_object_get (config, "help-id", &str, NULL);
closure->help_id = g_strdup ((str && *str)? str : PIKA_HELP_DEFAULT_ID);
g_free (str);
/* Do this on idle, to make sure everything is initialized already */
g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,