From a59bf3bde6e9faf97962241e156b800eaa9f0058 Mon Sep 17 00:00:00 2001 From: ztlxltl <192432144+ztlxltl@users.noreply.github.com> Date: Sun, 2 Feb 2025 14:55:20 +0100 Subject: [PATCH] Add default name/dir to svg export Recent dir is saved in config. Also: - Fix button text in file chooser - Fix appending .svg to file name --- src/family_tree_view.py | 11 +++++++++-- src/family_tree_view_config_provider.py | 5 ++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/family_tree_view.py b/src/family_tree_view.py index bdef03e..678fc00 100644 --- a/src/family_tree_view.py +++ b/src/family_tree_view.py @@ -620,7 +620,7 @@ def export_svg_view(self, *args): dialog.add_buttons( Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, - Gtk.STOCK_OPEN, + Gtk.STOCK_SAVE, Gtk.ResponseType.OK, ) @@ -634,6 +634,11 @@ def export_svg_view(self, *args): filter_any.add_pattern("*") dialog.add_filter(filter_any) + recent_dir = self._config.get("paths.familytreeview-recent-export-dir") + dialog.set_current_folder(recent_dir) + dbname = self.dbstate.db.get_dbname() + dialog.set_current_name(f"untitled_FTV_export_of_{dbname}.svg") + response = dialog.run() if response != Gtk.ResponseType.OK: @@ -641,9 +646,11 @@ def export_svg_view(self, *args): return file_name = dialog.get_filename() + dir_name = os.path.dirname(file_name) + self._config.set("paths.familytreeview-recent-export-dir", dir_name) dialog.destroy() - if file_name[:-4].lower() != ".svg": + if file_name[-4:].lower() != ".svg": file_name += ".svg" # TODO Catch errors of cairo write. diff --git a/src/family_tree_view_config_provider.py b/src/family_tree_view_config_provider.py index f00ba46..a0164b5 100644 --- a/src/family_tree_view_config_provider.py +++ b/src/family_tree_view_config_provider.py @@ -25,7 +25,7 @@ from gi.repository import Gtk from gramps.gen.config import config -from gramps.gen.const import GRAMPS_LOCALE, SIZE_LARGE, SIZE_NORMAL +from gramps.gen.const import GRAMPS_LOCALE, SIZE_LARGE, SIZE_NORMAL, USER_HOME from gramps.gen.lib.eventtype import EventType from family_tree_view_config_provider_names import names_page, DEFAULT_ABBREV_RULES @@ -109,6 +109,9 @@ def get_config_settings(): ("experimental.familytreeview-adaptive-ancestor-generation-dist", False), ("experimental.familytreeview-connection-follow-on-click", False), ("experimental.familytreeview-canvas-font-size-ppi", 96), + + # without config ui + ("paths.familytreeview-recent-export-dir", USER_HOME), ) @staticmethod