When disabling persistence, or closing a persistent tab, delete the mode settings file for that tab

This commit is contained in:
Micah Lee 2019-11-02 23:06:26 -07:00
parent 7819a894be
commit 1bca467ce3
No known key found for this signature in database
GPG Key ID: 403C2657CD994F73
3 changed files with 16 additions and 3 deletions

View File

@ -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)

View File

@ -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())

View File

@ -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