Add action groups to support lockdown, starting with printing.

Other categories to follow.  Editors still need lockdown support.

svn path=/branches/kill-bonobo/; revision=37136
This commit is contained in:
Matthew Barnes
2009-01-27 03:50:19 +00:00
parent e0f414941d
commit 98d262b594
22 changed files with 453 additions and 197 deletions

View File

@ -72,6 +72,14 @@ enum {
LAST_SIGNAL
};
enum {
DEBUG_KEY_SETTINGS = 1 << 0
};
static GDebugKey debug_keys[] = {
{ "settings", DEBUG_KEY_SETTINGS }
};
EShell *default_shell = NULL;
static gpointer parent_class;
static guint signals[LAST_SIGNAL];
@ -80,6 +88,19 @@ static guint signals[LAST_SIGNAL];
void e_shell_dbus_initialize (EShell *shell);
#endif
static void
shell_parse_debug_string (EShell *shell)
{
guint flags;
flags = g_parse_debug_string (
g_getenv ("EVOLUTION_DEBUG"),
debug_keys, G_N_ELEMENTS (debug_keys));
if (flags & DEBUG_KEY_SETTINGS)
e_shell_settings_enable_debug (shell->priv->settings);
}
static gboolean
shell_window_delete_event_cb (EShell *shell,
EShellWindow *shell_window)
@ -663,6 +684,40 @@ shell_class_init (EShellClass *class)
0, NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
/* Install some desktop-wide settings. */
e_shell_settings_install_property (
g_param_spec_boolean (
"disable-command-line",
NULL,
NULL,
FALSE,
G_PARAM_READWRITE));
e_shell_settings_install_property (
g_param_spec_boolean (
"disable-printing",
NULL,
NULL,
FALSE,
G_PARAM_READWRITE));
e_shell_settings_install_property (
g_param_spec_boolean (
"disable-print-setup",
NULL,
NULL,
FALSE,
G_PARAM_READWRITE));
e_shell_settings_install_property (
g_param_spec_boolean (
"disable-save-to-disk",
NULL,
NULL,
FALSE,
G_PARAM_READWRITE));
}
static void
@ -687,9 +742,27 @@ shell_init (EShell *shell)
e_file_lock_create ();
shell_parse_debug_string (shell);
g_signal_connect (
shell, "notify::online-mode",
G_CALLBACK (shell_notify_online_mode_cb), NULL);
e_shell_settings_bind_to_gconf (
shell->priv->settings, "disable-command-line",
"/desktop/gnome/lockdown/disable_command_line");
e_shell_settings_bind_to_gconf (
shell->priv->settings, "disable-printing",
"/desktop/gnome/lockdown/disable_printing");
e_shell_settings_bind_to_gconf (
shell->priv->settings, "disable-print-setup",
"/desktop/gnome/lockdown/disable_print_setup");
e_shell_settings_bind_to_gconf (
shell->priv->settings, "disable-save-to-disk",
"/desktop/gnome/lockdown/disable_save_to_disk");
}
GType