[gnome-break-timer] Use a bit field for PermissionsError



commit 3d116d3177f8283e50ce81bacbe62652b471ead2
Author: Dylan McCall <dylan dylanmccall ca>
Date:   Sun Nov 22 23:55:50 2020 -0800

    Use a bit field for PermissionsError

 src/settings/BreakManager.vala | 17 +++++++++++------
 src/settings/MainWindow.vala   |  7 ++++---
 2 files changed, 15 insertions(+), 9 deletions(-)
---
diff --git a/src/settings/BreakManager.vala b/src/settings/BreakManager.vala
index b395f2b..2ea406a 100644
--- a/src/settings/BreakManager.vala
+++ b/src/settings/BreakManager.vala
@@ -48,8 +48,9 @@ public class BreakManager : GLib.Object {
     public signal void break_status_available ();
     public signal void status_changed ();
 
+    [Flags]
     public enum PermissionsError {
-        NONE,
+        NONE = 0,
         AUTOSTART_NOT_ALLOWED,
         BACKGROUND_NOT_ALLOWED
     }
@@ -190,14 +191,18 @@ public class BreakManager : GLib.Object {
         bool background_allowed = (bool) results.get ("background");
         bool autostart_allowed = (bool) results.get ("autostart");
 
+        PermissionsError new_permissions_error = NONE;
+
         if (this.master_enabled && ! autostart_allowed) {
-            this.permissions_error = AUTOSTART_NOT_ALLOWED;
-        } else if (this.master_enabled && ! background_allowed) {
-            this.permissions_error = BACKGROUND_NOT_ALLOWED;
-        } else {
-            this.permissions_error = NONE;
+            new_permissions_error |= AUTOSTART_NOT_ALLOWED;
         }
 
+        if (this.master_enabled && ! background_allowed) {
+            new_permissions_error |= BACKGROUND_NOT_ALLOWED;
+        }
+
+        this.permissions_error = new_permissions_error;
+
         this.background_request = null;
     }
 
diff --git a/src/settings/MainWindow.vala b/src/settings/MainWindow.vala
index c4911fe..8d9291e 100644
--- a/src/settings/MainWindow.vala
+++ b/src/settings/MainWindow.vala
@@ -196,9 +196,10 @@ public class MainWindow : Gtk.ApplicationWindow, GLib.Initable {
     }
 
     private void on_break_manager_permissions_error_change () {
-        BreakManager.PermissionsError error_type = this.break_manager.permissions_error;
-        if (error_type == AUTOSTART_NOT_ALLOWED || error_type == BACKGROUND_NOT_ALLOWED) {
-            MessageBar message_bar = new PermissionsErrorMessageBar (this, error_type);
+        if (this.break_manager.permissions_error != NONE) {
+            MessageBar message_bar = new PermissionsErrorMessageBar (
+                this, this.break_manager.permissions_error
+            );
             this.show_message_bar ("permissions-error", message_bar);
         } else {
             this.hide_message_bar ("permissions-error");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]