From 83e423ef9d39dca873d7db7934308235397b4649 Mon Sep 17 00:00:00 2001 From: teleportingtortoise Date: Sun, 5 Jun 2022 18:15:39 -0700 Subject: [PATCH] Attempting to address #375 --- gui/filehandling.py | 3 +-- gui/preferenceswindow.py | 25 +++++++++++++++++++++++++ gui/userconfig.py | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/gui/filehandling.py b/gui/filehandling.py index 776872993..e40da8a38 100644 --- a/gui/filehandling.py +++ b/gui/filehandling.py @@ -570,8 +570,7 @@ def set_filename(self, value): if self.filename: if self.filename.startswith( - self.get_scrap_folder() + self.get_scrap_prefix() - ): + self.get_scrap_folder() + self.get_scrap_prefix()): self.active_scrap_filename = self.filename filename = property(get_filename, set_filename) diff --git a/gui/preferenceswindow.py b/gui/preferenceswindow.py index 2ed59613c..a877d85b7 100644 --- a/gui/preferenceswindow.py +++ b/gui/preferenceswindow.py @@ -295,6 +295,31 @@ def pressure_curve_changed_cb(self, widget): self.app.preferences['input.global_pressure_mapping'] = points self.app.apply_settings() + def scrap_folder_button_pressed_cb(self, widget): + dialog = Gtk.FileChooserDialog( + title="Choose a folder...", + transient_for=self.app.drawWindow, + action=Gtk.FileChooserAction.SELECT_FOLDER, + ) + dialog.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL) + dialog.add_button(Gtk.STOCK_OPEN, Gtk.ResponseType.OK) + response = dialog.run() + # for formating the output nicely when in a home folder + if sys.platform == 'win32': + ud_docs = lib.glib.get_user_special_dir( + GLib.UserDirectory.DIRECTORY_DOCUMENTS, + ) + folderprefix = os.path.join(ud_docs, u) + else: + folderprefix = u'~/' + if response == Gtk.ResponseType.OK: + folder = dialog.get_filename() + folder = folder.replace( + os.path.expanduser('~') + os.sep, folderprefix) + self.app.preferences['saving.scrap_folder'] = folder + self.app.apply_settings() + dialog.destroy() + def scrap_folder_entry_changed_cb(self, widget): scrap_folder = widget.get_text() if isinstance(scrap_folder, bytes): diff --git a/gui/userconfig.py b/gui/userconfig.py index 670faf934..98b91ffbf 100644 --- a/gui/userconfig.py +++ b/gui/userconfig.py @@ -57,7 +57,7 @@ def default_configuration(): ) scrapfldr = os.path.join(ud_docs, u'MyPaint', u'scrap') else: - scrapfldr = u'~/MyPaint/' + scrapfldr = u'~/MyPaint' default_config = { 'saving.scrap_folder': scrapfldr, 'saving.scrap_prefix': 'scrap',