Author: nick Date: 2007-12-08 10:46:08 +0000 (Sat, 08 Dec 2007) New Revision: 26451
Modified: mousepad/branches/nick_0_3/ChangeLog mousepad/branches/nick_0_3/mousepad/mousepad-dialogs.c mousepad/branches/nick_0_3/mousepad/mousepad-dialogs.h mousepad/branches/nick_0_3/mousepad/mousepad-window.c Log: * mousepad/mousepad-{dialog,window}.c: Show save as button in question dialog for readonly documents. Also add the modified readonly documents to the save-as queue when running save all. Modified: mousepad/branches/nick_0_3/ChangeLog =================================================================== --- mousepad/branches/nick_0_3/ChangeLog 2007-12-08 10:31:50 UTC (rev 26450) +++ mousepad/branches/nick_0_3/ChangeLog 2007-12-08 10:46:08 UTC (rev 26451) @@ -1,5 +1,12 @@ 2007-12-08 Nick Schermer <[EMAIL PROTECTED]> + * mousepad/mousepad-{dialog,window}.c: Show save as button in + question dialog for readonly documents. Also add the modified + readonly documents to the save-as queue when running save all. + + +2007-12-08 Nick Schermer <[EMAIL PROTECTED]> + * mousepad/mousepad-{search-bar,window}.c: Remove highlight when hiding the search bar. Search ahead when opening the search bar. Modified: mousepad/branches/nick_0_3/mousepad/mousepad-dialogs.c =================================================================== --- mousepad/branches/nick_0_3/mousepad/mousepad-dialogs.c 2007-12-08 10:31:50 UTC (rev 26450) +++ mousepad/branches/nick_0_3/mousepad/mousepad-dialogs.c 2007-12-08 10:46:08 UTC (rev 26451) @@ -350,36 +350,41 @@ gint -mousepad_dialogs_save_changes (GtkWindow *parent) +mousepad_dialogs_save_changes (GtkWindow *parent, + gboolean readonly) { GtkWidget *dialog; GtkWidget *image; gint response; - /* the dialog icon */ - image = gtk_image_new_from_stock (GTK_STOCK_SAVE, GTK_ICON_SIZE_DIALOG); - gtk_widget_show (image); - /* create the question dialog */ dialog = gtk_message_dialog_new (parent, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_OTHER, GTK_BUTTONS_NONE, _("Do you want to save the changes before closing?")); + gtk_window_set_title (GTK_WINDOW (dialog), _("Save Changes")); + gtk_dialog_add_action_widget (GTK_DIALOG (dialog), mousepad_util_image_button (GTK_STOCK_DELETE, _("_Don't Save")), MOUSEPAD_RESPONSE_DONT_SAVE); + gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, MOUSEPAD_RESPONSE_CANCEL, NULL); - gtk_dialog_add_action_widget (GTK_DIALOG (dialog), - mousepad_util_image_button (GTK_STOCK_DELETE, _("_Don't Save")), - MOUSEPAD_RESPONSE_DONT_SAVE); + /* we show the save as button instead of save for readonly document */ + if (G_UNLIKELY (readonly)) + { + image = gtk_image_new_from_stock (GTK_STOCK_SAVE_AS, GTK_ICON_SIZE_DIALOG); + gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_SAVE_AS, MOUSEPAD_RESPONSE_SAVE_AS, NULL); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), MOUSEPAD_RESPONSE_SAVE_AS); + } + else + { + image = gtk_image_new_from_stock (GTK_STOCK_SAVE, GTK_ICON_SIZE_DIALOG); + gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_SAVE, MOUSEPAD_RESPONSE_SAVE, NULL); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), MOUSEPAD_RESPONSE_SAVE); + } - gtk_dialog_add_buttons (GTK_DIALOG (dialog), - GTK_STOCK_CANCEL, MOUSEPAD_RESPONSE_CANCEL, - GTK_STOCK_SAVE, MOUSEPAD_RESPONSE_SAVE, - NULL); - - gtk_window_set_title (GTK_WINDOW (dialog), _("Save Changes")); + /* the dialog icon */ gtk_message_dialog_set_image (GTK_MESSAGE_DIALOG (dialog), image); - gtk_dialog_set_default_response (GTK_DIALOG (dialog), MOUSEPAD_RESPONSE_SAVE); + gtk_widget_show (image); - gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), - _("If you don't save the document, all the changes will be lost.")); + /* secondary text */ + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("If you don't save the document, all the changes will be lost.")); /* run the dialog and wait for a response */ response = gtk_dialog_run (GTK_DIALOG (dialog)); Modified: mousepad/branches/nick_0_3/mousepad/mousepad-dialogs.h =================================================================== --- mousepad/branches/nick_0_3/mousepad/mousepad-dialogs.h 2007-12-08 10:31:50 UTC (rev 26450) +++ mousepad/branches/nick_0_3/mousepad/mousepad-dialogs.h 2007-12-08 10:46:08 UTC (rev 26451) @@ -58,7 +58,8 @@ gboolean mousepad_dialogs_clear_recent (GtkWindow *parent); -gint mousepad_dialogs_save_changes (GtkWindow *parent); +gint mousepad_dialogs_save_changes (GtkWindow *parent, + gboolean readonly); gint mousepad_dialogs_revert (GtkWindow *parent); Modified: mousepad/branches/nick_0_3/mousepad/mousepad-window.c =================================================================== --- mousepad/branches/nick_0_3/mousepad/mousepad-window.c 2007-12-08 10:31:50 UTC (rev 26450) +++ mousepad/branches/nick_0_3/mousepad/mousepad-window.c 2007-12-08 10:46:08 UTC (rev 26451) @@ -1177,6 +1177,7 @@ { gboolean succeed = FALSE; gint response; + gboolean readonly; _mousepad_return_val_if_fail (MOUSEPAD_IS_WINDOW (window), FALSE); _mousepad_return_val_if_fail (MOUSEPAD_IS_DOCUMENT (document), FALSE); @@ -1184,8 +1185,11 @@ /* check if the document has been modified */ if (gtk_text_buffer_get_modified (document->buffer)) { + /* whether the file is readonly */ + readonly = mousepad_file_get_read_only (document->file); + /* run save changes dialog */ - response = mousepad_dialogs_save_changes (GTK_WINDOW (window)); + response = mousepad_dialogs_save_changes (GTK_WINDOW (window), readonly); switch (response) { @@ -1201,6 +1205,10 @@ case MOUSEPAD_RESPONSE_SAVE: succeed = mousepad_window_action_save (NULL, window); break; + + case MOUSEPAD_RESPONSE_SAVE_AS: + succeed = mousepad_window_action_save_as (NULL, window); + break; } } else @@ -3371,7 +3379,8 @@ if (!gtk_text_buffer_get_modified (MOUSEPAD_DOCUMENT (document)->buffer)) continue; - if (mousepad_file_get_filename (MOUSEPAD_DOCUMENT (document)->file) == NULL) + if (mousepad_file_get_filename (MOUSEPAD_DOCUMENT (document)->file) == NULL || + mousepad_file_get_read_only ((MOUSEPAD_DOCUMENT (document)->file))) { /* add the document to a queue to bother the user later */ unnamed = g_slist_prepend (unnamed, document); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits