diff --git a/src/gui/__init__.py b/src/gui/__init__.py --- a/src/gui/__init__.py +++ b/src/gui/__init__.py @@ -3,6 +3,7 @@ import threading import tkinter as tk import config +from analyzer import ImageAnalyzer from .mainwindow import MainWindow from .boardview import BoardView from .settings import Settings @@ -19,6 +20,9 @@ class GUI: self.root.title("OneEye {0}.{1}.{2}".format(*config.misc.version)) self.root.option_add('*tearOff',False) # for menu + self.detector=ImageAnalyzer() + self._frameKey=0 + self._ownMessages=None self._coreMessages=None @@ -61,6 +65,10 @@ class GUI: if self.settings: self.settings.destroy() self.settings=None + self.sendParams() + + def sendParams(self): + self.sendMsg("setParams",(self.detector.params.copy(),)) def _handleEvent(self,e): actions={ @@ -72,10 +80,11 @@ class GUI: return actions[actionName](*args,**kwargs) - def _frameHandler(self,newFrame,type): - if self._state!=type: + def _frameHandler(self,newFrame,type,key): + if self._state!=type and self.mainWindow.imgView.isSet(): log.info("ignored setCurrentFrame event, wrong type") return + self._frameKey=key self.mainWindow.setCurrentFrame(newFrame) self.root.event_generate("<>") @@ -83,11 +92,12 @@ class GUI: labels={(row,col):(i+1) for (i,(c,row,col)) in enumerate(moves)} self.mainWindow.boardView.redrawState(gameState,labels) - def _paramsHandler(self,**params): + def _paramsHandler(self,params): if not self.settings: log.warning("received 'setParams' message while settings is '%s'",str(self.settings)) return - self.settings.setParams(**params) + self.detector.setParams(params) + self.settings.setParams(params) gui=GUI()