inspector: Add a way to disable the warning dialog

This commit is contained in:
Matthias Clasen 2014-10-09 23:00:22 -04:00
parent 4e974edde8
commit 42280f6c4e

View File

@ -11667,10 +11667,18 @@ _gtk_window_get_popover_position (GtkWindow *window,
static GtkWidget *inspector_window = NULL;
static void set_warn_again (gboolean warn);
static void
warn_response (GtkDialog *dialog,
gint response)
{
GtkWidget *check;
gboolean remember;
check = g_object_get_data (G_OBJECT (dialog), "check");
remember = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check));
gtk_widget_destroy (GTK_WIDGET (dialog));
g_object_set_data (G_OBJECT (inspector_window), "warning_dialog", NULL);
if (response == GTK_RESPONSE_NO)
@ -11678,6 +11686,10 @@ warn_response (GtkDialog *dialog,
gtk_widget_destroy (inspector_window);
inspector_window = NULL;
}
else
{
set_warn_again (!remember);
}
}
static void
@ -11686,6 +11698,8 @@ gtk_window_set_debugging (gboolean enable,
gboolean warn)
{
GtkWidget *dialog = NULL;
GtkWidget *area;
GtkWidget *check;
if (inspector_window == NULL)
{
@ -11705,6 +11719,13 @@ gtk_window_set_debugging (gboolean enable,
_("GTK+ Inspector is an interactive debugger that lets you explore and "
"modify the internals of any GTK+ application. Using it may cause the "
"application to break or crash."));
area = gtk_message_dialog_get_message_area (GTK_MESSAGE_DIALOG (dialog));
check = gtk_check_button_new_with_label (_("Don't show this message again"));
gtk_widget_set_margin_start (check, 10);
gtk_widget_show (check);
gtk_container_add (GTK_CONTAINER (area), check);
g_object_set_data (G_OBJECT (dialog), "check", check);
gtk_dialog_add_button (GTK_DIALOG (dialog), _("_Cancel"), GTK_RESPONSE_NO);
gtk_dialog_add_button (GTK_DIALOG (dialog), _("_OK"), GTK_RESPONSE_YES);
g_signal_connect (dialog, "response", G_CALLBACK (warn_response), NULL);
@ -11773,6 +11794,25 @@ inspector_keybinding_enabled (gboolean *warn)
return enabled;
}
static void
set_warn_again (gboolean warn)
{
GSettingsSchema *schema;
GSettings *settings;
schema = g_settings_schema_source_lookup (g_settings_schema_source_get_default (),
"org.gtk.Settings.Debug",
TRUE);
if (schema)
{
settings = g_settings_new_full (schema, NULL, NULL);
g_settings_set_boolean (settings, "inspector-warning", warn);
g_object_unref (settings);
g_settings_schema_unref (schema);
}
}
static gboolean
gtk_window_enable_debugging (GtkWindow *window,
gboolean toggle)