[gedit/zbrown/deteplification-src: 209/633] Remove lockdown support




commit 52ce681d58dbac912563e774e29f82e03e42ec04
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Tue Mar 17 11:49:00 2020 +0100

    Remove lockdown support
    
    The lockdown support followed the org.gnome.desktop.lockdown GSettings.
    But my understanding is that very few GNOME apps implement it, gedit was
    a bit the exception.
    
    Removing the lockdown support permits to simplify the gedit code. It
    reduces the number of scenarios to test the app. With simpler code,
    there will be fewer bugs.
    
    For a GNOME desktop in kiosk mode, I'm not an expert but I think there
    are better ways of doing it than using the org.gnome.desktop.lockdown
    GSettings. Something for the whole session and all apps at once, without
    requiring a detailed implementation in each app.
    
    BTW the implementation was broken in _gedit_window_set_lockdown() with
    the GPOINTER_TO_BOOLEAN() in the callback.

 docs/reference/gedit-sections.txt       |   3 -
 gedit/Gedit-3.0.metadata                |   3 -
 gedit/gedit-app-private.h               |  13 ----
 gedit/gedit-app.c                       | 122 --------------------------------
 gedit/gedit-app.h                       |  14 ----
 gedit/gedit-close-confirmation-dialog.c | 117 ++++++++----------------------
 gedit/gedit-commands-file.c             |   1 +
 gedit/gedit-settings.c                  |  82 ---------------------
 gedit/gedit-settings.h                  |   6 +-
 gedit/gedit-tab.c                       |  19 +----
 gedit/gedit-window.c                    |  37 +---------
 11 files changed, 35 insertions(+), 382 deletions(-)
---
diff --git a/docs/reference/gedit-sections.txt b/docs/reference/gedit-sections.txt
index 8923bd4bd..3bba51075 100644
--- a/docs/reference/gedit-sections.txt
+++ b/docs/reference/gedit-sections.txt
@@ -2,14 +2,11 @@
 <FILE>gedit-app</FILE>
 <TITLE>GeditApp</TITLE>
 GeditApp
-GeditLockdownMask
-GEDIT_LOCKDOWN_ALL
 gedit_app_create_window
 gedit_app_set_window_title
 gedit_app_get_main_windows
 gedit_app_get_documents
 gedit_app_get_views
-gedit_app_get_lockdown
 gedit_app_process_window_event
 gedit_app_show_help
 <SUBSECTION Standard>
diff --git a/gedit/Gedit-3.0.metadata b/gedit/Gedit-3.0.metadata
index 08b00573c..5bb5defd9 100644
--- a/gedit/Gedit-3.0.metadata
+++ b/gedit/Gedit-3.0.metadata
@@ -1,6 +1,5 @@
 App cheader_filename="gedit/gedit-app.h"
 AppActivatable cheader_filename="gedit/gedit-app-activatable.h"
-LockdownMask cheader_filename="gedit/gedit-app.h"
 DebugSection cheader_filename="gedit/gedit-debug.h"
 Document cheader_filename="gedit/gedit-document.h"
 EncodingsComboBox cheader_filename="gedit/gedit-encodings-combo-box.h"
@@ -22,7 +21,5 @@ commands_* cheader_filename="gedit/gedit-commands.h"
 debug* cheader_filename="gedit/gedit-debug.h"
 utils_* cheader_filename="gedit/gedit-utils.h"
 
-LOCKDOWN_ALL cheader_filename="gedit/gedit-app.h"
-
 MessageBusForeach cheader_filename="gedit/gedit-message-bus.h"
 MessageCallback cheader_filename="gedit/gedit-message-bus.h"
diff --git a/gedit/gedit-app-private.h b/gedit/gedit-app-private.h
index 693fa5c43..1325191b9 100644
--- a/gedit/gedit-app-private.h
+++ b/gedit/gedit-app-private.h
@@ -28,19 +28,6 @@
 
 G_BEGIN_DECLS
 
