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)
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()
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())
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)
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)
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))
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()
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()
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()
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
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)
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)
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