From 94cc5fb322996a319c357b043cf5f3fa604c1f79 Mon Sep 17 00:00:00 2001 From: "artem30801@gmail.com" Date: Fri, 29 Mar 2019 17:12:48 +0300 Subject: [PATCH] Start animation and takeoff confirmation wia dialog popup --- Server/server_qt.py | 53 +++++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/Server/server_qt.py b/Server/server_qt.py index 9084ad1..a9f5dbd 100644 --- a/Server/server_qt.py +++ b/Server/server_qt.py @@ -1,13 +1,11 @@ import glob from PyQt5 import QtWidgets -from PyQt5.QtGui import QStandardItem -from PyQt5.QtGui import QStandardItemModel -from PyQt5.QtCore import QModelIndex -from PyQt5.QtCore import Qt -from PyQt5.QtCore import pyqtSlot +from PyQt5.QtGui import QStandardItemModel, QStandardItem +#from PyQt5.QtCore import QModelIndex +from PyQt5.QtCore import Qt, pyqtSlot -from PyQt5.QtWidgets import QFileDialog +from PyQt5.QtWidgets import QFileDialog, QMessageBox # Importing gui form from server_gui import Ui_MainWindow @@ -69,16 +67,24 @@ class MainWindow(QtWidgets.QMainWindow): self.ui.start_button.setEnabled(True) self.ui.takeoff_button.setEnabled(True) - @pyqtSlot() def send_starttime(self): dt = self.ui.start_delay_spin.value() - for row_num in range(model.rowCount()): - item = model.item(row_num, 0) - if item.isCheckable() and item.checkState() == Qt.Checked: - if True: # TODO checks for batt/selfckeck here - copter = Client.get_by_id(item.text()) - server.send_starttime(copter, dt) + reply = QMessageBox.question( + self, "Confirm operation", + "This operation will takeoff selected copters and start animation after {} seconds. Proceed?".format(dt), + QMessageBox.Yes | QMessageBox.No, QMessageBox.No + ) + if reply == QMessageBox.Yes: + print("Accepted") + for row_num in range(model.rowCount()): + item = model.item(row_num, 0) + if item.isCheckable() and item.checkState() == Qt.Checked: + if True: # TODO checks for batt/selfckeck here + copter = Client.get_by_id(item.text()) + server.send_starttime(copter, dt) + else: + print("Cancelled") @pyqtSlot() def stop_all(self): @@ -104,12 +110,21 @@ class MainWindow(QtWidgets.QMainWindow): @pyqtSlot() def takeoff_selected(self): - for row_num in range(model.rowCount()): - item = model.item(row_num, 0) - if item.isCheckable() and item.checkState() == Qt.Checked: - if True: # TODO checks for batt/selfckeck here - copter = Client.get_by_id(item.text()) - copter.send(Client.form_message("takeoff")) + reply = QMessageBox.question( + self, "Confirm operation", + "This operation will takeoff copters immediately. Proceed?", + QMessageBox.Yes | QMessageBox.No, QMessageBox.No + ) + if reply == QMessageBox.Yes: + print("Accepted") + for row_num in range(model.rowCount()): + item = model.item(row_num, 0) + if item.isCheckable() and item.checkState() == Qt.Checked: + if True: # TODO checks for batt/selfckeck here + copter = Client.get_by_id(item.text()) + copter.send(Client.form_message("takeoff")) + else: + print("Cancelled") @pyqtSlot() def land_all(self):