-void            _gedit_app_set_lockdown                (GeditApp          *app,
-                                                        GeditLockdownMask  lockdown);
-
-void            _gedit_app_set_lockdown_bit            (GeditApp          *app,
-                                                        GeditLockdownMask  bit,
-                                                        gboolean           value);
-
-/* This one is a gedit-window function, but we declare it here to avoid
- * #include headaches since it needs the GeditLockdownMask declaration.
- */
-void            _gedit_window_set_lockdown             (GeditWindow       *window,
-                                                        GeditLockdownMask  lockdown);
-
 /* global print config */
 GtkPageSetup           *_gedit_app_get_default_page_setup      (GeditApp         *app);
 void                    _gedit_app_set_default_page_setup      (GeditApp         *app,
diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c
index 2570206f2..758c944f9 100644
--- a/gedit/gedit-app.c
+++ b/gedit/gedit-app.c
@@ -66,8 +66,6 @@ typedef struct
 
        GtkCssProvider     *theme_provider;
 
-       GeditLockdownMask  lockdown;
-
        GtkPageSetup      *page_setup;
        GtkPrintSettings  *print_settings;
 
@@ -93,15 +91,6 @@ typedef struct
        GApplicationCommandLine *command_line;
 } GeditAppPrivate;
 
-enum
-{
-       PROP_0,
-       PROP_LOCKDOWN,
-       LAST_PROP
-};
-
-static GParamSpec *properties[LAST_PROP];
-
 static const GOptionEntry options[] =
 {
        /* Version */
@@ -203,25 +192,6 @@ gedit_app_dispose (GObject *object)
        G_OBJECT_CLASS (gedit_app_parent_class)->dispose (object);
 }
 
-static void
-gedit_app_get_property (GObject    *object,
-                       guint       prop_id,
-                       GValue     *value,
-                       GParamSpec *pspec)
-{
-       GeditApp *app = GEDIT_APP (object);
-
-       switch (prop_id)
-       {
-               case PROP_LOCKDOWN:
-                       g_value_set_flags (value, gedit_app_get_lockdown (app));
-                       break;
-               default:
-                       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-                       break;
-       }
-}
-
 static gchar *
 gedit_app_help_link_id_impl (GeditApp    *app,
                              const gchar *name,
@@ -782,9 +752,6 @@ gedit_app_startup (GApplication *application)
        priv->ui_settings = g_settings_new ("org.gnome.gedit.preferences.ui");
        priv->window_settings = g_settings_new ("org.gnome.gedit.state.window");
 
-       /* initial lockdown state */
-       priv->lockdown = gedit_settings_get_lockdown (priv->settings);
-
        g_action_map_add_action_entries (G_ACTION_MAP (application),
                                         app_entries,
                                         G_N_ELEMENTS (app_entries),
@@ -1294,7 +1261,6 @@ gedit_app_class_init (GeditAppClass *klass)
        GApplicationClass *app_class = G_APPLICATION_CLASS (klass);
 
        object_class->dispose = gedit_app_dispose;
-       object_class->get_property = gedit_app_get_property;
 
        app_class->startup = gedit_app_startup;
        app_class->activate = gedit_app_activate;
@@ -1307,16 +1273,6 @@ gedit_app_class_init (GeditAppClass *klass)
        klass->help_link_id = gedit_app_help_link_id_impl;
        klass->set_window_title = gedit_app_set_window_title_impl;
        klass->create_window = gedit_app_create_window_impl;
-
-       properties[PROP_LOCKDOWN] =
-               g_param_spec_flags ("lockdown",
-                                   "Lockdown",
-                                   "The lockdown mask",
-                                   GEDIT_TYPE_LOCKDOWN_MASK,
-                                   0,
-                                   G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
-
-       g_object_class_install_properties (object_class, LAST_PROP, properties);
 }
 
 static void
@@ -1556,26 +1512,6 @@ gedit_app_get_views (GeditApp *app)
        return res;
 }
 
-/**
- * gedit_app_get_lockdown:
- * @app: a #GeditApp
- *
- * Gets the lockdown mask (see #GeditLockdownMask) for the application.
- * The lockdown mask determines which functions are locked down using
- * the GNOME-wise lockdown GConf keys.
- **/
-GeditLockdownMask
-gedit_app_get_lockdown (GeditApp *app)
-{
-       GeditAppPrivate *priv;
-
-       g_return_val_if_fail (GEDIT_IS_APP (app), GEDIT_LOCKDOWN_ALL);
-
-       priv = gedit_app_get_instance_private (app);
-
-       return priv->lockdown;
-}
-
 gboolean
 gedit_app_show_help (GeditApp    *app,
                      GtkWindow   *parent,
@@ -1664,64 +1600,6 @@ find_extension_point_section (GMenuModel  *model,
        return section;
 }
 
-static void
-app_lockdown_changed (GeditApp *app)
-{
-       GeditAppPrivate *priv;
-       GList *windows, *l;
-
-       priv = gedit_app_get_instance_private (app);
-
-       windows = gtk_application_get_windows (GTK_APPLICATION (app));
-       for (l = windows; l != NULL; l = g_list_next (l))
-       {
-               if (GEDIT_IS_WINDOW (l->data))
-               {
-                       _gedit_window_set_lockdown (GEDIT_WINDOW (l->data),
-                                                   priv->lockdown);
-               }
-       }
-
-       g_object_notify (G_OBJECT (app), "lockdown");
-}
-
-void
-_gedit_app_set_lockdown (GeditApp          *app,
-                        GeditLockdownMask  lockdown)
-{
-       GeditAppPrivate *priv;
-
-       g_return_if_fail (GEDIT_IS_APP (app));
-
-       priv = gedit_app_get_instance_private (app);
-
-       priv->lockdown = lockdown;
-       app_lockdown_changed (app);
-}
-
-void
-_gedit_app_set_lockdown_bit (GeditApp          *app,
-                            GeditLockdownMask  bit,
-                            gboolean           value)
-{
-       GeditAppPrivate *priv;
-
-       g_return_if_fail (GEDIT_IS_APP (app));
-
-       priv = gedit_app_get_instance_private (app);
-
-       if (value)
-       {
-               priv->lockdown |= bit;
-       }
-       else
-       {
-               priv->lockdown &= ~bit;
-       }
-
-       app_lockdown_changed (app);
-}
-
 /* Returns a copy */
 GtkPageSetup *
 _gedit_app_get_default_page_setup (GeditApp *app)
diff --git a/gedit/gedit-app.h b/gedit/gedit-app.h
index e00956553..3d7273e04 100644
--- a/gedit/gedit-app.h
+++ b/gedit/gedit-app.h
@@ -54,17 +54,6 @@ struct _GeditAppClass
                                                 GdkEvent    *event);
 };
 
