From 9f1b136e1840434e5fd44b49456095f860ef2d0b Mon Sep 17 00:00:00 2001 From: Gerhard Muendane Date: Tue, 22 Mar 2022 10:23:12 +0100 Subject: [PATCH] Solved Quitting after reverting to default settings does not ask to confirm. --- .../PreferencesWindow/PreferencesController.m | 70 +++++++++---------- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/Classes/Preferences/PreferencesWindow/PreferencesController.m b/Classes/Preferences/PreferencesWindow/PreferencesController.m index 5f3956898..2eb535fa3 100644 --- a/Classes/Preferences/PreferencesWindow/PreferencesController.m +++ b/Classes/Preferences/PreferencesWindow/PreferencesController.m @@ -739,26 +739,7 @@ - (IBAction) restartSEB:(id)sender { } // If settings changed since before opening preferences: - if ([self settingsChanged]) { - // Ask if edited settings should be applied or previously active settings restored - SEBApplySettingsAnswers answer = [self askToApplySettingsAlert]; - switch(answer) - { - case SEBApplySettingsAnswerDontApply: - { - // Don't apply edited settings and restart SEB - break; - } - - case SEBApplySettingsAnswerCancel: - { - // Cancel: Don't restart, restore possibly changed setting keys - [oldSettings restoreSettings]; - - return; - } - } - } + [self handlSettingsChanged:oldSettings]; // If opening the preferences window isn't allowed in these settings, // which is dangerous when being applied, we confirm the user knows what he's doing @@ -840,25 +821,15 @@ - (IBAction) quitSEB:(id)sender } } - } else if (!NSUserDefaults.userDefaultsPrivate) { + } + + // If settings changed since before opening preferences: + [self handlSettingsChanged:oldSettings]; + + if (!NSUserDefaults.userDefaultsPrivate) { /// Local client settings are active DDLogInfo(@"Client settings are active"); - // If settings changed: - if ([self settingsChanged]) { - DDLogInfo(@"Client settings have been changed, ask if they should be applied."); - // Ask if edited settings should be applied or previously active settings restored - SEBApplySettingsAnswers answer = [self askToApplySettingsAlert]; - switch(answer) - { - case SEBApplySettingsAnswerCancel: - { - // Cancel: Don't quit - DDLogInfo(@"User selected to cancel applying changed client settings, also abort quitting SEB."); - return; - } - } - } // If opening the preferences window isn't allowed in these settings, // which is dangerous when being applied, we confirm the user knows what he's doing @@ -889,6 +860,33 @@ - (IBAction) quitSEB:(id)sender } +- (void) handlSettingsChanged:(SEBEncapsulatedSettings *)oldSettings { + // If settings changed since before opening preferences: + if ([self settingsChanged]) { + DDLogInfo(@"Client settings have been changed, ask if they should be applied."); + // Ask if edited settings should be applied or previously active settings restored + SEBApplySettingsAnswers answer = [self askToApplySettingsAlert]; + switch(answer) + { + case SEBApplySettingsAnswerDontApply: + { + // Don't apply edited settings and restart SEB + break; + } + + case SEBApplySettingsAnswerCancel: + { + // Cancel: Don't restart, restore possibly changed setting keys + DDLogInfo(@"User selected to cancel applying changed client settings, also abort quitting SEB."); + [oldSettings restoreSettings]; + + return; + } + } + } +} + + - (IBAction) openSEBPrefs:(id)sender { // Check if passwords are confirmed and save them if yes