Пример #1
0
    def __init__(self, sequence, index, appController, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.index = index
        self.appController = appController

        self.setProperty("class", "sequenceCard")
        outerLayout = layoutUtil.createLayout(LayoutType.HORIZONTAL, self)
        innerLayout = layoutUtil.createLayout(LayoutType.VERTICAL)
        self.createCloseButton(sequence, outerLayout)

        outerLayout.addLayout(innerLayout)
        innerLayout.setContentsMargins(25, 12, 25, 12)

        durationString = "Length: " + time.strftime(
            '%M:%S', time.gmtime(sequence.duration))
        dronesString = str(
            sequence.drones) + (" Drones" if sequence.drones > 1 else " Drone")
        nameLabel = ElidedLabel(sequence.name)
        nameLabel.setProperty("class", "boldText")

        locationLabel = ElidedLabel(sequence.location)
        locationLabel.setProperty("class", ["italicText", "locationLabel"])

        innerLayout.addStretch(1)
        innerLayout.addWidget(nameLabel)
        innerLayout.addWidget(ElidedLabel(durationString))
        innerLayout.addWidget(ElidedLabel(dronesString))
        innerLayout.addWidget(locationLabel)
        innerLayout.addStretch(1)

        self.createSelectButton(sequence, outerLayout)
Пример #2
0
    def __init__(self, appController, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.appController = appController
        self.appController.sequenceSelected.connect(self.onSequenceSelected)
        self.appController.sequenceUpdated.connect(self.updateProgress)

        self.layout = layoutUtil.createLayout(LayoutType.VERTICAL, self)
        innerLayout = layoutUtil.createLayout(LayoutType.VERTICAL)
        innerLayout.setContentsMargins(30, 30, 30, 0)
        self.layout.addLayout(innerLayout)

        self.sequenceTitle = self.createLabel("--", "sequenceTitle", innerLayout)
        self.droneText = self.createLabel("--", "sequenceDroneText", innerLayout)

        innerLayout.addStretch(1)
        self.progressText = self.createLabel("00:00 / 00:00", "sequenceProgressText", innerLayout)
        self.progressBar = self.createProgressBar()
Пример #3
0
    def __init__(self, text, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.indicator = None

        layout = layoutUtil.createLayout(LayoutType.HORIZONTAL, self)
        layout.addWidget(QLabel(text))
        layout.addWidget(self.createIndicator())
Пример #4
0
    def __init__(self, appController, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.appController = appController

        layout = layoutUtil.createLayout(LayoutType.HORIZONTAL, self)

        self.recentPanel = RecentPanel(self.appController)
        self.baseStations = BaseStationPanel(self.appController)
        leftLayout = layoutUtil.createLayout(LayoutType.VERTICAL)
        leftLayout.addWidget(self.recentPanel)
        leftLayout.addWidget(self.baseStations)
        layout.addLayout(leftLayout, 20)

        self.sequencePanel = SequencePanel(self.appController)
        layout.addWidget(self.sequencePanel, 40)

        self.swarmPanel = SwarmPanel(self.appController)
        layout.addWidget(self.swarmPanel, 40)
Пример #5
0
    def __init__(self, appController, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.appController = appController

        self.layout = layoutUtil.createLayout(LayoutType.VERTICAL, self)
        self.layout.addWidget(self.createTitle())
        self.layout.addWidget(self.createCardHolder())
        self.refreshList()
        self.appController.sequenceLoaded.connect(self.refreshList)
        self.appController.sequenceOrderUpdated.connect(self.refreshList)
Пример #6
0
    def __init__(self, appController, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.appController = appController
        self.stationOne = BaseStationDisplay("Base Station I")
        self.stationTwo = BaseStationDisplay("Base Station II")

        layout = layoutUtil.createLayout(LayoutType.VERTICAL, self)
        layout.addWidget(self.stationOne)
        layout.addWidget(self.stationTwo)

        self.stationOne.setConnected(self.isBaseStationConnected(0))
        self.stationTwo.setConnected(self.isBaseStationConnected(1))
Пример #7
0
    def __init__(self, message, logLevel, droneNumber, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.context = "Drone " + str(
            droneNumber) if droneNumber is not None else "GLOBAL"
        self.logLevel = logLevel
        self.message = message

        self.setProperty("class", str(self.logLevel))
        self.layout = layoutUtil.createLayout(LayoutType.HORIZONTAL, self)
        self.createContextLabel()
        self.createMessageLabel()
        self.printToConsole()
Пример #8
0
    def __init__(self, appController, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.appController = appController
        self.appController.sequenceSelected.connect(self.clearLog)
        self.appController.sequenceStarted.connect(self.clearLog)
        # self.appController.sequenceFinished.connect(self.clearLog)
        self.appController.sequenceUpdated.connect(self.scrollBottom)
        Logger.bind_handler(self.log)

        self.layout = layoutUtil.createLayout(LayoutType.VERTICAL, self)
        self.createTitle()
        self.createLogPanel()
        self.clearLog()
Пример #9
0
    def __init__(self, appController, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.appController = appController
        self.appController.sequenceSelected.connect(self.onSequenceSelected)
        self.appController.sequenceStarted.connect(self.onSequenceStarted)
        self.appController.sequenceFinished.connect(self.onSequenceFinished)
        self.appController.scanFinished.connect(self.updateButtonStatus)
        self.appController.droneDisconnected.connect(self.onButtonClick)
        self.appController.resetTestMode.connect(self.onTestModeReset)

        self.layout = layoutUtil.createLayout(LayoutType.VERTICAL, self)
        self.createTitle()
        self.createButtonBar()
        self.createDataPanel()
        self.createSequenceLog()
Пример #10
0
    def createCardHolder(self):
        scrollArea = QScrollArea()
        self.cardList = QFrame()

        self.listLayout = layoutUtil.createLayout(LayoutType.VERTICAL,
                                                  self.cardList)
        self.cardList.setObjectName("SequenceHolder")

        scrollArea.setWidget(self.cardList)
        scrollArea.setWidgetResizable(True)
        scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        scrollArea.verticalScrollBar().setSingleStep(10)
        QScroller.grabGesture(scrollArea.viewport(),
                              QScroller.LeftMouseButtonGesture)
        return scrollArea
Пример #11
0
    def createLogPanel(self):
        self.scrollArea = QScrollArea()
        self.logList = QFrame()
        self.listLayout = layoutUtil.createLayout(LayoutType.VERTICAL,
                                                  self.logList)
        self.listLayout.setAlignment(Qt.AlignTop)
        self.logList.setObjectName("LogHolder")

        self.scrollArea.setWidget(self.logList)
        self.scrollArea.setWidgetResizable(True)
        self.scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        # self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.scrollArea.verticalScrollBar().setSingleStep(10)
        QScroller.grabGesture(self.scrollArea.viewport(),
                              QScroller.LeftMouseButtonGesture)

        self.layout.addWidget(self.scrollArea)
Пример #12
0
    def createTitle(self):
        titleLayout = layoutUtil.createLayout(LayoutType.HORIZONTAL)
        title = QLabel("Sequence Runner")
        title.setProperty("class", "titleText")
        titleLayout.addWidget(title)        

        self.startButton = QPushButton("START")
        self.startButton.setProperty("class", "startButton")
        self.startButton.setCursor(Qt.PointingHandCursor)
        self.startButton.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.startButton.setStatusTip("Start the sequence")
        self.startButton.clicked.connect(self.onButtonClick)
        self.startButton.clicked.connect(self.appController.onSequenceClick)
        self.startButton.setEnabled(False)
        self.startButton.setObjectName("StartButton")
        titleLayout.addWidget(self.startButton)

        self.layout.addLayout(titleLayout)
Пример #13
0
 def __init__(self, title, items, callback, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.layout = layoutUtil.createLayout(LayoutType.HORIZONTAL, self)
     self.createTitle(title)
     self.createButtons(items)
     self.callback = callback