-typedef enum
-{
-       GEDIT_LOCKDOWN_COMMAND_LINE     = 1 << 0,
-       GEDIT_LOCKDOWN_PRINTING         = 1 << 1,
-       GEDIT_LOCKDOWN_PRINT_SETUP      = 1 << 2,
-       GEDIT_LOCKDOWN_SAVE_TO_DISK     = 1 << 3
-} GeditLockdownMask;
-
-/* We need to define this here to avoid problems with bindings and gsettings */
-#define GEDIT_LOCKDOWN_ALL 0xF
-
 GeditWindow    *gedit_app_create_window                (GeditApp    *app,
                                                         GdkScreen   *screen);
 
@@ -74,9 +63,6 @@ GList         *gedit_app_get_documents                (GeditApp    *app);
 
 GList          *gedit_app_get_views                    (GeditApp    *app);
 
-/* Lockdown state */
-GeditLockdownMask gedit_app_get_lockdown               (GeditApp    *app);
-
 gboolean        gedit_app_show_help                    (GeditApp    *app,
                                                          GtkWindow   *parent,
                                                          const gchar *name,
diff --git a/gedit/gedit-close-confirmation-dialog.c b/gedit/gedit-close-confirmation-dialog.c
index 257f9ddb8..cbe4d89fa 100644
--- a/gedit/gedit-close-confirmation-dialog.c
+++ b/gedit/gedit-close-confirmation-dialog.c
@@ -51,7 +51,6 @@ struct _GeditCloseConfirmationDialog
        GList       *unsaved_documents;
        GList       *selected_documents;
        GtkWidget   *list_box;
-       gboolean     disable_save_to_disk;
 };
 
 enum
