[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 10/25: grc: Variable editor tweaks.
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 10/25: grc: Variable editor tweaks. |
Date: |
Fri, 27 May 2016 19:14:58 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
jcorgan pushed a commit to branch master
in repository gnuradio.
commit e4ca985a3ba1d419f247b41a5d4c3b7657dc0356
Author: Seth Hitefield <address@hidden>
Date: Thu May 19 13:34:01 2016 -0400
grc: Variable editor tweaks.
---
grc/gui/ActionHandler.py | 2 +-
grc/gui/Actions.py | 2 +-
grc/gui/VariableEditor.py | 77 +++++++++++++++++++++++++++++++----------------
3 files changed, 53 insertions(+), 28 deletions(-)
diff --git a/grc/gui/ActionHandler.py b/grc/gui/ActionHandler.py
index d0410e0..13316af 100644
--- a/grc/gui/ActionHandler.py
+++ b/grc/gui/ActionHandler.py
@@ -454,7 +454,7 @@ class ActionHandler:
main.update_panel_visibility(main.VARIABLES, True)
else:
main.update_panel_visibility(main.VARIABLES, False)
-
Actions.TOGGLE_FLOW_GRAPH_VAR_EDITOR_SIDEBAR.set_sensitive(action.get_active())
+
#Actions.TOGGLE_FLOW_GRAPH_VAR_EDITOR_SIDEBAR.set_sensitive(action.get_active())
action.save_to_preferences()
elif action == Actions.TOGGLE_FLOW_GRAPH_VAR_EDITOR_SIDEBAR:
if self.init:
diff --git a/grc/gui/Actions.py b/grc/gui/Actions.py
index d96e80c..1763ff6 100644
--- a/grc/gui/Actions.py
+++ b/grc/gui/Actions.py
@@ -345,7 +345,7 @@ TOGGLE_FLOW_GRAPH_VAR_EDITOR = ToggleAction(
preference_name='variable_editor_visable',
)
TOGGLE_FLOW_GRAPH_VAR_EDITOR_SIDEBAR = ToggleAction(
- label='Move Variable Editor to the Sidebar',
+ label='Move the Variable Editor to the Sidebar',
tooltip='Move the variable editor to the sidebar',
default=False,
preference_name='variable_editor_sidebar',
diff --git a/grc/gui/VariableEditor.py b/grc/gui/VariableEditor.py
index 6d37a0f..7721f3b 100644
--- a/grc/gui/VariableEditor.py
+++ b/grc/gui/VariableEditor.py
@@ -17,7 +17,6 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
"""
-from itertools import chain
from operator import attrgetter
import pygtk
@@ -39,29 +38,29 @@ class VariableEditorContextMenu(gtk.Menu):
gtk.Menu.__init__(self)
self.imports = gtk.MenuItem("Add _Import")
- self.imports.connect('activate', var_edit._handle_action,
var_edit.ADD_IMPORT)
+ self.imports.connect('activate', var_edit.handle_action,
var_edit.ADD_IMPORT)
self.add(self.imports)
self.variables = gtk.MenuItem("Add _Variable")
- self.variables.connect('activate', var_edit._handle_action,
var_edit.ADD_VARIABLE)
+ self.variables.connect('activate', var_edit.handle_action,
var_edit.ADD_VARIABLE)
self.add(self.variables)
self.add(gtk.SeparatorMenuItem())
self.enable = gtk.MenuItem("_Enable")
- self.enable.connect('activate', var_edit._handle_action,
var_edit.ENABLE_BLOCK)
+ self.enable.connect('activate', var_edit.handle_action,
var_edit.ENABLE_BLOCK)
self.disable = gtk.MenuItem("_Disable")
- self.disable.connect('activate', var_edit._handle_action,
var_edit.DISABLE_BLOCK)
+ self.disable.connect('activate', var_edit.handle_action,
var_edit.DISABLE_BLOCK)
self.add(self.enable)
self.add(self.disable)
self.add(gtk.SeparatorMenuItem())
self.delete = gtk.MenuItem("_Delete")
- self.delete.connect('activate', var_edit._handle_action,
var_edit.DELETE_BLOCK)
+ self.delete.connect('activate', var_edit.handle_action,
var_edit.DELETE_BLOCK)
self.add(self.delete)
self.add(gtk.SeparatorMenuItem())
self.properties = gtk.MenuItem("_Properties...")
- self.properties.connect('activate', var_edit._handle_action,
var_edit.OPEN_PROPERTIES)
+ self.properties.connect('activate', var_edit.handle_action,
var_edit.OPEN_PROPERTIES)
self.add(self.properties)
self.show_all()
@@ -88,17 +87,22 @@ class VariableEditor(gtk.VBox):
self.platform = platform
self.get_flow_graph = get_flow_graph
self._block = None
+ self._mouse_button_pressed = False
# Only use the model to store the block reference and name.
# Generate everything else dynamically
self.treestore = gtk.TreeStore(gobject.TYPE_PYOBJECT, # Block
reference
gobject.TYPE_STRING) # Category and
block name
self.treeview = gtk.TreeView(self.treestore)
- self.treeview.set_enable_search(True)
- self.treeview.set_search_column(ID_INDEX)
+ self.treeview.set_enable_search(False)
+ self.treeview.set_search_column(-1)
+ #self.treeview.set_enable_search(True)
+ #self.treeview.set_search_column(ID_INDEX)
self.treeview.get_selection().set_mode('single')
self.treeview.set_headers_visible(True)
self.treeview.connect('button-press-event',
self._handle_mouse_button_press)
+ self.treeview.connect('button-release-event',
self._handle_mouse_button_release)
+ self.treeview.connect('motion-notify-event',
self._handle_motion_notify)
self.treeview.connect('key-press-event', self._handle_key_button_press)
# Block Name or Category
@@ -112,8 +116,11 @@ class VariableEditor(gtk.VBox):
id_column.set_fixed_width(100)
id_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
id_column.set_cell_data_func(self.id_cell, self.set_properties)
+ self.id_column = id_column
self.treeview.append_column(id_column)
self.treestore.set_sort_column_id(ID_INDEX, gtk.SORT_ASCENDING)
+ # For forcing resize
+ self._col_width = 0
# Block Value
self.value_cell = gtk.CellRendererText()
@@ -125,6 +132,7 @@ class VariableEditor(gtk.VBox):
value_column.set_min_width(100)
value_column.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE)
value_column.set_cell_data_func(self.value_cell, self.set_value)
+ self.value_column = value_column
self.treeview.append_column(value_column)
# Block Actions (Add, Remove)
@@ -162,19 +170,18 @@ class VariableEditor(gtk.VBox):
# Set defaults
value = None
- evaluated = None
self.set_tooltip_text(None)
# Block specific values
if block:
if block.get_key() == 'import':
value = block.get_param('import').get_value()
+ elif block.get_key() != "variable":
+ value = "<Open Properties>"
+ sp('editable', False)
+ sp('foreground', '#0D47A1')
else:
- if block.get_key() != "variable":
- value = "<Open Properties>"
- sp('editable', False)
- else:
- value = block.get_param('value').get_value()
+ value = block.get_param('value').get_value()
# Check if there are errors in the blocks.
# Show the block error as a tooltip
@@ -245,10 +252,10 @@ class VariableEditor(gtk.VBox):
block.get_param('value').set_value(new_text)
Actions.VARIABLE_EDITOR_UPDATE()
- def _handle_action(self, item, key, event=None):
+ def handle_action(self, item, key, event=None):
"""
Single handler for the different actions that can be triggered by the
context menu,
- key presses or mouse clicks. Also triggers an update of the flowgraph
and editor.
+ key presses or mouse clicks. Also triggers an update of the flow graph
and editor.
"""
if key == self.ADD_IMPORT:
self.get_flow_graph().add_new_block('import')
@@ -264,12 +271,12 @@ class VariableEditor(gtk.VBox):
confirmation_menu = gtk.Menu()
block_id =
self._block.get_param('id').get_value().replace("_", "__")
confirm = gtk.MenuItem("Delete {}".format(block_id))
- confirm.connect('activate', self._handle_action,
self.DELETE_BLOCK)
+ confirm.connect('activate', self.handle_action,
self.DELETE_BLOCK)
confirmation_menu.add(confirm)
confirmation_menu.show_all()
confirmation_menu.popup(None, None, None, event.button,
event.time)
else:
- self._handle_action(None, self.DELETE_BLOCK, None)
+ self.handle_action(None, self.DELETE_BLOCK, None)
elif key == self.ENABLE_BLOCK:
self._block.set_enabled(True)
elif key == self.DISABLE_BLOCK:
@@ -279,9 +286,13 @@ class VariableEditor(gtk.VBox):
def _handle_mouse_button_press(self, widget, event):
"""
Handles mouse button for several different events:
- - Doublc Click to open properties for advanced blocks
+ - Double Click to open properties for advanced blocks
- Click to add/remove blocks
"""
+ # Save the column width to see if it changes on button_release
+ self._mouse_button_pressed = True
+ self._col_width = self.id_column.get_width()
+
path = widget.get_path_at_pos(int(event.x), int(event.y))
if path:
# If there is a valid path, then get the row, column and block
selected.
@@ -294,7 +305,7 @@ class VariableEditor(gtk.VBox):
if self._block and event.type == gtk.gdk._2BUTTON_PRESS:
# Open the advanced dialog if it is a gui variable
if self._block.get_key() not in ("variable", "import"):
- self._handle_action(None, self.OPEN_PROPERTIES,
event=event)
+ self.handle_action(None, self.OPEN_PROPERTIES,
event=event)
return True
if event.type == gtk.gdk.BUTTON_PRESS:
# User is adding/removing blocks
@@ -302,12 +313,12 @@ class VariableEditor(gtk.VBox):
if path[2] > col.cell_get_position(self.action_cell)[0]:
if row[1] == "Imports":
# Add a new import block.
- self._handle_action(None, self.ADD_IMPORT,
event=event)
+ self.handle_action(None, self.ADD_IMPORT,
event=event)
elif row[1] == "Variables":
# Add a new variable block
- self._handle_action(None, self.ADD_VARIABLE,
event=event)
+ self.handle_action(None, self.ADD_VARIABLE,
event=event)
else:
- self._handle_action(None, self.DELETE_CONFIRM,
event=event)
+ self.handle_action(None, self.DELETE_CONFIRM,
event=event)
return True
elif event.button == 3 and event.type == gtk.gdk.BUTTON_PRESS:
if self._block:
@@ -315,15 +326,29 @@ class VariableEditor(gtk.VBox):
else:
self._context_menu.update_sensitive(False)
self._context_menu.popup(None, None, None, event.button,
event.time)
+
+ # Null handler. Stops the treeview from handling double click
events.
+ if event.type == gtk.gdk._2BUTTON_PRESS:
+ return True
+ return False
+
+ def _handle_mouse_button_release(self, widget, event):
+ self._mouse_button_pressed = False
+ return False
+
+ def _handle_motion_notify(self, widget, event):
+ # Check to see if the column size has changed
+ if self._mouse_button_pressed and self.id_column.get_width() !=
self._col_width:
+ self.value_column.queue_resize()
return False
def _handle_key_button_press(self, widget, event):
model, path = self.treeview.get_selection().get_selected_rows()
if path and self._block:
if self._block.get_enabled() and event.string == "d":
- self._handle_action(None, self.DISABLE_BLOCK, None)
+ self.handle_action(None, self.DISABLE_BLOCK, None)
return True
elif not self._block.get_enabled() and event.string == "e":
- self._handle_action(None, self.ENABLE_BLOCK, None)
+ self.handle_action(None, self.ENABLE_BLOCK, None)
return True
return False
- [Commit-gnuradio] [gnuradio] 04/25: grc: optionally hide all variable blocks, (continued)
- [Commit-gnuradio] [gnuradio] 04/25: grc: optionally hide all variable blocks, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 21/25: grc: function probe block: relabel and move value param, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 24/25: Merge remote-tracking branch 'gnuradio-wg-grc/master_grcwg', git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 07/25: grc: remove 'Showing: ...' messages, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 12/25: grc: add warning for block flagged deprecated, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 20/25: grc: faulty callback code if setter call contained a variable block id, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 14/25: Revert "grc: fix callback evaluation", git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 18/25: modtool: Added version support for OOTs, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 19/25: grc-refactor: minor clean-up of callback generator code, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 15/25: grc: fix flow graph execution (amends ActionHandler refactoring), git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 10/25: grc: Variable editor tweaks.,
git <=
- [Commit-gnuradio] [gnuradio] 25/25: Merge remote-tracking branch 'dkozel/uhd_lo_api', git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 16/25: Added controls for importing, exporting, and sharing LOs, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 17/25: grc-refactor: fix custom canvas font sizes, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 08/25: grc: Added the variable editor panel, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 09/25: grc: Added context menu to variable editor, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 06/25: grc: remove some dead code in FlowGraph.what_is_selected(), git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 23/25: Merge remote-tracking branch 'mbr0wn/modtool/versioning', git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 02/25: grc: block alignment tools, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 03/25: grc: minor fixes/clean-ups, git, 2016/05/27
- [Commit-gnuradio] [gnuradio] 05/25: grc: some action handler refactoring, add flow_graph.update() wrapper, git, 2016/05/27