mirror of
https://github.com/onionshare/onionshare.git
synced 2024-10-01 01:35:40 -04:00
When disabling persistence, or closing a persistent tab, delete the mode settings file for that tab
This commit is contained in:
parent
7819a894be
commit
1bca467ce3
@ -130,11 +130,13 @@ class ModeSettings:
|
||||
def save(self):
|
||||
# Save persistent setting to disk
|
||||
if not self.get("persistent", "enabled"):
|
||||
self.common.log(
|
||||
"ModeSettings", "save", f"{self.id}: not persistent, so not saving"
|
||||
)
|
||||
return
|
||||
|
||||
if self.filename:
|
||||
with open(self.filename, "w") as file:
|
||||
file.write(json.dumps(self._settings, indent=2))
|
||||
|
||||
def delete(self):
|
||||
# Delete the file from disk
|
||||
if os.path.exists(self.filename):
|
||||
os.remove(self.filename)
|
||||
|
@ -202,6 +202,10 @@ class ModeSettingsWidget(QtWidgets.QWidget):
|
||||
self.tab.tab_id, self.persistent_checkbox.isChecked()
|
||||
)
|
||||
|
||||
# If disabling persistence, delete the file from disk
|
||||
if not self.persistent_checkbox.isChecked():
|
||||
self.settings.delete()
|
||||
|
||||
def public_checkbox_clicked(self):
|
||||
self.settings.set("general", "public", self.public_checkbox.isChecked())
|
||||
|
||||
|
@ -150,6 +150,11 @@ class TabWidget(QtWidgets.QTabWidget):
|
||||
self.common.log("TabWidget", "close_tab", f"{index}")
|
||||
tab = self.widget(index)
|
||||
if tab.close_tab():
|
||||
# If the tab is persistent, delete the settings file from disk
|
||||
if tab.settings.get("persistent", "enabled"):
|
||||
tab.settings.delete()
|
||||
|
||||
# Remove the tab
|
||||
self.removeTab(index)
|
||||
del self.tabs[tab.tab_id]
|
||||
|
||||
@ -157,6 +162,8 @@ class TabWidget(QtWidgets.QTabWidget):
|
||||
if self.count() == 0:
|
||||
self.new_tab_clicked()
|
||||
|
||||
self.save_persistent_tabs()
|
||||
|
||||
def are_tabs_active(self):
|
||||
"""
|
||||
See if there are active servers in any open tabs
|
||||
|
Loading…
Reference in New Issue
Block a user