r21810 - gnucash/trunk/src/gnome - Read-only mode: Add "Revert file" menu item so that a file that might got changed from someone else can easily be reloaded.

Christian Stimming cstim at code.gnucash.org
Sat Dec 31 11:32:12 EST 2011


Author: cstim
Date: 2011-12-31 11:32:12 -0500 (Sat, 31 Dec 2011)
New Revision: 21810
Trac: http://svn.gnucash.org/trac/changeset/21810

Modified:
   gnucash/trunk/src/gnome/gnc-plugin-basic-commands.c
   gnucash/trunk/src/gnome/ui/gnc-plugin-basic-commands-ui.xml
Log:
Read-only mode: Add "Revert file" menu item so that a file that might got changed from someone else can easily be reloaded.

Modified: gnucash/trunk/src/gnome/gnc-plugin-basic-commands.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-basic-commands.c	2011-12-31 16:32:01 UTC (rev 21809)
+++ gnucash/trunk/src/gnome/gnc-plugin-basic-commands.c	2011-12-31 16:32:12 UTC (rev 21810)
@@ -55,6 +55,7 @@
 #include "gnc-window.h"
 #include "gnc-session.h"
 #include "gnc-plugin-page-sx-list.h"
+#include "gnc-plugin-file-history.h"
 
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_GUI;
@@ -70,6 +71,7 @@
 static void gnc_main_window_cmd_file_open (GtkAction *action, GncMainWindowActionData *data);
 static void gnc_main_window_cmd_file_save (GtkAction *action, GncMainWindowActionData *data);
 static void gnc_main_window_cmd_file_save_as (GtkAction *action, GncMainWindowActionData *data);
+static void gnc_main_window_cmd_file_revert (GtkAction *action, GncMainWindowActionData *data);
 static void gnc_main_window_cmd_file_export_accounts (GtkAction *action, GncMainWindowActionData *data);
 static void gnc_main_window_cmd_edit_tax_options (GtkAction *action, GncMainWindowActionData *data);
 static void gnc_main_window_cmd_actions_mortgage_loan (GtkAction *action, GncMainWindowActionData *data);
@@ -116,6 +118,11 @@
         G_CALLBACK (gnc_main_window_cmd_file_save_as)
     },
     {
+        "FileRevertAction", GTK_STOCK_REVERT_TO_SAVED, N_("Re_vert"), NULL,
+        N_("Reload the current database, reverting all unsaved changes"),
+        G_CALLBACK (gnc_main_window_cmd_file_revert)
+    },
+    {
         "FileExportAccountsAction", GTK_STOCK_CONVERT,
         N_("Export _Accounts"), NULL,
         N_("Export the account hierarchy to a new GnuCash datafile"),
@@ -423,6 +430,26 @@
 }
 
 static void
+gnc_main_window_cmd_file_revert (GtkAction *action, GncMainWindowActionData *data)
+{
+    g_return_if_fail (data != NULL);
+
+    if (!gnc_main_window_all_finish_pending())
+        return;
+
+    gnc_window_set_progressbar_window (GNC_WINDOW(data->window));
+
+    {
+        gchar *filename = gnc_history_get_last();
+        // And actually open the current file again
+        gnc_file_open_file (filename, qof_book_is_readonly(gnc_get_current_book()));
+        g_free(filename);
+    }
+
+    gnc_window_set_progressbar_window (NULL);
+}
+
+static void
 gnc_main_window_cmd_file_export_accounts (GtkAction *action, GncMainWindowActionData *data)
 {
     g_return_if_fail (data != NULL);

Modified: gnucash/trunk/src/gnome/ui/gnc-plugin-basic-commands-ui.xml
===================================================================
--- gnucash/trunk/src/gnome/ui/gnc-plugin-basic-commands-ui.xml	2011-12-31 16:32:01 UTC (rev 21809)
+++ gnucash/trunk/src/gnome/ui/gnc-plugin-basic-commands-ui.xml	2011-12-31 16:32:12 UTC (rev 21810)
@@ -10,6 +10,7 @@
       <placeholder name="FileSavePlaceholder">
         <menuitem name="FileSave" action="FileSaveAction"/>
         <menuitem name="FileSaveAs" action="FileSaveAsAction"/>
+        <menuitem name="FileRevert" action="FileRevertAction"/>
       </placeholder>
       <menu name="FileExport" action="FileExportAction">
         <menuitem name="FileExportAccounts" action="FileExportAccountsAction"/>



More information about the gnucash-changes mailing list