2024-01-03 09:31:25 +13:00
|
|
|
from PyQt5.QtCore import pyqtSignal
|
2021-12-24 22:09:50 +13:00
|
|
|
from PyQt5.QtWidgets import (
|
|
|
|
QVBoxLayout,
|
|
|
|
QCheckBox,
|
|
|
|
)
|
2022-10-23 01:41:49 +13:00
|
|
|
|
2023-01-25 23:59:00 +13:00
|
|
|
from rare.models.game import RareGame
|
|
|
|
from rare.models.install import UninstallOptionsModel
|
2022-07-27 02:58:17 +12:00
|
|
|
from rare.utils.misc import icon
|
2024-01-03 09:31:25 +13:00
|
|
|
from rare.widgets.dialogs import ButtonDialog, dialog_title_game
|
2021-04-06 21:00:13 +12:00
|
|
|
|
|
|
|
|
2024-01-03 09:31:25 +13:00
|
|
|
class UninstallDialog(ButtonDialog):
|
2023-01-25 23:59:00 +13:00
|
|
|
result_ready = pyqtSignal(UninstallOptionsModel)
|
|
|
|
|
|
|
|
def __init__(self, rgame: RareGame, options: UninstallOptionsModel, parent=None):
|
|
|
|
super(UninstallDialog, self).__init__(parent=parent)
|
2023-02-19 06:36:49 +13:00
|
|
|
header = self.tr("Uninstall")
|
2024-01-03 09:31:25 +13:00
|
|
|
self.setWindowTitle(dialog_title_game(header, rgame.app_title))
|
2024-01-21 03:45:44 +13:00
|
|
|
self.setSubtitle(dialog_title_game(header, rgame.app_title))
|
2021-04-06 21:00:13 +12:00
|
|
|
|
2024-01-03 09:31:25 +13:00
|
|
|
self.keep_files = QCheckBox(self.tr("Keep files"))
|
|
|
|
self.keep_files.setChecked(bool(options.keep_files))
|
2023-09-09 04:38:39 +12:00
|
|
|
self.keep_files.setEnabled(not rgame.is_overlay)
|
2021-04-06 21:00:13 +12:00
|
|
|
|
2024-01-03 09:31:25 +13:00
|
|
|
self.keep_config = QCheckBox(self.tr("Keep configuation"))
|
|
|
|
self.keep_config.setChecked(bool(options.keep_config))
|
2023-09-09 04:38:39 +12:00
|
|
|
self.keep_config.setEnabled(not rgame.is_overlay)
|
|
|
|
|
|
|
|
self.keep_overlay_keys = QCheckBox(self.tr("Keep EOS Overlay registry keys"))
|
|
|
|
self.keep_overlay_keys.setChecked(bool(options.keep_overlay_keys))
|
|
|
|
self.keep_overlay_keys.setEnabled(rgame.is_overlay)
|
2021-04-06 21:00:13 +12:00
|
|
|
|
2024-01-03 09:31:25 +13:00
|
|
|
layout = QVBoxLayout()
|
|
|
|
layout.addWidget(self.keep_files)
|
|
|
|
layout.addWidget(self.keep_config)
|
2023-09-09 04:38:39 +12:00
|
|
|
layout.addWidget(self.keep_overlay_keys)
|
2023-01-25 23:59:00 +13:00
|
|
|
|
2024-01-03 09:31:25 +13:00
|
|
|
self.setCentralLayout(layout)
|
2023-01-25 23:59:00 +13:00
|
|
|
|
2024-01-03 09:31:25 +13:00
|
|
|
self.accept_button.setText(self.tr("Uninstall"))
|
|
|
|
self.accept_button.setIcon(icon("ri.uninstall-line"))
|
|
|
|
self.accept_button.setObjectName("UninstallButton")
|
2023-01-25 23:59:00 +13:00
|
|
|
|
2023-12-20 07:53:21 +13:00
|
|
|
if rgame.sdl_name is not None:
|
2022-10-23 01:41:49 +13:00
|
|
|
self.keep_config.setChecked(True)
|
|
|
|
|
2023-01-25 23:59:00 +13:00
|
|
|
self.options: UninstallOptionsModel = options
|
2021-04-06 21:00:13 +12:00
|
|
|
|
2024-01-03 09:31:25 +13:00
|
|
|
def done_handler(self) -> None:
|
2023-01-25 23:59:00 +13:00
|
|
|
self.result_ready.emit(self.options)
|
2021-04-06 21:00:13 +12:00
|
|
|
|
2024-01-03 09:31:25 +13:00
|
|
|
def accept_handler(self):
|
|
|
|
self.options.values = (
|
|
|
|
True,
|
|
|
|
self.keep_files.isChecked(),
|
|
|
|
self.keep_config.isChecked(),
|
2023-09-09 04:38:39 +12:00
|
|
|
self.keep_overlay_keys.isChecked(),
|
2024-01-03 09:31:25 +13:00
|
|
|
)
|
2021-04-06 21:00:13 +12:00
|
|
|
|
2024-01-03 09:31:25 +13:00
|
|
|
def reject_handler(self):
|
2023-09-09 04:38:39 +12:00
|
|
|
self.options.values = (None, None, None, None)
|