Skip to content

Commit

Permalink
Issue-118: Updated UI with System async calls (#119)
Browse files Browse the repository at this point in the history
  • Loading branch information
dorschs57 committed May 7, 2021
1 parent af0d590 commit 481990f
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 9 deletions.
6 changes: 6 additions & 0 deletions python/fapolicy_analyzer/tests/mocks.py
Expand Up @@ -7,5 +7,11 @@ class mock_System:
def ancillary_trust(self):
return [self.mock_trust]

def ancillary_trust_async(self):
return [self.mock_trust]

def system_trust(self):
return [self.mock_trust]

def system_trust_async(self):
return [self.mock_trust]
10 changes: 8 additions & 2 deletions python/fapolicy_analyzer/ui/ancillary_trust_database_admin.py
@@ -1,7 +1,8 @@
import gi

gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gtk, GLib
from concurrent.futures import ThreadPoolExecutor
from fapolicy_analyzer import Changeset, System
from fapolicy_analyzer.util import fs
from .ui_widget import UIWidget
Expand All @@ -18,6 +19,7 @@ def __init__(self):
super().__init__()
self.system = System()
self.content = self.get_object("ancillaryTrustDatabaseAdmin")
self.executor = ThreadPoolExecutor(max_workers=1)

self.trustFileList = TrustFileList(
trust_func=self.__load_trust, markup_func=self.__status_markup
Expand Down Expand Up @@ -46,7 +48,11 @@ def __status_markup(self, status):
)

def __load_trust(self, callback):
callback(self.system.ancillary_trust())
def get_trust():
trust = self.system.ancillary_trust_async()
GLib.idle_add(callback, trust)

self.executor.submit(get_trust)

def get_content(self):
return self.content
Expand Down
11 changes: 4 additions & 7 deletions python/fapolicy_analyzer/ui/system_trust_database_admin.py
Expand Up @@ -3,8 +3,7 @@
gi.require_version("Gtk", "3.0")
from gi.repository import GLib
from events import Events
from threading import Thread
from time import sleep
from concurrent.futures import ThreadPoolExecutor
from fapolicy_analyzer import System
from fapolicy_analyzer.util import fs
from .trust_file_list import TrustFileList
Expand All @@ -21,6 +20,7 @@ def __init__(self):
UIWidget.__init__(self)
Events.__init__(self)
self.system = System()
self.executor = ThreadPoolExecutor(max_workers=1)

self.trustFileList = TrustFileList(
trust_func=self.__load_trust,
Expand All @@ -46,13 +46,10 @@ def __status_markup(self, status):

def __load_trust(self, callback):
def get_trust():
sleep(1)
trust = self.system.system_trust()
trust = self.system.system_trust_async()
GLib.idle_add(callback, trust)

thread = Thread(target=get_trust)
thread.daemon = True
thread.start()
self.executor.submit(get_trust)

def get_content(self):
return self.get_object("systemTrustDatabaseAdmin")
Expand Down

0 comments on commit 481990f

Please sign in to comment.