From 1059281a8962dd7529318b529aeda02ca8544722 Mon Sep 17 00:00:00 2001 From: emkael Date: Sun, 7 Jul 2019 21:24:44 +0200 Subject: Tracing dirty state of edited file --- jfr_playoff/gui/__init__.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'jfr_playoff/gui/__init__.py') diff --git a/jfr_playoff/gui/__init__.py b/jfr_playoff/gui/__init__.py index 2a890d1..6f94df2 100644 --- a/jfr_playoff/gui/__init__.py +++ b/jfr_playoff/gui/__init__.py @@ -15,7 +15,8 @@ class PlayoffGUI(tk.Tk): self.newFileIndex = 0 self._title = tk.StringVar() self._title.trace('w', self._setTitle) - self._dirty = False + self._dirty = tk.BooleanVar() + self._dirty.trace('w', self._setTitle) self._filepath = None def run(self): @@ -28,8 +29,12 @@ class PlayoffGUI(tk.Tk): self.openFile(sys.argv[1]) else: self.newFile() + self.bind('<>', self._onFileChange, add='+') self.mainloop() + def _onFileChange(self, *args): + self._dirty.set(True) + def _setValues(self, config): for tab in self.tabs.values(): tab.setValues(config) @@ -42,18 +47,20 @@ class PlayoffGUI(tk.Tk): self.newFileIndex += 1 self._title.set('Nowa drabinka %d' % (self.newFileIndex)) self._resetValues() + self.after(0, self._dirty.set, False) def _setTitle(self, *args): self.title('%s - %s%s' % ( 'TeamyPlayOff', self._title.get(), - '* ' if self._dirty else '' + ' *' if self._dirty.get() else '' )) def openFile(self, filepath): self._filepath = filepath self._title.set(os.path.basename(filepath)) self._setValues(json.load(open(filepath))) + self.after(0, self._dirty.set, False) def getDbConfig(self): return self.tabs['NetworkTab'].getDB() -- cgit v1.2.3