Changeset 1132 for trunk/papywizard/controller/shootController.py
- Timestamp:
- 12/05/08 08:33:22 (4 years ago)
- File:
-
- 1 edited
-
trunk/papywizard/controller/shootController.py (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/papywizard/controller/shootController.py
r1120 r1132 64 64 65 65 from papywizard.common.loggingServices import Logger 66 from papywizard.common.helpers import sToHmsAsStr 66 67 from papywizard.common.configManager import ConfigManager 67 68 from papywizard.controller.messageController import ErrorMessageController 68 69 from papywizard.controller.abstractController import AbstractController 69 #from papywizard.controller.generalInfoController import GeneralInfoController70 70 from papywizard.controller.configController import ConfigController 71 71 from papywizard.controller.spy import Spy … … 78 78 def _init(self): 79 79 self._gladeFile = "shootDialog.glade" 80 self._signalDict = {"on_rewindButton_clicked": self.__onRewindButtonclicked, 80 self._signalDict = {"on_textViewTogglebutton_toggled": self.__onTextViewTogglebuttonToggled, 81 "on_rewindButton_clicked": self.__onRewindButtonclicked, 81 82 "on_forwardButton_clicked": self.__onForwardButtonclicked, 82 83 "on_stepByStepCheckbutton_toggled": self.__onStepByStepCheckbuttonToggled, … … 117 118 self.viewport.add(self.shootingArea) 118 119 self.shootingArea.show() 120 121 # Create text shooting area 122 self.textShootingArea = gtk.VBox() 123 self.position1Label = gtk.Label() 124 self.position1Label.modify_font(pango.FontDescription("Arial 18")) 125 self.textShootingArea.pack_start(self.position1Label) 126 self.position1Label.set_text("--") 127 self.position2Label = gtk.Label() 128 self.position2Label.modify_font(pango.FontDescription("Arial 18")) 129 self.textShootingArea.pack_start(self.position2Label) 130 self.position2Label.set_text("") 131 self.repeatLabel = gtk.Label() 132 self.repeatLabel.modify_font(pango.FontDescription("Arial 18")) 133 self.repeatLabel.set_text("--") 134 self.textShootingArea.pack_start(self.repeatLabel) 135 self.textShootingArea.show_all() 119 136 120 137 self.rewindButton = self.wTree.get_widget("rewindButton") … … 166 183 167 184 Spy().newPosSignal.connect(self.__refreshPos) 168 self._model.newPositionSignal.connect(self.__shootingNewPosition)169 185 self._model.startedSignal.connect(self.__shootingStarted) 170 186 self._model.pausedSignal.connect(self.__shootingPaused) 171 187 self._model.resumedSignal.connect(self.__shootingResumed) 172 188 self._model.stoppedSignal.connect(self.__shootingStopped) 173 self._model.updateInfoSignal.connect(self.__shootingUpdateInfo) 189 self._model.waitingSignal.connect(self.__shootingWaiting) 190 self._model.beginShootSignal.connect(self.__shootingBeginShoot) 191 self._model.progressSignal.connect(self.__shootingProgress) 192 self._model.repeatSignal.connect(self.__shootingRepeat) 193 self._model.newPositionSignal.connect(self.__shootingNewPosition) 194 self._model.sequenceSignal.connect(self.__shootingSequence) 195 self._model.bracketSignal.connect(self.__shootingBracket) 174 196 175 197 # Callbacks GTK … … 327 349 Logger().debug("ShootController.__onMotionNotify(): drag x=%d, y=%d" % (x, y)) 328 350 351 def __onTextViewTogglebuttonToggled(self, widget): 352 Logger().trace("ShootController.__onTextViewTogglebuttonToggled()") 353 if widget.get_active(): 354 self.viewport.remove(self.shootingArea) 355 self.viewport.add(self.textShootingArea) 356 else: 357 self.viewport.remove(self.textShootingArea) 358 self.viewport.add(self.shootingArea) 359 329 360 def __onRewindButtonclicked(self, widget): 330 361 Logger().trace("ShootController.__onRewindButtonclicked()") … … 343 374 Logger().trace("ShootController.__onDataFileButtonclicked()") 344 375 controller = ConfigController(self, self._model, self._serializer) 345 controller. notebook.set_current_page(5)376 controller.selectPage(5, disable=True) 346 377 response = controller.run() 347 378 controller.shutdown() … … 349 380 350 381 def __onTimerButtonClicked(self, widget): 382 Logger().trace("ShootController.__onTimerButtonClicked()") 351 383 controller = ConfigController(self, self._model, self._serializer) 352 controller. notebook.set_current_page(6)384 controller.selectPage(6, disable=True) 353 385 response = controller.run() 354 386 controller.shutdown() … … 375 407 376 408 # Callback model (all GUI calls must be done via the serializer) 377 def __shootingNewPosition(self, yaw, pitch, status=None, next=False):378 Logger().trace("ShootController.__shootingNewPosition()")379 self.shootingArea.add_pict(yaw, pitch, status, next)380 self._serializer.addWork(self.shootingArea.refresh)381 382 409 def __shootingStarted(self): 383 410 Logger().trace("ShootController.__shootingStarted()") 384 411 self._serializer.addWork(self.shootingArea.clear) 412 self._serializer.addWork(self.progressbar.set_fraction, 0.) 413 self._serializer.addWork(self.position1Label.set_text, "--") 414 self._serializer.addWork(self.position2Label.set_text, "") 415 self._serializer.addWork(self.repeatLabel.set_text, "--") 385 416 self._serializer.addWork(self.dataFileButton.set_sensitive, False) 386 417 self._serializer.addWork(self.timerButton.set_sensitive, False) … … 417 448 self._serializer.addWork(self.timerButton.set_sensitive, True) 418 449 self._serializer.addWork(self.startButton.set_sensitive, True) 419 #self._serializer.addWork(self.pauseResumeLabel.set_text, _("Pause"))420 450 self._serializer.addWork(self.pauseResumeButton.set_sensitive, False) 421 451 self._serializer.addWork(self.stopButton.set_sensitive, False) 422 452 self._serializer.addWork(self.doneButton.set_sensitive, True) 423 #self._serializer.addWork(self.rewindButton.set_sensitive, False) 424 #self._serializer.addWork(self.forwardButton.set_sensitive, False) 425 426 def __shootingUpdateInfo(self, info): 427 Logger().debug("ShootController.__shootingUpdateInfo(): info=%s" % info) 428 if info.has_key('sequence'): 429 self._serializer.addWork(self.progressbar.set_text, info['sequence']) 430 elif info.has_key('progress'): 431 self._serializer.addWork(self.progressbar.set_fraction, info['progress']) 453 454 def __shootingWaiting(self, wait): 455 Logger().trace("ShootController.__shootingRepeat()") 456 sequenceMessage = _("Waiting %s") % sToHmsAsStr(wait) 457 self._serializer.addWork(self.progressbar.set_text, sequenceMessage) 458 459 def __shootingBeginShoot(self): 460 Logger().trace("ShootController.__shootingBeginShoot()") 461 self._serializer.addWork(self.shootingArea.clear) 462 463 def __shootingProgress(self, progress): 464 Logger().trace("ShootController.__shootingProgress()") 465 self._serializer.addWork(self.progressbar.set_fraction, progress) 466 467 def __shootingRepeat(self, repeat): 468 Logger().trace("ShootController.__shootingRepeat()") 469 sequenceMessage = _("Repeat #%d of %d") % (repeat, self._model.timerEveryRepeat) 470 #self._serializer.addWork(self.progressbar.set_text, sequenceMessage) 471 self.repeatLabel.set_text(sequenceMessage) 472 473 def __shootingNewPosition(self, index, yaw, pitch, status=None, next=False): 474 Logger().trace("ShootController.__shootingNewPosition()") 475 if isinstance(index, tuple): 476 index, yawIndex, pitchIndex = index 477 position2 = _("(yaw #%(yawIndex)d of %(yawNbPicts)d, pitch #%(pitchIndex)d of %(pitchNbPicts)d)") 478 positionData = {'totalNbPicts': self._model.mosaic.totalNbPicts, 479 'yawNbPicts': self._model.mosaic.yawNbPicts, 480 'pitchNbPicts' : self._model.mosaic.pitchNbPicts} 481 positionData.update({'index': index, 'yawIndex': yawIndex, 'pitchIndex': pitchIndex}) 482 self._serializer.addWork(self.position2Label.set_text, "%s" % position2 % positionData) 483 else: 484 positionData = {'totalNbPicts': self._model.preset.totalNbPicts} 485 positionData.update({'index': index}) 486 #Logger().debug("ShootController.__shootingNewPosition(): %s" % sequence % sequenceData) 487 position1 = _("Position #%(index)d of %(totalNbPicts)d") 488 self._serializer.addWork(self.position1Label.set_text, "%s" % position1 % positionData) 489 self.shootingArea.add_pict(yaw, pitch, status, next) 490 self._serializer.addWork(self.shootingArea.refresh) 491 492 def __shootingSequence(self, sequence, **kwargs): 493 Logger().trace("ShootController.__shootingSequence()") 494 if sequence == 'moving': 495 self._serializer.addWork(self.progressbar.set_text, _("Moving")) 496 elif sequence == 'stabilization': 497 self._serializer.addWork(self.progressbar.set_text, _("Stabilization")) 498 elif sequence == 'mirror': 499 self._serializer.addWork(self.progressbar.set_text, _("Mirror lockup")) 500 elif sequence == 'shutter': 501 bracket = kwargs['bracket'] 502 totalNbPicts = self._model.camera.bracketingNbPicts 503 self._serializer.addWork(self.progressbar.set_text, _("Shutter cycle - Pict #%d of %d") % (bracket, totalNbPicts)) 504 505 def __shootingBracket(self, bracket): 506 Logger().trace("ShootController.__shootingBracket()") 507 sequenceData = {'bracket': bracket, 508 'bracketingNbPicts': self._model.camera.bracketingNbPicts} 509 Logger().debug("ShootController.__shootingBracket(): bracket=%(bracket)d of %(bracketingNbPicts)d" % sequenceData) 510 #self._serializer.addWork(self.textShootingArea.set_text, "%s" % sequence % sequenceData) 432 511 433 512 def __refreshPos(self, yaw, pitch): 434 """ Refresh position according to new pos.435 436 @param yaw: yaw axis value437 @type yaw: float438 439 @param pitch: pitch axix value440 @type pitch: float441 """442 513 Logger().trace("ShootController.__refreshPos()") 443 514 self.shootingArea.set_current_head_position(yaw, pitch) … … 494 565 if self.__thread is not None: 495 566 self.__thread.join() 496 self._model.newPositionSignal.disconnect(self.__shootingNewPosition)567 Spy().newPosSignal.disconnect(self.__refreshPos) 497 568 self._model.startedSignal.disconnect(self.__shootingStarted) 498 569 self._model.pausedSignal.disconnect(self.__shootingPaused) 499 570 self._model.resumedSignal.disconnect(self.__shootingResumed) 500 571 self._model.stoppedSignal.disconnect(self.__shootingStopped) 501 self._model.updateInfoSignal.disconnect(self.__shootingUpdateInfo) 502 Spy().newPosSignal.disconnect(self.__refreshPos) 572 self._model.waitingSignal.disconnect(self.__shootingWaiting) 573 self._model.beginShootSignal.disconnect(self.__shootingBeginShoot) 574 self._model.progressSignal.disconnect(self.__shootingProgress) 575 self._model.repeatSignal.connect(self.__shootingRepeat) 576 self._model.newPositionSignal.disconnect(self.__shootingNewPosition) 577 self._model.sequenceSignal.disconnect(self.__shootingSequence) 578 self._model.bracketSignal.disconnect(self.__shootingBracket) 503 579 504 580 def refreshView(self): 505 self.dataFileButtonImage.set_sensitive(ConfigManager().getBoolean('Preferences', 'DATA_FILE_ENABLE')) 506 self.timerButtonImage.set_sensitive(ConfigManager().getBoolean('Preferences', 'TIMER_EVERY_ENABLE')) 581 dataFileFlag = ConfigManager().getBoolean('Preferences', 'DATA_FILE_ENABLE') 582 self.dataFileButtonImage.set_sensitive(dataFileFlag) 583 timerFlag = ConfigManager().getBoolean('Preferences', 'TIMER_AFTER_ENABLE') or ConfigManager().getBoolean('Preferences', 'TIMER_EVERY_ENABLE') 584 self.timerButtonImage.set_sensitive(timerFlag)
Note: See TracChangeset
for help on using the changeset viewer.
