Skip to content

Commit cfda6b4

Browse files
committed
Fix a bug with setting up a periodic saving in the GUI
1 parent a136ee5 commit cfda6b4

File tree

3 files changed

+37
-24
lines changed

3 files changed

+37
-24
lines changed

src/gui/more_options_dialog.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,22 @@ def _get_generated_password(self, w):
155155
# Open the file chooser dialog for selecting the periodic saving folder
156156
# by calling the MainWindow's method (self.parent)
157157
def _open_file_dialog(self, w):
158-
self.parent.select_pb_folder(w="")
158+
self.__select_pb_folder()
159+
160+
# Select folder for periodic saving
161+
def __select_pb_folder(self):
162+
def save_selected(source, res, data):
163+
try:
164+
folder = source.select_folder_finish(res)
165+
except:
166+
return
167+
self.folder_pb = folder.get_path()
168+
self.dirRow.set_subtitle(f"{self.folder_pb}")
169+
170+
self.pb_chooser = Gtk.FileDialog.new()
171+
self.pb_chooser.set_modal(True)
172+
self.pb_chooser.set_title(_("Choose custom folder for periodic saving"))
173+
self.pb_chooser.select_folder(self.parent, None, save_selected, None)
159174

160175
# Reset the file name format entry to the default value
161176
def _reset_fileformat(self, w):
@@ -185,9 +200,9 @@ def _expand_periodic_row(self):
185200
def msDialog_closed(self, w, response):
186201
if response == 'ok':
187202
settings["filename-format"] = self.filefrmtEntry.get_text() # save the file name format entry
188-
settings["periodic-saving-folder"] = self.dirRow.get_subtitle() # save the selected periodic saving folder
189203
settings["enable-encryption"] = self.encryptSwitch.get_active() # save the archive encryption's switch state
190204
settings["save-without-archive"] = self.archSwitch.get_active() # save the switch state of the "Save a configuration without creating the configuration archive" option
205+
settings["periodic-saving-folder"] = self.dirRow.get_subtitle()
191206
self._save_periodic_saving_values()
192207
self._save_password()
193208
self._call_set_dialog()

src/gui/synchronization_dialogs.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def __init__(self, parent):
8383
def initsetupDialog_closed(self, w, response):
8484
if response == 'next' or response == 'ok-syncthing': # open the Gtk.FileDialog in the GNOME Online accounts case
8585
if self.get_button_type == 'set-button':
86-
self.parent.select_pb_folder(w)
86+
self._select_pb_folder()
8787
else:
8888
self.cloud_dialog.select_folder_to_sync(w)
8989
self.almost_done()
@@ -102,6 +102,21 @@ def initsetupDialog_closed(self, w, response):
102102
settings["periodic-import"] = "Daily2"
103103
self.parent._open_CloudDialog()
104104

105+
# Select folder for periodic saving
106+
def _select_pb_folder(self):
107+
def save_selected(source, res, data):
108+
try:
109+
folder = source.select_folder_finish(res)
110+
except:
111+
return
112+
self.folder_pb = folder.get_path()
113+
settings["periodic-saving-folder"] = self.folder_pb
114+
115+
self.pb_chooser = Gtk.FileDialog.new()
116+
self.pb_chooser.set_modal(True)
117+
self.pb_chooser.set_title(_("Choose custom folder for periodic saving"))
118+
self.pb_chooser.select_folder(self.parent, None, save_selected, None)
119+
105120
# Set the Rclone setup command
106121
def _get_service(self, comborow, GParamObject):
107122
self.set_body("")
@@ -197,11 +212,11 @@ def __init__(self, parent):
197212
## translate the periodic-saving key to the user language
198213
pb = next((key for key, value in {_("Never"): "Never", _("Daily"): "Daily", _("Weekly"): "Weekly", _("Monthly"): "Monthly"}.items() if settings["periodic-saving"] == value), None)
199214
self.ps_row = Adw.ActionRow.new()
200-
self.ps_row.set_title(f'{_("Periodic saving")} ({_("Interval")})')
215+
self.ps_row.set_title(f'{_("Periodic saving")}')
201216
self.ps_row.set_use_markup(True)
202217
self.ps_row.add_suffix(self.ps_button)
203-
self.ps_row.set_subtitle(f'<span color="red">{_("Never")}</span>' if settings["periodic-saving"] == "Never"
204-
else f'<span color="green">{pb}</span>')
218+
self.ps_row.set_subtitle(f'{_("Never")}' if settings["periodic-saving"] == "Never"
219+
else f'{pb}')
205220
self.ps_button.add_css_class('suggested-action') if settings["periodic-saving"] == "Never" else None
206221

207222
# Create this file to set expanding the "Periodic saving" row in the More options dialog
@@ -227,7 +242,7 @@ def check_filesystem_fnc(self):
227242

228243
# Check if periodic saving is set to "Never"
229244
if settings["periodic-saving"] == "Never":
230-
folder = f'{_("Interval")}: {_("Never")}'
245+
folder = ""
231246
# Check if the filesystem is not FUSE
232247
elif check_fs_result == "You didn't select the cloud drive folder!":
233248
err = _("You didn't select the cloud drive folder!")
@@ -246,7 +261,6 @@ def update_gui(self):
246261
self.file_row = Adw.ActionRow()
247262
self.file_row.set_title(_("Periodic saving file"))
248263
self.file_row.set_subtitle(folder)
249-
self.file_row.add_suffix(Gtk.Image.new_from_icon_name("network-wired-symbolic")) if "red" not in folder else None
250264
self.file_row.set_subtitle_lines(8)
251265
self.file_row.set_use_markup(True)
252266
self.file_row.set_subtitle_selectable(True)

src/gui/window.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -349,22 +349,6 @@ def _open_CloudDialog(self):
349349
self.set_dialog.choose(self, None, None, None)
350350
self.set_dialog.present(self)
351351

352-
# Select folder for periodic saving
353-
def select_pb_folder(self, w):
354-
def save_selected(source, res, data):
355-
try:
356-
folder = source.select_folder_finish(res)
357-
except:
358-
return
359-
self.folder_pb = folder.get_path()
360-
settings["periodic-saving-folder"] = self.folder_pb if settings["first-synchronization-setup"] else settings["periodic-saving-folder"]
361-
self.dirRow.set_subtitle(f"{self.folder_pb}") if hasattr(self, 'dirRow') else None
362-
363-
self.pb_chooser = Gtk.FileDialog.new()
364-
self.pb_chooser.set_modal(True)
365-
self.pb_chooser.set_title(_("Choose custom folder for periodic saving"))
366-
self.pb_chooser.select_folder(self, None, save_selected, None)
367-
368352
# Select folder for saving configuration
369353
def select_folder(self, w):
370354
def save_selected(source, res, data):

0 commit comments

Comments
 (0)