From 5d24c672b292369f8482a212d516987b05e00cc4 Mon Sep 17 00:00:00 2001 From: Dummerle Date: Mon, 19 Sep 2022 01:00:17 +0200 Subject: [PATCH] Catch Permission errors, when disabling and enabling EOS overlay --- rare/components/tabs/settings/widgets/eos.py | 24 +++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/rare/components/tabs/settings/widgets/eos.py b/rare/components/tabs/settings/widgets/eos.py index 27a064cb..7019282c 100644 --- a/rare/components/tabs/settings/widgets/eos.py +++ b/rare/components/tabs/settings/widgets/eos.py @@ -159,7 +159,13 @@ class EosWidget(QGroupBox, Ui_EosWidget): def change_enable(self): enabled = self.enabled_cb.isChecked() if not enabled: - eos.remove_registry_entries(self.current_prefix) + try: + eos.remove_registry_entries(self.current_prefix) + except PermissionError: + logger.error("Can't disable eos overlay") + QMessageBox.warning(self, "Error", self.tr( + "Failed to disable Overlay. Probably it is installed by Epic Games Launcher")) + return logger.info("Disabled Epic Overlay") self.enabled_info_label.setText(self.tr("Disabled")) else: @@ -185,8 +191,20 @@ class EosWidget(QGroupBox, Ui_EosWidget): return else: logger.info(f'Updating overlay registry entries from "{old_path}" to "{path}"') - eos.remove_registry_entries(self.current_prefix) - eos.add_registry_entries(path, self.current_prefix) + try: + eos.remove_registry_entries(self.current_prefix) + except PermissionError: + logger.error("Can't disable eos overlay") + QMessageBox.warning(self, "Error", self.tr( + "Failed to disable Overlay. Probably it is installed by Epic Games Launcher")) + return + try: + eos.add_registry_entries(path, self.current_prefix) + except PermissionError: + logger.error("Failed to disable eos overlay") + QMessageBox.warning(self, "Error", self.tr( + "Failed to enable EOS overlay. Maybe it is already installed by Epic Games Launcher")) + return self.enabled_info_label.setText(self.tr("Enabled")) logger.info(f'Enabled overlay at: {path}')