[Xfce4-commits] r26451 - in mousepad/branches/nick_0_3: . mousepad
Nick Schermer
nick at xfce.org
Sat Dec 8 11:46:09 CET 2007
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 <nick at xfce.org>
+ * 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 <nick at xfce.org>
+
* 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);
More information about the Xfce4-commits
mailing list