From c110d9bc238d1f8819a58990a15e94a9ade2eea9 Mon Sep 17 00:00:00 2001 From: prculley Date: Fri, 19 Oct 2018 16:33:16 -0500 Subject: [PATCH] Better default directory choices for import/export Use recent-export-dir as default for Export View instead of the console default directory, which can be where program resides (on Windows), or other inappropriate place. Use USER_HOME for default directory on 'Export' (recent-export-dir) if first run (default settings) rather than default directory, which can be where program resides (on Windows), or other inappropriate place. Use USER_HOME for default directory on 'Import' (recent-import-dir) if first run (default settings) rather than recent file which is generally set to the grampsdb path. Fixes #10802 --- gramps/gen/config.py | 4 +-- gramps/gui/dbloader.py | 29 +--------------------- gramps/gui/plug/export/_exportassistant.py | 7 +----- gramps/gui/views/listview.py | 4 +++ 4 files changed, 8 insertions(+), 36 deletions(-) diff --git a/gramps/gen/config.py b/gramps/gen/config.py index edb711f1e..578fe0f2c 100644 --- a/gramps/gen/config.py +++ b/gramps/gen/config.py @@ -221,9 +221,9 @@ register('interface.view', True) register('interface.surname-box-height', 150) register('interface.treemodel-cache-size', 1000) -register('paths.recent-export-dir', '') +register('paths.recent-export-dir', USER_HOME) register('paths.recent-file', '') -register('paths.recent-import-dir', '') +register('paths.recent-import-dir', USER_HOME) register('paths.report-directory', USER_HOME) register('paths.website-directory', USER_HOME) register('paths.website-cms-uri', '') diff --git a/gramps/gui/dbloader.py b/gramps/gui/dbloader.py index b33c7830c..16d0fcbc3 100644 --- a/gramps/gui/dbloader.py +++ b/gramps/gui/dbloader.py @@ -303,27 +303,6 @@ class DbLoader(CLIDbLoader): self._end_progress() return True -#------------------------------------------------------------------------- -# -# default dir selection -# -#------------------------------------------------------------------------- -def get_default_dir(): - # Suggested folder: try last open file, last import, last export, - # then home. - default_dir = os.path.dirname(config.get('paths.recent-file')) - if default_dir: - default_dir += os.path.sep - if len(default_dir)<=1: - default_dir = config.get('paths.recent-import-dir') - if len(default_dir)<=1: - default_dir = config.get('paths.recent-export-dir') - if len(default_dir)<=1: - default_dir = '~/' - else: - default_dir = "~/" - return default_dir - #------------------------------------------------------------------------- # # FileChooser filters: what to show in the file chooser @@ -474,13 +453,7 @@ class GrampsImportFileDialog(ManagedWindow): (box, type_selector) = format_maker() import_dialog.set_extra_widget(box) - # Suggested folder: try last open file, import, then last export, - # then home. - default_dir = config.get('paths.recent-import-dir') - if len(default_dir)<=1: - default_dir = get_default_dir() - - import_dialog.set_current_folder(default_dir) + import_dialog.set_current_folder(config.get('paths.recent-import-dir')) while True: # the import_dialog.run() makes it modal, so any change to that # line would require the ManagedWindow.__init__ to be changed also diff --git a/gramps/gui/plug/export/_exportassistant.py b/gramps/gui/plug/export/_exportassistant.py index 1064e5676..4eb6fe852 100644 --- a/gramps/gui/plug/export/_exportassistant.py +++ b/gramps/gui/plug/export/_exportassistant.py @@ -55,7 +55,7 @@ from gi.repository import GdkPixbuf # #------------------------------------------------------------------------- -from gramps.gen.const import USER_HOME, ICON, SPLASH, GRAMPS_LOCALE as glocale +from gramps.gen.const import ICON, SPLASH, GRAMPS_LOCALE as glocale _ = glocale.translation.gettext from gramps.gen.config import config from ...pluginmanager import GuiPluginManager @@ -558,12 +558,7 @@ class ExportAssistant(ManagedWindow, Gtk.Assistant): ix = self.get_selected_format_index() ext = self.map_exporters[ix].get_extension() - # Suggested folder: try last export, then last import, then home. default_dir = config.get('paths.recent-export-dir') - if len(default_dir)<=1: - default_dir = config.get('paths.recent-import-dir') - if len(default_dir)<=1: - default_dir = USER_HOME if ext == 'gramps': new_filename = os.path.join(default_dir,'data.gramps') diff --git a/gramps/gui/views/listview.py b/gramps/gui/views/listview.py index f9dabc9f4..7a4d0241a 100644 --- a/gramps/gui/views/listview.py +++ b/gramps/gui/views/listview.py @@ -30,6 +30,7 @@ Provide the base classes for GRAMPS' DataView classes # #---------------------------------------------------------------- from abc import abstractmethod +import os import pickle import time import logging @@ -1071,6 +1072,8 @@ class ListView(NavigationView): combobox.set_active(0) box.show_all() chooser.set_extra_widget(box) + default_dir = config.get('paths.recent-export-dir') + chooser.set_current_folder(default_dir) while True: value = chooser.run() @@ -1083,6 +1086,7 @@ class ListView(NavigationView): else: chooser.destroy() return + config.set('paths.recent-export-dir', os.path.split(fn)[0]) self.write_tabbed_file(fn, fl) def write_tabbed_file(self, name, type):