summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2016-02-16 21:04:33 +0100
committerSebastian Koslowski <koslowski@kit.edu>2016-04-04 15:34:49 +0200
commitfc05698ba1c292a3185ccff26f730320d7d27de6 (patch)
treefa74ad9d53495de1e0bd97ab7b5c6332e3c3e6a0
parent5e383b0b6ef90cc555803856b82609dca6f8186a (diff)
grc: add select all action
-rw-r--r--grc/gui/ActionHandler.py3
-rw-r--r--grc/gui/Actions.py6
-rw-r--r--grc/gui/Bars.py1
-rw-r--r--grc/gui/FlowGraph.py6
4 files changed, 15 insertions, 1 deletions
diff --git a/grc/gui/ActionHandler.py b/grc/gui/ActionHandler.py
index 0f227d08f5..8812704b26 100644
--- a/grc/gui/ActionHandler.py
+++ b/grc/gui/ActionHandler.py
@@ -143,6 +143,7 @@ class ActionHandler:
Actions.TOGGLE_SHOW_CODE_PREVIEW_TAB,
Actions.TOGGLE_SHOW_FLOWGRAPH_COMPLEXITY,
Actions.FLOW_GRAPH_OPEN_QSS_THEME,
+ Actions.SELECT_ALL,
):
action.set_sensitive(True)
if hasattr(action, 'load_from_preferences'):
@@ -162,6 +163,8 @@ class ActionHandler:
pass #do nothing, update routines below
elif action == Actions.NOTHING_SELECT:
self.get_flow_graph().unselect()
+ elif action == Actions.SELECT_ALL:
+ self.get_flow_graph().select_all()
##################################################
# Enable/Disable
##################################################
diff --git a/grc/gui/Actions.py b/grc/gui/Actions.py
index d53375f291..354e536a82 100644
--- a/grc/gui/Actions.py
+++ b/grc/gui/Actions.py
@@ -226,6 +226,12 @@ FLOW_GRAPH_REDO = Action(
keypresses=(gtk.keysyms.y, gtk.gdk.CONTROL_MASK),
)
NOTHING_SELECT = Action()
+SELECT_ALL = Action(
+ label='Select _All',
+ tooltip='Select all blocks and connections in the flow graph',
+ stock_id=gtk.STOCK_SELECT_ALL,
+ keypresses=(gtk.keysyms.a, gtk.gdk.CONTROL_MASK),
+)
ELEMENT_SELECT = Action()
ELEMENT_CREATE = Action()
ELEMENT_DELETE = Action(
diff --git a/grc/gui/Bars.py b/grc/gui/Bars.py
index 19f041f508..259aa6ed8b 100644
--- a/grc/gui/Bars.py
+++ b/grc/gui/Bars.py
@@ -82,6 +82,7 @@ MENU_BAR_LIST = (
Actions.BLOCK_COPY,
Actions.BLOCK_PASTE,
Actions.ELEMENT_DELETE,
+ Actions.SELECT_ALL,
None,
Actions.BLOCK_ROTATE_CCW,
Actions.BLOCK_ROTATE_CW,
diff --git a/grc/gui/FlowGraph.py b/grc/gui/FlowGraph.py
index 63fd841218..e940661a1d 100644
--- a/grc/gui/FlowGraph.py
+++ b/grc/gui/FlowGraph.py
@@ -49,7 +49,7 @@ class FlowGraph(Element):
#important vars dealing with mouse event tracking
self.element_moved = False
self.mouse_pressed = False
- self.unselect()
+ self._selected_elements = []
self.press_coor = (0, 0)
#selected ports
self._old_selected_port = None
@@ -429,6 +429,10 @@ class FlowGraph(Element):
"""
self._selected_elements = []
+ def select_all(self):
+ """Select all blocks in the flow graph"""
+ self._selected_elements = list(self.get_elements())
+
def what_is_selected(self, coor, coor_m=None):
"""
What is selected?