This commit is contained in:
Auric Vente 2024-07-21 06:59:17 -06:00
parent 6486cea6d8
commit 2ce7464786
2 changed files with 7 additions and 47 deletions

View File

@ -8,7 +8,6 @@ from typing import ClassVar, Any
from .config import Config
from .utils import Utils
from .storage import Storage
from .window import Window
class Ant:
@ -89,33 +88,6 @@ class Ants:
Ants.save()
Game.update_info()
@staticmethod
def terminate() -> None:
from .game import Game
ant = Ants.random_ant()
if not ant:
return
Ants.ants.remove(ant)
Ants.save()
Ants.announce_terminate(ant)
Game.update_info()
@staticmethod
def terminate_all() -> None:
from .game import Game
def action() -> None:
Ants.ants = []
Ants.save()
Window.clear_view()
Game.update_info()
Window.confirm("Terminate all ants?", action)
@staticmethod
def random_ant(ignore: list[Ant] | None = None) -> Ant | None:
if ignore:

View File

@ -57,14 +57,15 @@ class ComboBoxDialog(QDialog): # type: ignore
self.button_layout = QHBoxLayout()
self.ok_button = QPushButton("OK")
self.ok_button.clicked.connect(self.accept)
self.button_layout.addWidget(self.ok_button)
self.cancel_button = QPushButton("Cancel")
self.cancel_button.clicked.connect(self.reject)
self.button_layout.addWidget(self.cancel_button)
self.ok_button = QPushButton("OK")
self.ok_button.clicked.connect(self.accept)
self.ok_button.setDefault(True)
self.button_layout.addWidget(self.ok_button)
self.layout.addLayout(self.button_layout)
self.setLayout(self.layout)
@ -282,21 +283,6 @@ class Window:
def expand(widget: QWidget) -> None:
widget.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
@staticmethod
def confirm(message: str, action: Callable[..., Any]) -> None:
msg_box = QMessageBox()
msg_box.setIcon(QMessageBox.Icon.Question)
msg_box.setWindowTitle("Confirm")
msg_box.setText(message)
msg_box.setStandardButtons(
QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No
)
msg_box.setDefaultButton(QMessageBox.StandardButton.No)
msg_box.button(QMessageBox.StandardButton.Yes).clicked.connect(action)
msg_box.exec()
@staticmethod
def clear_view() -> None:
while Window.view.count():
@ -361,6 +347,7 @@ class Window:
@staticmethod
def alert(message: str) -> None:
msg_box = QMessageBox()
msg_box.setWindowFlags(Qt.Popup)
msg_box.setIcon(QMessageBox.Information)
msg_box.setText(message)
msg_box.setWindowTitle("Information")
@ -370,6 +357,7 @@ class Window:
@staticmethod
def prompt_combobox(message: str, options: list[str], defindex: int = 0) -> str:
dialog = ComboBoxDialog(message, options, defindex)
dialog.setWindowFlags(Qt.Popup)
if dialog.exec() == QDialog.Accepted:
return dialog.get_selection()