@@ -132,12 +131,6 @@ response_cb (GeditCloseConfirmationDialog *dlg,
 static void
 gedit_close_confirmation_dialog_init (GeditCloseConfirmationDialog *dlg)
 {
-       GeditLockdownMask lockdown;
-
-       lockdown = gedit_app_get_lockdown (GEDIT_APP (g_application_get_default ()));
-
-       dlg->disable_save_to_disk = (lockdown & GEDIT_LOCKDOWN_SAVE_TO_DISK) != 0;
-
        gtk_window_set_title (GTK_WINDOW (dlg), "");
        gtk_window_set_modal (GTK_WINDOW (dlg), TRUE);
        gtk_window_set_destroy_with_parent (GTK_WINDOW (dlg), TRUE);
@@ -272,6 +265,7 @@ static void
 add_buttons (GeditCloseConfirmationDialog *dlg)
 {
         GtkWidget *close_button;
+       gboolean save_as = FALSE;
 
         close_button = gtk_dialog_add_button (GTK_DIALOG (dlg),
                                               _("Close _without Saving"),
@@ -282,36 +276,26 @@ add_buttons (GeditCloseConfirmationDialog *dlg)
 
        gtk_dialog_add_button (GTK_DIALOG (dlg), _("_Cancel"), GTK_RESPONSE_CANCEL);
 
-       if (dlg->disable_save_to_disk)
-       {
-               gtk_dialog_set_default_response (GTK_DIALOG (dlg),
-                                                GTK_RESPONSE_NO);
-       }
-       else
+       if (GET_MODE (dlg) == SINGLE_DOC_MODE)
        {
-               gboolean save_as = FALSE;
-
-               if (GET_MODE (dlg) == SINGLE_DOC_MODE)
-               {
-                       GeditDocument *doc;
-                       GtkSourceFile *file;
+               GeditDocument *doc;
+               GtkSourceFile *file;
 
-                       doc = GEDIT_DOCUMENT (dlg->unsaved_documents->data);
-                       file = gedit_document_get_file (doc);
+               doc = GEDIT_DOCUMENT (dlg->unsaved_documents->data);
+               file = gedit_document_get_file (doc);
 
-                       if (gtk_source_file_is_readonly (file) ||
-                           gedit_document_is_untitled (doc))
-                       {
-                               save_as = TRUE;
-                       }
+               if (gtk_source_file_is_readonly (file) ||
+                   gedit_document_is_untitled (doc))
+               {
+                       save_as = TRUE;
                }
-
-               gtk_dialog_add_button (GTK_DIALOG (dlg),
-                                      save_as ? _("_Save As…") : _("_Save"),
-                                      GTK_RESPONSE_YES);
-               gtk_dialog_set_default_response (GTK_DIALOG (dlg),
-                                                GTK_RESPONSE_YES);
        }
+
+       gtk_dialog_add_button (GTK_DIALOG (dlg),
+                              save_as ? _("_Save As…") : _("_Save"),
+                              GTK_RESPONSE_YES);
+       gtk_dialog_set_default_response (GTK_DIALOG (dlg),
+                                        GTK_RESPONSE_YES);
 }
 
 static gchar *
@@ -413,16 +397,8 @@ build_single_doc_dialog (GeditCloseConfirmationDialog *dlg)
        /* Primary message */
        doc_name = gedit_document_get_short_name_for_display (doc);
 
-       if (dlg->disable_save_to_disk)
-       {
-               str = g_markup_printf_escaped (_("Changes to document “%s” will be permanently lost."),
-                                              doc_name);
-       }
-       else
-       {
-               str = g_markup_printf_escaped (_("Save changes to document “%s” before closing?"),
-                                              doc_name);
-       }
+       str = g_markup_printf_escaped (_("Save changes to document “%s” before closing?"),
+                                      doc_name);
 
        g_free (doc_name);
 
@@ -433,15 +409,7 @@ build_single_doc_dialog (GeditCloseConfirmationDialog *dlg)
        g_free (markup_str);
 
        /* Secondary message */
-       if (dlg->disable_save_to_disk)
-       {
-               str = g_strdup (_("Saving has been disabled by the system administrator."));
-       }
-       else
-       {
-               str = get_text_secondary_label (doc);
-       }
-
+       str = get_text_secondary_label (doc);
        gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dlg), "%s", str);
        g_free (str);
 }
@@ -498,24 +466,13 @@ build_multiple_docs_dialog (GeditCloseConfirmationDialog *dlg)
        gtk_window_set_resizable (GTK_WINDOW (dlg), TRUE);
 
        /* Primary message */
-       if (dlg->disable_save_to_disk)
-       {
-               str = g_strdup_printf (
-                               ngettext ("Changes to %d document will be permanently lost.",
-                                         "Changes to %d documents will be permanently lost.",
-                                         g_list_length (dlg->unsaved_documents)),
-                               g_list_length (dlg->unsaved_documents));
-       }
-       else
-       {
-               str = g_strdup_printf (
-                               ngettext ("There is %d document with unsaved changes. "
-                                         "Save changes before closing?",
-                                         "There are %d documents with unsaved changes. "
-                                         "Save changes before closing?",
-                                         g_list_length (dlg->unsaved_documents)),
-                               g_list_length (dlg->unsaved_documents));
-       }
+       str = g_strdup_printf (
+                       ngettext ("There is %d document with unsaved changes. "
+                                 "Save changes before closing?",
+                                 "There are %d documents with unsaved changes. "
+                                 "Save changes before closing?",
+                                 g_list_length (dlg->unsaved_documents)),
+                       g_list_length (dlg->unsaved_documents));
 
        markup_str = g_strconcat ("<span weight=\"bold\" size=\"larger\">", str, "</span>", NULL);
        g_free (str);
@@ -533,15 +490,7 @@ build_multiple_docs_dialog (GeditCloseConfirmationDialog *dlg)
        gtk_widget_set_margin_bottom (vbox, 12);
        gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
 
-       if (dlg->disable_save_to_disk)
-       {
-               select_label = gtk_label_new_with_mnemonic (_("Docum_ents with unsaved changes:"));
-       }
-       else
-       {
-               select_label = gtk_label_new_with_mnemonic (_("S_elect the documents you want to save:"));
-       }
-
+       select_label = gtk_label_new_with_mnemonic (_("S_elect the documents you want to save:"));
        gtk_box_pack_start (GTK_BOX (vbox), select_label, FALSE, FALSE, 0);
        gtk_label_set_line_wrap (GTK_LABEL (select_label), TRUE);
        gtk_label_set_max_width_chars (GTK_LABEL (select_label), 72);
@@ -557,16 +506,8 @@ build_multiple_docs_dialog (GeditCloseConfirmationDialog *dlg)
        gtk_container_add (GTK_CONTAINER (scrolledwindow), dlg->list_box);
 
        /* Secondary label */
-       if (dlg->disable_save_to_disk)
-       {
-               secondary_label = gtk_label_new (_("Saving has been disabled by the system administrator."));
-       }
-       else
-       {
-               secondary_label = gtk_label_new (_("If you don’t save, "
-                                                  "all your changes will be permanently lost."));
-       }
-
+       secondary_label = gtk_label_new (_("If you don’t save, "
+                                          "all your changes will be permanently lost."));
        gtk_box_pack_start (GTK_BOX (vbox), secondary_label, FALSE, FALSE, 0);
        gtk_label_set_line_wrap (GTK_LABEL (secondary_label), TRUE);
        gtk_widget_set_halign (secondary_label, GTK_ALIGN_CENTER);
diff --git a/gedit/gedit-commands-file.c b/gedit/gedit-commands-file.c
index fff5ac354..785e6b57e 100644
--- a/gedit/gedit-commands-file.c
+++ b/gedit/gedit-commands-file.c
@@ -30,6 +30,7 @@
 #include <gio/gio.h>
 #include <gtk/gtk.h>
 
+#include "gedit-app.h"
 #include "gedit-debug.h"
 #include "gedit-document.h"
 #include "gedit-document-private.h"
diff --git a/gedit/gedit-settings.c b/gedit/gedit-settings.c
index 016edc791..aea234984 100644
--- a/gedit/gedit-settings.c
+++ b/gedit/gedit-settings.c
@@ -33,18 +33,12 @@
 #include "gedit-view.h"
 #include "gedit-window.h"
 
-#define GEDIT_SETTINGS_LOCKDOWN_COMMAND_LINE "disable-command-line"
-#define GEDIT_SETTINGS_LOCKDOWN_PRINTING "disable-printing"
-#define GEDIT_SETTINGS_LOCKDOWN_PRINT_SETUP "disable-print-setup"
-#define GEDIT_SETTINGS_LOCKDOWN_SAVE_TO_DISK "disable-save-to-disk"
-
 #define GEDIT_SETTINGS_SYSTEM_FONT "monospace-font-name"
 
 struct _GeditSettings
 {
        GObject parent_instance;
 
-       GSettings *lockdown;
        GSettings *interface;
        GSettings *editor;
        GSettings *ui;
@@ -69,7 +63,6 @@ gedit_settings_dispose (GObject *object)
 {
        GeditSettings *gs = GEDIT_SETTINGS (object);
 
-       g_clear_object (&gs->lockdown);
        g_clear_object (&gs->interface);
        g_clear_object (&gs->editor);
        g_clear_object (&gs->ui);
@@ -77,43 +70,6 @@ gedit_settings_dispose (GObject *object)
        G_OBJECT_CLASS (gedit_settings_parent_class)->dispose (object);
 }
 
-static void
-on_lockdown_changed (GSettings   *settings,
-                    const gchar *key,
-                    gpointer     useless)
-{
-       gboolean locked;
-       GeditApp *app;
-
-       locked = g_settings_get_boolean (settings, key);
-       app = GEDIT_APP (g_application_get_default ());
-
-       if (strcmp (key, GEDIT_SETTINGS_LOCKDOWN_COMMAND_LINE) == 0)
-       {
-               _gedit_app_set_lockdown_bit (app,
-                                            GEDIT_LOCKDOWN_COMMAND_LINE,
-                                            locked);
-       }
-       else if (strcmp (key, GEDIT_SETTINGS_LOCKDOWN_PRINTING) == 0)
-       {
-               _gedit_app_set_lockdown_bit (app,
-                                            GEDIT_LOCKDOWN_PRINTING,
-                                            locked);
-       }
-       else if (strcmp (key, GEDIT_SETTINGS_LOCKDOWN_PRINT_SETUP) == 0)
-       {
-               _gedit_app_set_lockdown_bit (app,
-                                            GEDIT_LOCKDOWN_PRINT_SETUP,
-                                            locked);
-       }
-       else if (strcmp (key, GEDIT_SETTINGS_LOCKDOWN_SAVE_TO_DISK) == 0)
-       {
-               _gedit_app_set_lockdown_bit (app,
-                                            GEDIT_LOCKDOWN_SAVE_TO_DISK,
-                                            locked);
-       }
-}
-
 static void
 set_font (GeditSettings *gs,
          const gchar *font)
@@ -336,14 +292,6 @@ gedit_settings_init (GeditSettings *gs)
        gs->editor = g_settings_new ("org.gnome.gedit.preferences.editor");
        gs->ui = g_settings_new ("org.gnome.gedit.preferences.ui");
 
-       /* Load settings */
-       gs->lockdown = g_settings_new ("org.gnome.desktop.lockdown");
-
-       g_signal_connect (gs->lockdown,
-                         "changed",
-                         G_CALLBACK (on_lockdown_changed),
-                         NULL);
-
        gs->interface = g_settings_new ("org.gnome.desktop.interface");
 
        g_signal_connect (gs->interface,
@@ -393,36 +341,6 @@ gedit_settings_new ()
        return g_object_new (GEDIT_TYPE_SETTINGS, NULL);
 }
 
-GeditLockdownMask
-gedit_settings_get_lockdown (GeditSettings *gs)
-{
-       guint lockdown = 0;
-       gboolean command_line, printing, print_setup, save_to_disk;
-
-       command_line = g_settings_get_boolean (gs->lockdown,
-                                              GEDIT_SETTINGS_LOCKDOWN_COMMAND_LINE);
-       printing = g_settings_get_boolean (gs->lockdown,
-                                          GEDIT_SETTINGS_LOCKDOWN_PRINTING);
-       print_setup = g_settings_get_boolean (gs->lockdown,
-                                             GEDIT_SETTINGS_LOCKDOWN_PRINT_SETUP);
-       save_to_disk = g_settings_get_boolean (gs->lockdown,
-                                              GEDIT_SETTINGS_LOCKDOWN_SAVE_TO_DISK);
-
-       if (command_line)
-               lockdown |= GEDIT_LOCKDOWN_COMMAND_LINE;
-
-       if (printing)
-               lockdown |= GEDIT_LOCKDOWN_PRINTING;
-
-       if (print_setup)
-               lockdown |= GEDIT_LOCKDOWN_PRINT_SETUP;
-
-       if (save_to_disk)
-               lockdown |= GEDIT_LOCKDOWN_SAVE_TO_DISK;
-
-       return lockdown;
-}
-
 gchar *
 gedit_settings_get_system_font (GeditSettings *gs)
 {
diff --git a/gedit/gedit-settings.h b/gedit/gedit-settings.h
index aa2dfce29..e8c9ac1e8 100644
--- a/gedit/gedit-settings.h
+++ b/gedit/gedit-settings.h
@@ -24,9 +24,7 @@
 #ifndef GEDIT_SETTINGS_H
 #define GEDIT_SETTINGS_H
 
-#include <glib-object.h>
-#include <glib.h>
-#include "gedit-app.h"
+#include <gio/gio.h>
 
 G_BEGIN_DECLS
 
@@ -36,8 +34,6 @@ G_DECLARE_FINAL_TYPE (GeditSettings, gedit_settings, GEDIT, SETTINGS, GObject)
 
 GeditSettings          *gedit_settings_new                             (void);
 
-GeditLockdownMask       gedit_settings_get_lockdown                    (GeditSettings *gs);
-
 gchar                  *gedit_settings_get_system_font                 (GeditSettings *gs);
 
 GSList                 *gedit_settings_get_candidate_encodings         (gboolean      *default_candidates);
diff --git a/gedit/gedit-tab.c b/gedit/gedit-tab.c
index fe8908d66..76fb615ba 100644
--- a/gedit/gedit-tab.c
+++ b/gedit/gedit-tab.c
@@ -1302,12 +1302,10 @@ on_drop_uris (GeditView  *view,
 static void
 gedit_tab_init (GeditTab *tab)
 {
-       GeditLockdownMask lockdown;
        gboolean auto_save;
        gint auto_save_interval;
        GeditDocument *doc;
        GeditView *view;
-       GeditApp *app;
        GtkSourceFile *file;
 
        tab->state = GEDIT_TAB_STATE_NORMAL;
@@ -1326,13 +1324,7 @@ gedit_tab_init (GeditTab *tab)
                                            GEDIT_SETTINGS_AUTO_SAVE);
        g_settings_get (tab->editor_settings, GEDIT_SETTINGS_AUTO_SAVE_INTERVAL,
                        "u", &auto_save_interval);
-
-       app = GEDIT_APP (g_application_get_default ());
-
-       lockdown = gedit_app_get_lockdown (app);
-       tab->auto_save = auto_save && !(lockdown & GEDIT_LOCKDOWN_SAVE_TO_DISK);
-       tab->auto_save = (tab->auto_save != FALSE);
-
+       tab->auto_save = auto_save != FALSE;
        tab->auto_save_interval = auto_save_interval;
 
        /* Create the frame */
@@ -2988,21 +2980,12 @@ void
 gedit_tab_set_auto_save_enabled        (GeditTab *tab,
                                 gboolean  enable)
 {
-       GeditLockdownMask lockdown;
-
        gedit_debug (DEBUG_TAB);
 
        g_return_if_fail (GEDIT_IS_TAB (tab));
 
        enable = enable != FALSE;
 
-       /* Force disabling when lockdown is active */
-       lockdown = gedit_app_get_lockdown (GEDIT_APP (g_application_get_default ()));
-       if (lockdown & GEDIT_LOCKDOWN_SAVE_TO_DISK)
-       {
-               enable = FALSE;
-       }
-
        if (tab->auto_save != enable)
        {
                tab->auto_save = enable;
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 088803a24..67dd011d1 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -595,7 +595,6 @@ update_actions_sensitivity (GeditWindow *window)
        gboolean editable = FALSE;
        gboolean empty_search = FALSE;
        GtkClipboard *clipboard;
-       GeditLockdownMask lockdown;
        gboolean enable_syntax_highlighting;
 
        gedit_debug (DEBUG_WINDOW);
@@ -616,24 +615,20 @@ update_actions_sensitivity (GeditWindow *window)
                empty_search = _gedit_document_get_empty_search (doc);
        }
 
-       lockdown = gedit_app_get_lockdown (GEDIT_APP (g_application_get_default ()));
-
        clipboard = gtk_widget_get_clipboard (GTK_WIDGET (window), GDK_SELECTION_CLIPBOARD);
 
        action = g_action_map_lookup_action (G_ACTION_MAP (window), "save");
        g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
                                     ((state == GEDIT_TAB_STATE_NORMAL) ||
                                      (state == GEDIT_TAB_STATE_EXTERNALLY_MODIFIED_NOTIFICATION)) &&
-                                    (file != NULL) && !gtk_source_file_is_readonly (file) &&
-                                    !(lockdown & GEDIT_LOCKDOWN_SAVE_TO_DISK));
+                                    (file != NULL) && !gtk_source_file_is_readonly (file));
 
        action = g_action_map_lookup_action (G_ACTION_MAP (window), "save-as");
        g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
                                     ((state == GEDIT_TAB_STATE_NORMAL) ||
                                      (state == GEDIT_TAB_STATE_SAVING_ERROR) ||
                                      (state == GEDIT_TAB_STATE_EXTERNALLY_MODIFIED_NOTIFICATION)) &&
-                                    (doc != NULL) &&
-                                    !(lockdown & GEDIT_LOCKDOWN_SAVE_TO_DISK));
+                                    (doc != NULL));
 
        action = g_action_map_lookup_action (G_ACTION_MAP (window), "revert");
        g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
@@ -648,8 +643,7 @@ update_actions_sensitivity (GeditWindow *window)
        g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
                                     ((state == GEDIT_TAB_STATE_NORMAL) ||
                                      (state == GEDIT_TAB_STATE_SHOWING_PRINT_PREVIEW)) &&
-                                    (doc != NULL) &&
-                                    !(lockdown & GEDIT_LOCKDOWN_PRINTING));
+                                    (doc != NULL));
 
        action = g_action_map_lookup_action (G_ACTION_MAP (window), "close");
        g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
