[gedit/wip/gedit-document-stuff: 2/2] Don't use GeditDocument:read-only (deprecated)



commit 454fcb064e4618fe4853e96d83114cb613cb5a22
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Thu Jun 11 20:50:23 2015 +0200

    Don't use GeditDocument:read-only (deprecated)

 gedit/gedit-close-confirmation-dialog.c |    4 ++-
 gedit/gedit-commands-file.c             |   12 ++++++--
 gedit/gedit-documents-panel.c           |    5 +++-
 gedit/gedit-tab.c                       |   24 ++++++-----------
 gedit/gedit-view.c                      |   42 ++++++++++++++++--------------
 gedit/gedit-window.c                    |   22 ++++++++++------
 6 files changed, 60 insertions(+), 49 deletions(-)
---
diff --git a/gedit/gedit-close-confirmation-dialog.c b/gedit/gedit-close-confirmation-dialog.c
index dff8356..f05735f 100644
--- a/gedit/gedit-close-confirmation-dialog.c
+++ b/gedit/gedit-close-confirmation-dialog.c
@@ -330,10 +330,12 @@ add_buttons (GeditCloseConfirmationDialog *dlg)
                if (GET_MODE (dlg) == SINGLE_DOC_MODE)
                {
                        GeditDocument *doc;
+                       GtkSourceFile *file;
 
                        doc = GEDIT_DOCUMENT (dlg->unsaved_documents->data);
+                       file = gedit_document_get_file (doc);
 
-                       if (gedit_document_get_readonly (doc) ||
+                       if (gtk_source_file_is_readonly (file) ||
                            gedit_document_is_untitled (doc))
                        {
                                save_as = TRUE;
diff --git a/gedit/gedit-commands-file.c b/gedit/gedit-commands-file.c
index 51477f6..4deca8d 100644
--- a/gedit/gedit-commands-file.c
+++ b/gedit/gedit-commands-file.c
@@ -1003,6 +1003,7 @@ gedit_commands_save_document_async (GeditDocument       *document,
 {
        GTask *task;
        GeditTab *tab;
+       GtkSourceFile *file;
        gchar *uri_for_display;
 
        gedit_debug (DEBUG_COMMANDS);
@@ -1014,9 +1015,10 @@ gedit_commands_save_document_async (GeditDocument       *document,
        task = g_task_new (document, cancellable, callback, user_data);
 
        tab = gedit_tab_get_from_document (document);
+       file = gedit_document_get_file (document);
 
        if (gedit_document_is_untitled (document) ||
-           gedit_document_get_readonly (document))
+           gtk_source_file_is_readonly (file))
        {
                gedit_debug_message (DEBUG_COMMANDS, "Untitled or Readonly");
 
@@ -1308,10 +1310,12 @@ save_documents_list (GeditWindow *window,
                {
                        if (_gedit_document_needs_saving (doc))
                        {
+                               GtkSourceFile *file = gedit_document_get_file (doc);
+
                                /* FIXME: manage the case of local readonly files owned by the
                                   user is running gedit - Paolo (Dec. 8, 2005) */
                                if (gedit_document_is_untitled (doc) ||
-                                   gedit_document_get_readonly (doc))
+                                   gtk_source_file_is_readonly (file))
                                {
                                        if (data == NULL)
                                        {
@@ -1748,13 +1752,15 @@ save_and_close_documents (GList         *docs,
                            state != GEDIT_TAB_STATE_LOADING_ERROR &&
                            state != GEDIT_TAB_STATE_REVERTING) /* FIXME: is this the right behavior with 
REVERTING ?*/
                        {
+                               GtkSourceFile *file = gedit_document_get_file (doc);
+
                                /* The document must be saved before closing */
                                g_return_if_fail (_gedit_document_needs_saving (doc));
 
                                /* FIXME: manage the case of local readonly files owned by the
                                 * user is running gedit - Paolo (Dec. 8, 2005) */
                                if (gedit_document_is_untitled (doc) ||
-                                   gedit_document_get_readonly (doc))
+                                   gtk_source_file_is_readonly (file))
                                {
                                        if (data == NULL)
                                        {
diff --git a/gedit/gedit-documents-panel.c b/gedit/gedit-documents-panel.c
index 847c99c..77fc98f 100644
--- a/gedit/gedit-documents-panel.c
+++ b/gedit/gedit-documents-panel.c
@@ -495,6 +495,7 @@ document_row_sync_tab_name_and_icon (GeditTab   *tab,
 {
        GeditDocumentsDocumentRow *document_row = GEDIT_DOCUMENTS_DOCUMENT_ROW (row);
        GeditDocument *doc;
+       GtkSourceFile *file;
        gchar *name;
        GdkPixbuf *pixbuf;
 
@@ -517,8 +518,10 @@ document_row_sync_tab_name_and_icon (GeditTab   *tab,
 
        g_free (name);
 
+       file = gedit_document_get_file (doc);
+
        /* The status has as separate label to prevent ellipsizing */
-       if (!gedit_document_get_readonly (doc))
+       if (!gtk_source_file_is_readonly (file))
        {
                gtk_widget_hide (GTK_WIDGET (document_row->status_label));
        }
diff --git a/gedit/gedit-tab.c b/gedit/gedit-tab.c
index 34c7614..d31a592 100644
--- a/gedit/gedit-tab.c
+++ b/gedit/gedit-tab.c
@@ -190,15 +190,17 @@ static void
 update_auto_save_timeout (GeditTab *tab)
 {
        GeditDocument *doc;
+       GtkSourceFile *file;
 
        gedit_debug (DEBUG_TAB);
 
        doc = gedit_tab_get_document (tab);
+       file = gedit_document_get_file (doc);
 
        if (tab->state == GEDIT_TAB_STATE_NORMAL &&
            tab->auto_save &&
            !gedit_document_is_untitled (doc) &&
-           !gedit_document_get_readonly (doc))
+           !gtk_source_file_is_readonly (file))
        {
                install_auto_save_timeout (tab);
        }
@@ -1520,17 +1522,6 @@ _gedit_tab_get_name (GeditTab *tab)
        }
        else
        {
- #if 0
-               if (gedit_document_get_readonly (doc))
-               {
-                       tab_name = g_strdup_printf ("%s [%s]", docname,
-                                               /*Read only*/ _("RO"));
-               }
-               else
-               {
-                       tab_name = g_strdup_printf ("%s", docname);
-               }
-#endif
                tab_name = g_strdup (docname);
        }
 
@@ -1765,6 +1756,7 @@ load_cb (GtkSourceFileLoader *loader,
         GeditTab            *tab)
 {
        GeditDocument *doc = gedit_tab_get_document (tab);
+       GtkSourceFile *file = gedit_document_get_file (doc);
        GFile *location = gtk_source_file_loader_get_location (loader);
        gboolean create_named_new_doc;
        GError *error = NULL;
@@ -1933,7 +1925,7 @@ load_cb (GtkSourceFileLoader *loader,
        /* If the document is readonly we don't care how many times the document
         * is opened.
         */
-       if (!gedit_document_get_readonly (doc))
+       if (!gtk_source_file_is_readonly (file))
        {
                GList *all_documents;
                GList *l;
@@ -2517,8 +2509,10 @@ gedit_tab_auto_save (GeditTab *tab)
        gedit_debug (DEBUG_TAB);
 
        doc = gedit_tab_get_document (tab);
+       file = gedit_document_get_file (doc);
+
        g_return_val_if_fail (!gedit_document_is_untitled (doc), G_SOURCE_REMOVE);
-       g_return_val_if_fail (!gedit_document_get_readonly (doc), G_SOURCE_REMOVE);
+       g_return_val_if_fail (!gtk_source_file_is_readonly (file), G_SOURCE_REMOVE);
 
        if (!gtk_text_buffer_get_modified (GTK_TEXT_BUFFER (doc)))
        {
@@ -2558,8 +2552,6 @@ gedit_tab_auto_save (GeditTab *tab)
                              data,
                              (GDestroyNotify) saver_data_free);
 
-       file = gedit_document_get_file (doc);
-
        data->saver = gtk_source_file_saver_new (GTK_SOURCE_BUFFER (doc), file);
 
        save_flags = get_initial_save_flags (tab, TRUE);
diff --git a/gedit/gedit-view.c b/gedit/gedit-view.c
index 82e7d9c..d2eccb6 100644
--- a/gedit/gedit-view.c
+++ b/gedit/gedit-view.c
@@ -70,14 +70,14 @@ enum
 static guint view_signals [LAST_SIGNAL] = { 0 };
 
 static void
-document_read_only_notify_handler (GeditDocument *document,
-                                  GParamSpec    *pspec,
-                                  GeditView     *view)
+file_read_only_notify_handler (GtkSourceFile *file,
+                              GParamSpec    *pspec,
+                              GeditView     *view)
 {
        gedit_debug (DEBUG_VIEW);
 
        gtk_text_view_set_editable (GTK_TEXT_VIEW (view),
-                                   !gedit_document_get_readonly (document));
+                                   !gtk_source_file_is_readonly (file));
 }
 
 static void
@@ -85,8 +85,12 @@ current_buffer_removed (GeditView *view)
 {
        if (view->priv->current_buffer != NULL)
        {
-               g_signal_handlers_disconnect_by_func (view->priv->current_buffer,
-                                                     document_read_only_notify_handler,
+               GtkSourceFile *file;
+
+               file = gedit_document_get_file (GEDIT_DOCUMENT (view->priv->current_buffer));
+
+               g_signal_handlers_disconnect_by_func (file,
+                                                     file_read_only_notify_handler,
                                                      view);
 
                g_object_unref (view->priv->current_buffer);
@@ -100,6 +104,7 @@ on_notify_buffer_cb (GeditView  *view,
                     gpointer    userdata)
 {
        GtkTextBuffer *buffer;
+       GtkSourceFile *file;
 
        current_buffer_removed (view);
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
@@ -107,14 +112,17 @@ on_notify_buffer_cb (GeditView  *view,
        if (buffer == NULL || !GEDIT_IS_DOCUMENT (buffer))
                return;
 
+       file = gedit_document_get_file (GEDIT_DOCUMENT (buffer));
+
        view->priv->current_buffer = g_object_ref (buffer);
-       g_signal_connect (buffer,
-                         "notify::read-only",
-                         G_CALLBACK (document_read_only_notify_handler),
-                         view);
+       g_signal_connect_object (file,
+                                "notify::read-only",
+                                G_CALLBACK (file_read_only_notify_handler),
+                                view,
+                                0);
 
        gtk_text_view_set_editable (GTK_TEXT_VIEW (view),
-                                   !gedit_document_get_readonly (GEDIT_DOCUMENT (buffer)));
+                                   !gtk_source_file_is_readonly (file));
 }
 
 static void
@@ -854,11 +862,9 @@ gedit_view_cut_clipboard (GeditView *view)
        clipboard = gtk_widget_get_clipboard (GTK_WIDGET (view),
                                              GDK_SELECTION_CLIPBOARD);
 
-       /* FIXME: what is default editability of a buffer? */
        gtk_text_buffer_cut_clipboard (buffer,
                                       clipboard,
-                                      !gedit_document_get_readonly (
-                                               GEDIT_DOCUMENT (buffer)));
+                                      gtk_text_view_get_editable (GTK_TEXT_VIEW (view)));
 
        gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view),
                                      gtk_text_buffer_get_insert (buffer),
@@ -905,12 +911,10 @@ gedit_view_paste_clipboard (GeditView *view)
        clipboard = gtk_widget_get_clipboard (GTK_WIDGET (view),
                                              GDK_SELECTION_CLIPBOARD);
 
-       /* FIXME: what is default editability of a buffer? */
        gtk_text_buffer_paste_clipboard (buffer,
                                         clipboard,
                                         NULL,
-                                        !gedit_document_get_readonly (
-                                               GEDIT_DOCUMENT (buffer)));
+                                        gtk_text_view_get_editable (GTK_TEXT_VIEW (view)));
 
        gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view),
                                      gtk_text_buffer_get_insert (buffer),
@@ -939,11 +943,9 @@ gedit_view_delete_selection (GeditView *view)
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        g_return_if_fail (buffer != NULL);
 
-       /* FIXME: what is default editability of a buffer? */
        gtk_text_buffer_delete_selection (buffer,
                                          TRUE,
-                                         !gedit_document_get_readonly (
-                                               GEDIT_DOCUMENT (buffer)));
+                                         gtk_text_view_get_editable (GTK_TEXT_VIEW (view)));
 
        gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (view),
                                      gtk_text_buffer_get_insert (buffer),
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 73ed6c0..e8812b1 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -577,6 +577,7 @@ update_actions_sensitivity (GeditWindow *window)
        gint num_tabs;
        GeditTabState state = GEDIT_TAB_STATE_NORMAL;
        GeditDocument *doc = NULL;
+       GtkSourceFile *file = NULL;
        GeditView *view = NULL;
        gint tab_number = -1;
        GAction *action;
@@ -598,6 +599,7 @@ update_actions_sensitivity (GeditWindow *window)
                state = gedit_tab_get_state (tab);
                view = gedit_tab_get_view (tab);
                doc = GEDIT_DOCUMENT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)));
+               file = gedit_document_get_file (doc);
                tab_number = gtk_notebook_page_num (GTK_NOTEBOOK (notebook), GTK_WIDGET (tab));
                editable = gtk_text_view_get_editable (GTK_TEXT_VIEW (view));
                empty_search = _gedit_document_get_empty_search (doc);
@@ -611,7 +613,7 @@ update_actions_sensitivity (GeditWindow *window)
        g_simple_action_set_enabled (G_SIMPLE_ACTION (action),
                                     ((state == GEDIT_TAB_STATE_NORMAL) ||
                                      (state == GEDIT_TAB_STATE_EXTERNALLY_MODIFIED_NOTIFICATION)) &&
-                                    (doc != NULL) && !gedit_document_get_readonly (doc) &&
+                                    (file != NULL) && !gtk_source_file_is_readonly (file) &&
                                     !(lockdown & GEDIT_LOCKDOWN_SAVE_TO_DISK));
 
        action = g_action_map_lookup_action (G_ACTION_MAP (window), "save-as");
@@ -1064,6 +1066,7 @@ set_title (GeditWindow *window)
 {
        GeditTab *tab;
        GeditDocument *doc = NULL;
+       GtkSourceFile *file;
        gchar *name;
        gchar *dirname = NULL;
        gchar *main_title = NULL;
@@ -1092,6 +1095,8 @@ set_title (GeditWindow *window)
        doc = gedit_tab_get_document (tab);
        g_return_if_fail (doc != NULL);
 
+       file = gedit_document_get_file (doc);
+
        name = gedit_document_get_short_name_for_display (doc);
 
        len = g_utf8_strlen (name, -1);
@@ -1110,7 +1115,6 @@ set_title (GeditWindow *window)
        }
        else
        {
-               GtkSourceFile *file = gedit_document_get_file (doc);
                GFile *location = gtk_source_file_get_location (file);
 
                if (location != NULL)
@@ -1139,7 +1143,7 @@ set_title (GeditWindow *window)
                name = tmp_name;
        }
 
-       if (gedit_document_get_readonly (doc))
+       if (gtk_source_file_is_readonly (file))
        {
                title = g_strdup_printf ("%s [%s]",
                                         name, _("Read-Only"));
@@ -1901,7 +1905,7 @@ selection_changed (GeditDocument *doc,
 }
 
 static void
-readonly_changed (GeditDocument *doc,
+readonly_changed (GtkSourceFile *file,
                  GParamSpec    *pspec,
                  GeditWindow   *window)
 {
@@ -1932,6 +1936,7 @@ on_tab_added (GeditMultiNotebook *multi,
 {
        GeditView *view;
        GeditDocument *doc;
+       GtkSourceFile *file;
 
        gedit_debug (DEBUG_WINDOW);
 
@@ -1939,6 +1944,7 @@ on_tab_added (GeditMultiNotebook *multi,
 
        view = gedit_tab_get_view (tab);
        doc = gedit_tab_get_document (tab);
+       file = gedit_document_get_file (doc);
 
        /* IMPORTANT: remember to disconnect the signal in notebook_tab_removed
         * if a new signal is connected here */
@@ -1983,10 +1989,6 @@ on_tab_added (GeditMultiNotebook *multi,
                          "notify::has-selection",
                          G_CALLBACK (selection_changed),
                          window);
-       g_signal_connect (doc,
-                         "notify::read-only",
-                         G_CALLBACK (readonly_changed),
-                         window);
        g_signal_connect (view,
                          "notify::overwrite",
                          G_CALLBACK (overwrite_mode_changed),
@@ -1995,6 +1997,10 @@ on_tab_added (GeditMultiNotebook *multi,
                          "notify::editable",
                          G_CALLBACK (editable_changed),
                          window);
+       g_signal_connect (file,
+                         "notify::read-only",
+                         G_CALLBACK (readonly_changed),
+                         window);
 
        update_window_state (window);
        update_can_close (window);


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