devel #49

Open
minergenon wants to merge 11 commits from minergenon/winehelper:devel into master
Showing only changes of commit c1e58bb8a1 - Show all commits

View File

@@ -368,29 +368,24 @@ class DependencyManager:
def dialog_close_handler(event): def dialog_close_handler(event):
"""Обрабатывает закрытие окна во время установки зависимостей.""" """Обрабатывает закрытие окна во время установки зависимостей."""
if process.state() == QProcess.Running: if process.state() == QProcess.Running:
msg_box = QMessageBox(dialog) # QMessageBox без кнопок может некорректно обрабатывать закрытие.
msg_box.setMinimumWidth(900) # Используем простой QDialog для надежности.
msg_box.setIcon(QMessageBox.Question) info_dialog = QDialog(dialog)
msg_box.setWindowTitle("Прервать установку?") info_dialog.setWindowTitle("Идет установка")
msg_box.setText( info_dialog.setModal(True)
"<p style='white-space: pre;'>Установка зависимостей еще не завершена.</p>" info_dialog.setFixedSize(450, 150)
"<p style='white-space: pre;'>Вы действительно хотите прервать процесс?</p>"
"<p style='white-space: pre;'>Это закроет только окно программы.<br>" layout = QVBoxLayout(info_dialog)
"Процесс установки зависимостей будет продолжен.<p>" label = QLabel(
"<h3>Установка зависимостей еще не завершена.</h3>"
"<p>Пожалуйста, дождитесь окончания процесса.</p>"
"<p>Закрыть основное окно можно будет после завершения установки.</p>"
) )
label.setTextFormat(Qt.RichText)
label.setAlignment(Qt.AlignCenter)
layout.addWidget(label)
yes_button = msg_box.addButton("Да, прервать", QMessageBox.YesRole) info_dialog.exec_()
no_button = msg_box.addButton("Нет", QMessageBox.NoRole)
msg_box.setDefaultButton(no_button)
msg_box.exec_()
if msg_box.clickedButton() == yes_button:
process.readyRead.disconnect()
process.finished.disconnect()
process.terminate()
event.accept()
else:
event.ignore() event.ignore()
else: else:
event.accept() event.accept()