From ac63fc073f3db9742095243d2e73a5887cf9bee6 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Fri, 3 Apr 2015 16:57:42 +0200 Subject: [PATCH] save: Add possibility to mark things dirty on add. KeyConfig needs this feature, because it can fix some deprecated commands during __init__ and emit its dirty-signal, but that happens before the saveable is added. --- qutebrowser/misc/savemanager.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/qutebrowser/misc/savemanager.py b/qutebrowser/misc/savemanager.py index f55387542..3a7772b1c 100644 --- a/qutebrowser/misc/savemanager.py +++ b/qutebrowser/misc/savemanager.py @@ -22,7 +22,7 @@ import os.path import collections -from PyQt5.QtCore import pyqtSlot, QObject +from PyQt5.QtCore import pyqtSlot, QObject, QTimer from qutebrowser.config import config from qutebrowser.commands import cmdutils @@ -139,7 +139,7 @@ class SaveManager(QObject): self._save_timer.start() def add_saveable(self, name, save, changed=None, config_opt=None, - filename=None): + filename=None, dirty=False): """Add a new saveable. Args: @@ -150,11 +150,15 @@ class SaveManager(QObject): or not. filename: The filename of the underlying file, so we can force saving if it doesn't exist. + dirty: Whether the saveable is already dirty. """ if name in self.saveables: raise ValueError("Saveable {} already registered!".format(name)) - self.saveables[name] = Saveable(name, save, changed, config_opt, - filename) + saveable = Saveable(name, save, changed, config_opt, filename) + self.saveables[name] = saveable + if dirty: + saveable.mark_dirty() + QTimer.singleShot(0, saveable.save) def save(self, name, is_exit=False, explicit=False, silent=False, force=False):