Updated with upstream update
This commit is contained in:
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
|
Reference in New Issue
Block a user