[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 28/101: grc: refactor: block state handling
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 28/101: grc: refactor: block state handling |
Date: |
Thu, 16 Mar 2017 14:58:01 +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 4f29b9ae0b518bcc41038d6d300429e5d656d8e0
Author: Sebastian Koslowski <address@hidden>
Date: Fri Jul 8 15:18:58 2016 +0200
grc: refactor: block state handling
---
grc/core/Block.py | 25 +++++++++++++------------
grc/gui/ActionHandler.py | 23 +++++++++--------------
grc/gui/FlowGraph.py | 25 +++++--------------------
3 files changed, 27 insertions(+), 46 deletions(-)
diff --git a/grc/core/Block.py b/grc/core/Block.py
index 743c9de..ec65a1a 100644
--- a/grc/core/Block.py
+++ b/grc/core/Block.py
@@ -50,8 +50,7 @@ class Block(Element):
is_block = True
- # block states
- DISABLED, ENABLED, BYPASSED = range(3)
+ STATE_LABELS = ['disabled', 'enabled', 'bypassed']
def __init__(self, flow_graph, n):
"""
@@ -410,9 +409,9 @@ class Block(Element):
DISABLED - 2
"""
try:
- return int(self.params['_enabled'].get_value())
+ return self.STATE_LABELS[int(self.params['_enabled'].get_value())]
except ValueError:
- return self.ENABLED
+ return 'enabled'
@state.setter
def state(self, value):
@@ -424,9 +423,11 @@ class Block(Element):
BYPASSED - 1
DISABLED - 2
"""
- if value not in [self.ENABLED, self.BYPASSED, self.DISABLED]:
- value = self.ENABLED
- self.params['_enabled'].set_value(str(value))
+ try:
+ encoded = str(self.STATE_LABELS.index(value))
+ except ValueError:
+ encoded = str(self.STATE_LABELS.index('enabled'))
+ self.params['_enabled'].set_value(encoded)
# Enable/Disable Aliases
def get_enabled(self):
@@ -436,7 +437,7 @@ class Block(Element):
Returns:
true for enabled
"""
- return self.state != self.DISABLED
+ return self.state != 'disabled'
def set_enabled(self, enabled):
"""
@@ -449,7 +450,7 @@ class Block(Element):
True if block changed state
"""
old_state = self.state
- new_state = self.ENABLED if enabled else self.DISABLED
+ new_state = 'enabled' if enabled else 'disabled'
self.state = new_state
return old_state != new_state
@@ -458,7 +459,7 @@ class Block(Element):
"""
Check if the block is bypassed
"""
- return self.state == self.BYPASSED
+ return self.state == 'bypassed'
def set_bypassed(self):
"""
@@ -467,8 +468,8 @@ class Block(Element):
Returns:
True if block chagnes state
"""
- if self.state != self.BYPASSED and self.can_bypass():
- self.state = self.BYPASSED
+ if self.state != 'bypassed' and self.can_bypass():
+ self.state = 'bypassed'
return True
return False
diff --git a/grc/gui/ActionHandler.py b/grc/gui/ActionHandler.py
index 732c48f..bb2f488 100644
--- a/grc/gui/ActionHandler.py
+++ b/grc/gui/ActionHandler.py
@@ -172,18 +172,13 @@ class ActionHandler:
##################################################
# Enable/Disable
##################################################
- elif action == Actions.BLOCK_ENABLE:
- if flow_graph.enable_selected(True):
- flow_graph_update()
- page.state_cache.save_new_state(flow_graph.export_data())
- page.saved = False
- elif action == Actions.BLOCK_DISABLE:
- if flow_graph.enable_selected(False):
- flow_graph_update()
- page.state_cache.save_new_state(flow_graph.export_data())
- page.saved = False
- elif action == Actions.BLOCK_BYPASS:
- if flow_graph.bypass_selected():
+ elif action in (Actions.BLOCK_ENABLE, Actions.BLOCK_DISABLE,
Actions.BLOCK_BYPASS):
+ changed = flow_graph.change_state_selected(new_state={
+ Actions.BLOCK_ENABLE: 'enabled',
+ Actions.BLOCK_DISABLE: 'disabled',
+ Actions.BLOCK_BYPASS: 'bypassed',
+ }[action])
+ if changed:
flow_graph_update()
page.state_cache.save_new_state(flow_graph.export_data())
page.saved = False
@@ -670,9 +665,9 @@ class ActionHandler:
Actions.BLOCK_COPY.set_sensitive(bool(selected_blocks))
Actions.BLOCK_PASTE.set_sensitive(bool(self.clipboard))
#update enable/disable/bypass
- can_enable = any(block.state != block.ENABLED
+ can_enable = any(block.state != 'enabled'
for block in selected_blocks)
- can_disable = any(block.state != block.DISABLED
+ can_disable = any(block.state != 'disabled'
for block in selected_blocks)
can_bypass_all = (
all(block.can_bypass() for block in selected_blocks) and
diff --git a/grc/gui/FlowGraph.py b/grc/gui/FlowGraph.py
index dc80a4c..87bd91d 100644
--- a/grc/gui/FlowGraph.py
+++ b/grc/gui/FlowGraph.py
@@ -273,35 +273,20 @@ class FlowGraph(Element, _Flowgraph):
"""
return any(sb.port_controller_modify(direction) for sb in
self.get_selected_blocks())
- def enable_selected(self, enable):
+ def change_state_selected(self, new_state):
"""
Enable/disable the selected blocks.
Args:
- enable: true to enable
+ new_state: a block state
Returns:
true if changed
"""
changed = False
- for selected_block in self.get_selected_blocks():
- if selected_block.set_enabled(enable):
- changed = True
- return changed
-
- def bypass_selected(self):
- """
- Bypass the selected blocks.
-
- Args:
- None
- Returns:
- true if changed
- """
- changed = False
- for selected_block in self.get_selected_blocks():
- if selected_block.set_bypassed():
- changed = True
+ for block in self.selected_blocks():
+ changed |= block.state != new_state
+ block.state = new_state
return changed
def move_selected(self, delta_coordinate):
- [Commit-gnuradio] [gnuradio] 20/101: grc-refactor: Block: remove name getter, (continued)
- [Commit-gnuradio] [gnuradio] 20/101: grc-refactor: Block: remove name getter, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 15/101: grc: gtk3: fix paste and domain color settings, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 08/101: grc: gtk3: remove canvas size and enable zooming, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 06/101: grc: gtk3: update props dialog, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 17/101: grc-refactor: move more port type color stuff to gui, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 09/101: grc-refactor: replace some unnecessary getters, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 24/101: grc-refactor: the hopeless cause of bus ports..., git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 25/101: Merge branch 'next_grcwg' into gtk3 (v3.7.10 release), git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 34/101: grc: fix parent getter in rewrite_epy_block, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 13/101: grc-refactor: Connections, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 28/101: grc: refactor: block state handling,
git <=
- [Commit-gnuradio] [gnuradio] 26/101: grc: gtk3: enable block comments, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 12/101: grc-refactor: remove odict, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 36/101: grc: keep list of active ports in core blocks, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 23/101: grc-refactor: make block.params a dict, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 29/101: grc: refactor: block states are no longer hidden params, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 37/101: grc: refactor: fixup selection code and core connection changes, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 22/101: grc-refactor: Block: make more public attribs, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 35/101: grc: gtk3: quick fix for file dialogs, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 41/101: grc: gtk3: fix PythonEditorParam widget, git, 2017/03/16
- [Commit-gnuradio] [gnuradio] 02/101: gtk3: add flowgraph draw code and other gtk3 fixes (WIP), git, 2017/03/16