def execute_cancel_record(context): def __do_cancel(context): record = context['selected'] scheduler = WyRecord().scheduler try: rule_id = record.periodic_rule.id scheduler.RemovePeriodicRecording(rule_id, delete_records=False) ConfirmWindow(_('Are you sure ?'), confirm_action=__do_cancel, confirm_args=(context,)).show()
def event_stop(self, event): from pygui.window import ConfirmWindow ConfirmWindow(_('Remove item(s) from playlist?'), confirm_action=self._do_delete).show() return True
self.nodes: {0: <unpyclib.structure.node instance at 0xb774744c>} nname: 0 n 0(None)[play = self.player play.choices.edited = False play.selected.vfs_delete() del play.choices[play.selected_pos] return True ]: i: o: self.nodes: {0: <unpyclib.structure.node instance at 0xb77474ac>} nname: 0 n 0(None)[from pygui.window import ConfirmWindow ConfirmWindow(_('Remove item(s) from playlist?'), confirm_action=self._do_delete).show() return True ]: i: o: self.nodes: {0: <unpyclib.structure.node instance at 0xb774768c>} nname: 6 n 6(None)[def event_right(self, event): self.player.choices.edited = True return True def event_left(self, event): if self.player.choices.edited: self.player.choices.edited = False else:
def stopRecording(self): self.confirmWindow = ConfirmWindow( self, "Are you sure you want to stop the study? All data will be lost.", None, None, self.onConfirmStop) self.confirmWindow.show()
class RecordingWindow(QWidget): def __init__(self, mainProg): QWidget.__init__(self, None, Qt.WindowStaysOnTopHint) self.mainLayout = QHBoxLayout() self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(0) self.setStyleSheet("font-size: 16px;") self.mainProg = mainProg self.isMinimized = False self.setAttribute(Qt.WA_TranslucentBackground) self.renderBorder() self.renderRecordingOptions() self.videoFileName = "UsabTest-" + datetime.today().strftime( '%Y-%m-%d-%H-%M-%S') + ".avi" # screenRecThread = threading.Thread(target=self.startRecorder, args=(self,)) # screenRecThread.start() print("Recording thread before") recordingThread = RecordingThread(self) recordingThread.start() while not hasattr(self, "screenRecorder"): time.sleep(0.1) ferThread = FERThread(self) ferThread.start() # ferThread = threading.Thread(target=self.startFER, args=(self,)) # ferThread.start() # def startRecorder(self, parent): # parent.screenRecorder = ScreenRecorder(parent.videoFileName) # parent.screenRecorder.begin() # def startFER(self, parent): # parent.fer = FacialExpressionRecog("Model 1", parent.screenRecorder) # parent.fer.begin() def renderBorder(self): # Setting dimensions self.screenW = GetSystemMetrics(0) self.screenH = GetSystemMetrics(1) # Configurations self.setWindowFlag(Qt.FramelessWindowHint) self.setGeometry(0, 0, self.screenW - 0, self.screenH - 0) redFrame = QFrame(self) redFrame.setGeometry(0, 0, self.screenW - 0, self.screenH - 0) redFrame.setStyleSheet("border: 2px solid red;") def renderRecordingOptions(self): frame = QWidget(self) self.frameWidth = 200 self.frameHeight = 40 frameX = self.screenW / 2 - self.frameWidth / 2 frameY = self.screenH - self.frameHeight frame.setFixedSize(self.frameWidth, self.frameHeight) frame.move(frameX, frameY) frame.setStyleSheet("background-color: rgb(211,211,211);") innerLayout = QHBoxLayout() innerLayout.setContentsMargins(0, 0, 15, 0) label = QLabel("Recording") label.setFixedHeight(self.frameHeight) label.setContentsMargins(10, 0, 5, 0) recordingIconLabel = QLabel(self) recIcon = QPixmap("./assets/RecordingIcon20x20.png") recIcon = recIcon.scaled(20, 20, Qt.KeepAspectRatio) recordingIconLabel.setPixmap(recIcon) recordingIconLabel.resize(recIcon.width(), recIcon.height()) stopButton = QPushButton("STOP", self) stopButton.clicked.connect(self.stopRecording) stopButton.resize(stopButton.sizeHint()) stopButton.setStyleSheet( "background-color: rgb(255,51,51); margin: 0; padding: 2; font-size: 16px;" ) stopButton.setFixedWidth(60) minimizeButton = QPushButton(self) leftArrowIcon = QIcon("./assets/LeftArrow40x80.png") minimizeButton.setIcon(leftArrowIcon) minimizeButton.setIconSize(QSize(15, 35)) minimizeButton.pressed.connect(self.minimizeButtonPress) minimizeButton.clicked.connect(self.minimize) minimizeButton.resize(minimizeButton.sizeHint()) minimizeButton.setStyleSheet( "background-color: gray; border: 1px solid gray;") minimizeButton.setFixedWidth(20) minimizeButton.setFixedHeight(self.frameHeight) minimizeButton.mouseMoveEvent = self.minimizeButtonDrag minimizeButton.move(frameX + self.frameWidth, frameY) self.minimizeButtonDragged = False self.minimizeButton = minimizeButton innerLayout.addWidget(label) innerLayout.addWidget(recordingIconLabel) innerLayout.addWidget(stopButton) self.innerLayout = innerLayout frame.setLayout(self.innerLayout) self.frame = frame def stopProcesses(self): self.fer.running = False self.fer.cap.release() self.screenRecorder.quit = True def onConfirmStop(self): print("STOPPING RECORDING!") self.stopProcesses() self.mainProg.onRecordingStopped() self.close() def stopRecording(self): self.confirmWindow = ConfirmWindow( self, "Are you sure you want to stop the study? All data will be lost.", None, None, self.onConfirmStop) self.confirmWindow.show() def minimize(self): if not self.minimizeButtonDragged: if self.isMinimized: self.frame.show() self.isMinimized = False else: self.frame.hide() self.isMinimized = True def minimizeButtonPress(self): _, _, (x, y) = win32gui.GetCursorInfo() self.minimizeButtonDragged = False self.dragPos = QPoint(x, y) def minimizeButtonDrag(self, event): self.minimizeButtonDragged = True self.mouseMoveEvent(event) # Clicking on the body of the window before it is dragged and repositioned # The click position needs to be saved to know where to move the window to def mousePressEvent(self, event): self.dragPos = event.globalPos() # When the user drags the window def mouseMoveEvent(self, event): if event.buttons() == Qt.LeftButton: self.frame.move( self.frame.pos().x() + event.globalPos().x() - self.dragPos.x(), self.frame.pos().y()) self.minimizeButton.move( self.minimizeButton.pos().x() + event.globalPos().x() - self.dragPos.x(), self.minimizeButton.pos().y()) self.dragPos = event.globalPos()
def finishTaskButton(self, e): self.confirmWindow = ConfirmWindow( self, "Confirm you want to proceed to next task.", self.pos(), (self.windowW - 15, self.windowH - 0), self.onConfirmNextTask) self.confirmWindow.show()
class TaskWindow(QWidget): def __init__(self, parent, sequenceDataItem, previousTaskPos): QWidget.__init__(self, None, Qt.WindowStaysOnTopHint) self.parent = parent self.previousTaskPos = previousTaskPos self.sequenceDataItem = sequenceDataItem self.mainLayout = QVBoxLayout() self.mainLayout.setContentsMargins(0, 0, 0, 3) self.setLayout(self.mainLayout) self.renderTaskWindow() self.renderTask(sequenceDataItem) def renderTaskWindow(self): # Setting dimensions self.screenW = GetSystemMetrics(0) self.screenH = GetSystemMetrics(1) self.windowW = 300 self.windowH = 200 self.windowPaddingLeft = 30 self.windowsPaddingTop = 70 if self.previousTaskPos == None: self.initX = self.screenW - self.windowW - self.windowPaddingLeft self.initY = self.windowsPaddingTop else: self.initX = self.previousTaskPos.x() self.initY = self.previousTaskPos.y() self.buttonMinW = 100 self.buttonHeight = 25 # Configurations self.setWindowFlag(Qt.FramelessWindowHint) self.setGeometry(self.initX, self.initY, self.windowW, self.windowH) self.setStyleSheet("font-size: 16px;") self.dragPos = QPoint(self.pos().x(), self.pos().y()) self.hideButtonDragged = False # Hide button hideButton = QPushButton("Hide", self) hideButton.clicked.connect(self.toggleHide) hideButton.resize(hideButton.sizeHint()) hideButton.setStyleSheet("background-color: rgb(32, 123, 207 );") hideButton.pressed.connect(self.hideButtonPress) hideButton.mouseMoveEvent = self.hideButtonDrag self.hideButton = hideButton self.mainLayout.addWidget(self.hideButton) def renderTask(self, sequenceDataItem): jsonSteps = json.loads(sequenceDataItem["stepsJSON"]) progress = "[" + str(sequenceDataItem["sequenceNumber"] + 1) + "/" + str( len(self.parent.data["sequenceData"])) + "]" stepString = "Progress: " + progress + "\n" # Create instruction text body stepIndex = 1 stepString += "Task: " + sequenceDataItem["taskName"] + "\n" for step in jsonSteps: stepString += "\n" + str(stepIndex) + ". " + ( str(step["value"]) + " ") + "\n" stepIndex += 1 # Set the text taskLayout = ScrollLabel(self) taskLayout.setText(stepString) taskLayout.setGeometry(0, 40, 300, 0) taskLayout.setContentsMargins(0, 0, 0, 0) # Add "Finish Task" button hbox = QHBoxLayout() finishTaskButton = QPushButton("Finish Task", self) finishTaskButton.clicked.connect(self.finishTaskButton) finishTaskButton.resize(finishTaskButton.sizeHint()) finishTaskButton.setStyleSheet("background-color: rgb(32, 207, 76);") finishTaskButton.setFixedWidth(100) hbox.setAlignment(Qt.AlignCenter) hbox.addWidget(finishTaskButton) taskLayout.lay.addLayout(hbox) self.taskLayout = taskLayout self.mainLayout.addWidget(self.taskLayout) def hideButtonPress(self): _, _, (x, y) = win32gui.GetCursorInfo() self.dragPos = QPoint(x, y) def hideButtonDrag(self, event): if event.buttons() == Qt.LeftButton: self.hideButtonDragged = True self.move(self.pos() + event.globalPos() - self.dragPos) self.dragPos = event.globalPos() self.previousTaskPos = self.pos() # Hiding the content of the task with the button def toggleHide(self, e): currentState = self.hideButton.text() # If the hideButton was dragged (the window was moved when the button was selected) # then do not activate the button. Button will only be activated on click (no drag before click) if (self.hideButtonDragged): self.hideButtonDragged = False return if (currentState == "Hide"): self.hideButton.setText('Show') self.setFixedSize(self.buttonMinW, self.buttonHeight) x = int(self.pos().x() + self.windowW - self.buttonMinW) y = int(self.pos().y()) self.setGeometry(x, y, 0, 0) self.taskLayout.hide() self.mainLayout.setContentsMargins(0, 0, 0, 0) elif (currentState == "Show"): self.hideButton.setText('Hide') self.setFixedSize(self.windowW, self.windowH) x = int(self.pos().x() - self.windowW + self.buttonMinW) y = int(self.pos().y()) self.setGeometry(x, y, 0, 0) self.taskLayout.show() self.mainLayout.setContentsMargins(0, 0, 0, 3) # Clicking on the body of the window before it is dragged and repositioned # The click position needs to be saved to know where to move the window to def mousePressEvent(self, event): self.dragPos = event.globalPos() # When the user drags the window def mouseMoveEvent(self, event): if event.buttons() == Qt.LeftButton: self.move(self.pos() + event.globalPos() - self.dragPos) self.dragPos = event.globalPos() self.previousTaskPos = self.pos() # User clicked finish task def finishTaskButton(self, e): self.confirmWindow = ConfirmWindow( self, "Confirm you want to proceed to next task.", self.pos(), (self.windowW - 15, self.windowH - 0), self.onConfirmNextTask) self.confirmWindow.show() # self.parent.nextSequenceItem(None, "Task") def onConfirmNextTask(self): self.parent.nextSequenceItem(None, "Task")
from ecell.FullID import * from ecell.ecssupport import * from ConfirmWindow import * ConfirmWindow("Loading model, creating loggers", 'Test') loadModel('Drosophila.eml') fpn_p0 = createFullPN('Variable:/CELL/CYTOPLASM:P0:Value') fpn_p1 = createFullPN('Variable:/CELL/CYTOPLASM:P1:Value') log_p0 = createLoggerStub('Variable:/CELL/CYTOPLASM:P0:Value') log_p0.setLoggerPolicy([10, 0, 0, 0]) log_p0.create() ConfirmWindow("Logger for Variable P0 created", 'Test') run(10) ConfirmWindow("Simulation run for 10 secs", "Test") # save model saveModel('Drosophila2.eml') ConfirmWindow("Model saved", 'Test') #create entitylistwindow entitylist1 = createEntityListWindow() ConfirmWindow("EntityListWindow tested", 'Test')
rule_id = record.periodic_rule.id scheduler.RemovePeriodicRecording(rule_id, delete_records=False) ]: i: o: 77() self.nodes: {0: <unpyclib.structure.node instance at 0xb757ed2c>, 77: <unpyclib.structure.node instance at 0xb757e42c>} nname: 0 n 0(None)[def __do_cancel(context): record = context['selected'] scheduler = WyRecord().scheduler try: rule_id = record.periodic_rule.id scheduler.RemovePeriodicRecording(rule_id, delete_records=False) ConfirmWindow(_('Are you sure ?'), confirm_action=__do_cancel, confirm_args=(context,)).show() ]: i: o: self.nodes: {0: <unpyclib.structure.node instance at 0xb757b56c>} nname: 18 n 18(None)[record_id = context['selected'].record.id scheduler = WyRecord().scheduler scheduler.UpdateRecordingName(record_id, kbd.text) context['selected'].show_menu() kbd.hide() ]: i: 9(), 17() o:
def showPicker( choice, aMessage, aTitle = 'Pick one' ): msgWin = ConfirmWindow( CUSTOM_MODE, aMessage, choice, aTitle ) return msgWin.return_result()
def showPopupMessage( aMode, aMessage, aTitle = 'Confirm' ): msgWin = ConfirmWindow( aMode, aMessage, aTitle ) return msgWin.return_result()