@@ -787,7 +781,6 @@ update_actions_sensitivity (GeditWindow *window)
        action = g_action_map_lookup_action (G_ACTION_MAP (window), "save-all");
        g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
                                     !(window->priv->state & GEDIT_WINDOW_STATE_PRINTING) &&
-                                    !(lockdown & GEDIT_LOCKDOWN_SAVE_TO_DISK) &&
                                     num_tabs > 0);
 
        action = g_action_map_lookup_action (G_ACTION_MAP (window), "close-all");
@@ -1460,30 +1453,6 @@ tab_switched (GeditMultiNotebook *mnb,
                       new_tab);
 }
 
-static void
-set_auto_save_enabled (GeditTab *tab,
-                      gpointer  autosave)
-{
-       gedit_tab_set_auto_save_enabled (tab, GPOINTER_TO_BOOLEAN (autosave));
-}
-
-void
-_gedit_window_set_lockdown (GeditWindow       *window,
-                           GeditLockdownMask  lockdown)
-{
-       gboolean autosave;
-
-       /* start/stop autosave in each existing tab */
-       autosave = g_settings_get_boolean (window->priv->editor_settings,
-                                          GEDIT_SETTINGS_AUTO_SAVE);
-
-       gedit_multi_notebook_foreach_tab (window->priv->multi_notebook,
-                                         (GtkCallback)set_auto_save_enabled,
-                                         &autosave);
-
-       update_actions_sensitivity (window);
-}
-
 static void
 analyze_tab_state (GeditTab    *tab,
                   GeditWindow *window)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]