Example #1
0
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()
Example #2
0
	def event_stop(self, event):
		from pygui.window import ConfirmWindow
		ConfirmWindow(_('Remove item(s) from playlist?'), confirm_action=self._do_delete).show()
		return True
Example #3
0
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()
Example #6
0
 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()
Example #7
0
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")
Example #8
0
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')
Example #9
0
	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: 
Example #10
0
def showPicker( choice, aMessage, aTitle = 'Pick one' ):
    msgWin = ConfirmWindow( CUSTOM_MODE, aMessage, choice, aTitle )
    return msgWin.return_result()
Example #11
0
def showPopupMessage( aMode, aMessage, aTitle = 'Confirm' ):
    msgWin = ConfirmWindow( aMode, aMessage, aTitle )
    return msgWin.return_result()