From 150f20035d5fdc87b4e4cbc6e1b31358ee4ffe96 Mon Sep 17 00:00:00 2001 From: Adrian Cochrane Date: Wed, 18 Apr 2018 13:09:14 +1200 Subject: [PATCH] Implement the 'always-saved' feature both write.as and elementary pride themselves on. 8min. --- src/window.vala | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/window.vala b/src/window.vala index 9440dac..deafb87 100644 --- a/src/window.vala +++ b/src/window.vala @@ -10,12 +10,17 @@ public class WriteAs.MainWindow : Gtk.ApplicationWindow { build_keyboard_shortcuts(); canvas = new Gtk.TextView(); + canvas.wrap_mode = Gtk.WrapMode.WORD_CHAR; add(canvas); canvas.event_after.connect((evt) => { // TODO This word count algorithm may be quite naive // and could do improvement. var word_count = canvas.buffer.text.split(" ").length; title = ngettext("%i word","%i words",word_count).printf(word_count); + + draft_file().replace_contents(canvas.buffer.text.data, null, false, + FileCreateFlags.PRIVATE | FileCreateFlags.REPLACE_DESTINATION, + null); }); adjust_text_style(); @@ -23,10 +28,18 @@ public class WriteAs.MainWindow : Gtk.ApplicationWindow { public MainWindow(Gtk.Application app) { set_application(app); + try { + open_file(draft_file()); + } catch (Error err) {/* It's fine... */} set_default_size(800, 600); } + private static File draft_file() { + var home = File.new_for_path(Environment.get_home_dir()); + return home.get_child(".writeas-draft.txt"); + } + private void construct_toolbar() { var header = new Gtk.HeaderBar(); header.show_close_button = true;