commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] [gnuradio] 81/101: grc: refactor: make gr.prefs() opti


From: git
Subject: [Commit-gnuradio] [gnuradio] 81/101: grc: refactor: make gr.prefs() optional (for testing)
Date: Thu, 16 Mar 2017 14:58:12 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

jcorgan pushed a commit to branch python3
in repository gnuradio.

commit 577cd09c42a02c7824bbd6f6c3a76c53dc114658
Author: Sebastian Koslowski <address@hidden>
Date:   Sun Sep 18 16:57:41 2016 -0600

    grc: refactor: make gr.prefs() optional (for testing)
---
 grc/core/Config.py       | 28 +++++++++++++++++++++-------
 grc/core/Platform.py     |  2 +-
 grc/gui/ActionHandler.py |  7 +------
 grc/gui/Config.py        | 23 ++++++++++++++++-------
 grc/main.py              |  2 +-
 5 files changed, 40 insertions(+), 22 deletions(-)

diff --git a/grc/core/Config.py b/grc/core/Config.py
index b65a421..3455a38 100644
--- a/grc/core/Config.py
+++ b/grc/core/Config.py
@@ -18,6 +18,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
 02110-1301, USA
 """
 
 from __future__ import absolute_import
+
 import os
 from os.path import expanduser, normpath, expandvars, exists
 
@@ -25,16 +26,14 @@ from . import Constants
 
 
 class Config(object):
-
-    key = 'grc'
     name = 'GNU Radio Companion (no gui)'
     license = __doc__.strip()
     website = 'http://gnuradio.org'
 
     hier_block_lib_dir = os.environ.get('GRC_HIER_PATH', 
Constants.DEFAULT_HIER_BLOCK_LIB_DIR)
 
-    def __init__(self, prefs_file, version, version_parts=None):
-        self.prefs = prefs_file
+    def __init__(self, version, version_parts=None, prefs=None):
+        self._gr_prefs = prefs if prefs else DummyPrefs()
         self.version = version
         self.version_parts = version_parts or version[1:].split('-', 
1)[0].split('.')[:3]
 
@@ -45,8 +44,8 @@ class Config(object):
         paths_sources = (
             self.hier_block_lib_dir,
             os.environ.get('GRC_BLOCKS_PATH', ''),
-            self.prefs.get_string('grc', 'local_blocks_path', ''),
-            self.prefs.get_string('grc', 'global_blocks_path', ''),
+            self._gr_prefs.get_string('grc', 'local_blocks_path', ''),
+            self._gr_prefs.get_string('grc', 'global_blocks_path', ''),
         )
 
         collected_paths = sum((paths.split(path_list_sep)
@@ -61,7 +60,22 @@ class Config(object):
     def default_flow_graph(self):
         user_default = (
             os.environ.get('GRC_DEFAULT_FLOW_GRAPH') or
-            self.prefs.get_string('grc', 'default_flow_graph', '') or
+            self._gr_prefs.get_string('grc', 'default_flow_graph', '') or
             os.path.join(self.hier_block_lib_dir, 'default_flow_graph.grc')
         )
         return user_default if exists(user_default) else 
Constants.DEFAULT_FLOW_GRAPH
+
+
+class DummyPrefs(object):
+
+    def get_string(self, category, item, default):
+        return str(default)
+
+    def set_string(self, category, item, value):
+        pass
+
+    def get_long(self, category, item, default):
+        return int(default)
+
+    def save(self):
+        pass
diff --git a/grc/core/Platform.py b/grc/core/Platform.py
index 7ef944b..1e43271 100644
--- a/grc/core/Platform.py
+++ b/grc/core/Platform.py
@@ -72,7 +72,7 @@ class Platform(Element):
         self.build_block_library()
 
     def __str__(self):
-        return 'Platform - {}({})'.format(self.config.key, self.config.name)
+        return 'Platform - {}'.format(self.config.name)
 
     @staticmethod
     def find_file_in_paths(filename, paths, cwd):
diff --git a/grc/gui/ActionHandler.py b/grc/gui/ActionHandler.py
index 42822ad..b10737d 100644
--- a/grc/gui/ActionHandler.py
+++ b/grc/gui/ActionHandler.py
@@ -514,12 +514,7 @@ class ActionHandler:
             file_paths = FileDialogs.OpenQSS(main, 
self.platform.config.install_prefix +
                                              '/share/gnuradio/themes/').run()
             if file_paths:
-                try:
-                    prefs = self.platform.config.prefs
-                    prefs.set_string("qtgui", "qss", file_paths[0])
-                    prefs.save()
-                except Exception as e:
-                    Messages.send("Failed to save QSS preference: " + str(e))
+                self.platform.config.default_qss_theme = file_paths[0]
         elif action == Actions.FLOW_GRAPH_CLOSE:
             main.close_page()
         elif action == Actions.FLOW_GRAPH_SAVE:
diff --git a/grc/gui/Config.py b/grc/gui/Config.py
index b6556ad..0f40e06 100644
--- a/grc/gui/Config.py
+++ b/grc/gui/Config.py
@@ -40,21 +40,21 @@ class Config(_Config):
 
     @property
     def editor(self):
-        return self.prefs.get_string('grc', 'editor', '')
+        return self._gr_prefs.get_string('grc', 'editor', '')
 
     @editor.setter
     def editor(self, value):
-        self.prefs.get_string('grc', 'editor', value)
-        self.prefs.save()
+        self._gr_prefs.get_string('grc', 'editor', value)
+        self._gr_prefs.save()
 
     @property
     def xterm_executable(self):
-        return self.prefs.get_string('grc', 'xterm_executable', 'xterm')
+        return self._gr_prefs.get_string('grc', 'xterm_executable', 'xterm')
 
     @property
     def default_canvas_size(self):
         try:  # ugly, but matches current code style
-            raw = self.prefs.get_string('grc', 'canvas_default_size', '1280, 
1024')
+            raw = self._gr_prefs.get_string('grc', 'canvas_default_size', 
'1280, 1024')
             value = tuple(int(x.strip('() ')) for x in raw.split(','))
             if len(value) != 2 or not all(300 < x < 4096 for x in value):
                 raise Exception()
@@ -66,8 +66,8 @@ class Config(_Config):
     @property
     def font_size(self):
         try:  # ugly, but matches current code style
-            font_size = self.prefs.get_long('grc', 'canvas_font_size',
-                                            Constants.DEFAULT_FONT_SIZE)
+            font_size = self._gr_prefs.get_long('grc', 'canvas_font_size',
+                                                Constants.DEFAULT_FONT_SIZE)
             if font_size <= 0:
                 raise Exception()
         except:
@@ -75,3 +75,12 @@ class Config(_Config):
             print("Error: invalid 'canvas_font_size' setting.", 
file=sys.stderr)
 
         return font_size
+
+    @property
+    def default_qss_theme(self):
+        return self._gr_prefs.get_string('qtgui', 'qss', '')
+
+    @default_qss_theme.setter
+    def default_qss_theme(self, value):
+        self._gr_prefs.set_string("qtgui", "qss", value)
+        self._gr_prefs.save()
\ No newline at end of file
diff --git a/grc/main.py b/grc/main.py
index dc84e16..40a61a2 100755
--- a/grc/main.py
+++ b/grc/main.py
@@ -50,9 +50,9 @@ def main():
         pass
 
     platform = Platform(
-        prefs_file=gr.prefs(),
         version=gr.version(),
         version_parts=(gr.major_version(), gr.api_version(), 
gr.minor_version()),
+        prefs=gr.prefs(),
         install_prefix=gr.prefix()
     )
     ActionHandler(args.flow_graphs, platform)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]