[simple-scan] Implement prompt to load autosaved data.
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [simple-scan] Implement prompt to load autosaved data.
- Date: Thu, 28 Nov 2019 21:43:22 +0000 (UTC)
commit c0e0cf0af81e121ef8eb44dc5cbba96352e4178c
Author: Victor Mireyev <victor mireyev gmail com>
Date: Thu Nov 28 21:43:11 2019 +0000
Implement prompt to load autosaved data.
src/app-window.vala | 42 +++++++++++++++++++++++++++++-------------
src/autosave-manager.vala | 6 ++++++
2 files changed, 35 insertions(+), 13 deletions(-)
---
diff --git a/src/app-window.vala b/src/app-window.vala
index 7901cd7..16f10b7 100644
--- a/src/app-window.vala
+++ b/src/app-window.vala
@@ -193,19 +193,6 @@ public class AppWindow : Gtk.ApplicationWindow
load ();
clear_document ();
- autosave_manager = new AutosaveManager ();
- autosave_manager.book = book;
- autosave_manager.load ();
-
- if (book.n_pages == 0)
- book_needs_saving = false;
- else
- {
- stack.set_visible_child_name ("document");
- book_view.selected_page = book.get_page (0);
- book_needs_saving = true;
- book_changed_cb (book);
- }
}
~AppWindow ()
@@ -283,6 +270,20 @@ public class AppWindow : Gtk.ApplicationWindow
update_scan_status ();
}
+ private bool prompt_to_load_autosaved_book ()
+ {
+ var dialog = new Gtk.MessageDialog (this,
+ Gtk.DialogFlags.MODAL,
+ Gtk.MessageType.QUESTION,
+ Gtk.ButtonsType.YES_NO,
+ /* Contents of dialog that shows if autosaved book should be
loaded. */
+ _("An autosaved book exists. Do you want to open it?"));
+ dialog.set_default_response(Gtk.ResponseType.YES);
+ var response = dialog.run ();
+ dialog.destroy ();
+ return response == Gtk.ResponseType.YES;
+ }
+
private string? choose_file_location ()
{
/* Get directory to save to */
@@ -1769,6 +1770,21 @@ public class AppWindow : Gtk.ApplicationWindow
public void start ()
{
visible = true;
+ autosave_manager = new AutosaveManager ();
+ autosave_manager.book = book;
+
+ if (autosave_manager.exists () && prompt_to_load_autosaved_book ())
+ autosave_manager.load ();
+
+ if (book.n_pages == 0)
+ book_needs_saving = false;
+ else
+ {
+ stack.set_visible_child_name ("document");
+ book_view.selected_page = book.get_page (0);
+ book_needs_saving = true;
+ book_changed_cb (book);
+ }
}
}
diff --git a/src/autosave-manager.vala b/src/autosave-manager.vala
index 84a1e00..35ada7f 100644
--- a/src/autosave-manager.vala
+++ b/src/autosave-manager.vala
@@ -59,6 +59,12 @@ public class AutosaveManager
page_filenames = new HashTable<Page, string> (direct_hash, direct_equal);
}
+ public bool exists ()
+ {
+ var file = File.new_for_path (AUTOSAVE_PATH);
+ return file.query_exists ();
+ }
+
public void load ()
{
debug ("Loading autosave information");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]