mirror of
https://github.com/onionshare/onionshare.git
synced 2025-02-11 20:29:15 -05:00
When disabling persistence, or closing a persistent tab, delete the mode settings file for that tab
This commit is contained in:
parent
b4e70bed57
commit
accb5c4e07
@ -130,11 +130,13 @@ class ModeSettings:
|
|||||||
def save(self):
|
def save(self):
|
||||||
# Save persistent setting to disk
|
# Save persistent setting to disk
|
||||||
if not self.get("persistent", "enabled"):
|
if not self.get("persistent", "enabled"):
|
||||||
self.common.log(
|
|
||||||
"ModeSettings", "save", f"{self.id}: not persistent, so not saving"
|
|
||||||
)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.filename:
|
if self.filename:
|
||||||
with open(self.filename, "w") as file:
|
with open(self.filename, "w") as file:
|
||||||
file.write(json.dumps(self._settings, indent=2))
|
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()
|
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):
|
def public_checkbox_clicked(self):
|
||||||
self.settings.set("general", "public", self.public_checkbox.isChecked())
|
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}")
|
self.common.log("TabWidget", "close_tab", f"{index}")
|
||||||
tab = self.widget(index)
|
tab = self.widget(index)
|
||||||
if tab.close_tab():
|
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)
|
self.removeTab(index)
|
||||||
del self.tabs[tab.tab_id]
|
del self.tabs[tab.tab_id]
|
||||||
|
|
||||||
@ -157,6 +162,8 @@ class TabWidget(QtWidgets.QTabWidget):
|
|||||||
if self.count() == 0:
|
if self.count() == 0:
|
||||||
self.new_tab_clicked()
|
self.new_tab_clicked()
|
||||||
|
|
||||||
|
self.save_persistent_tabs()
|
||||||
|
|
||||||
def are_tabs_active(self):
|
def are_tabs_active(self):
|
||||||
"""
|
"""
|
||||||
See if there are active servers in any open tabs
|
See if there are active servers in any open tabs
|
||||||
|
Loading…
x
Reference in New Issue
Block a user