diff options
Diffstat (limited to 'grc/gui/Actions.py')
-rw-r--r-- | grc/gui/Actions.py | 182 |
1 files changed, 92 insertions, 90 deletions
diff --git a/grc/gui/Actions.py b/grc/gui/Actions.py index 9b2af36b93..b2745c995a 100644 --- a/grc/gui/Actions.py +++ b/grc/gui/Actions.py @@ -17,9 +17,11 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA """ -import pygtk -pygtk.require('2.0') -import gtk +import gi +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk +from gi.repository import Gdk +from gi.repository import GObject import Preferences @@ -29,7 +31,7 @@ NO_MODS_MASK = 0 # Actions API ######################################################################## _actions_keypress_dict = dict() -_keymap = gtk.gdk.keymap_get_default() +_keymap = Gdk.Keymap.get_default() _used_mods_mask = NO_MODS_MASK @@ -47,9 +49,9 @@ def handle_key_press(event): _used_mods_mask = reduce(lambda x, y: x | y, [mod_mask for keyval, mod_mask in _actions_keypress_dict], NO_MODS_MASK) # extract the key value and the consumed modifiers keyval, egroup, level, consumed = _keymap.translate_keyboard_state( - event.hardware_keycode, event.state, event.group) + event.hardware_keycode, event.get_state(), event.group) # get the modifier mask and ignore irrelevant modifiers - mod_mask = event.state & ~consumed & _used_mods_mask + mod_mask = event.get_state() & ~consumed & _used_mods_mask # look up the keypress and call the action try: _actions_keypress_dict[(keyval, mod_mask)]() @@ -64,7 +66,7 @@ _all_actions_list = list() def get_all_actions(): return _all_actions_list -_accel_group = gtk.AccelGroup() +_accel_group = Gtk.AccelGroup() def get_accel_group(): @@ -91,7 +93,7 @@ class _ActionBase(object): accel_path = '<main>/' + self.get_name() self.set_accel_group(get_accel_group()) self.set_accel_path(accel_path) - gtk.accel_map_add_entry(accel_path, keyval, mod_mask) + Gtk.AccelMap.add_entry(accel_path, keyval, mod_mask) self.args = None def __str__(self): @@ -114,9 +116,9 @@ class _ActionBase(object): self.emit('activate') -class Action(gtk.Action, _ActionBase): +class Action(Gtk.Action, _ActionBase): """ - A custom Action class based on gtk.Action. + A custom Action class based on Gtk.Action. Pass additional arguments such as keypresses. """ @@ -127,18 +129,18 @@ class Action(gtk.Action, _ActionBase): Args: key_presses: a tuple of (keyval1, mod_mask1, keyval2, mod_mask2, ...) - the: regular gtk.Action parameters (defaults to None) + the: regular Gtk.Action parameters (defaults to None) """ if name is None: name = label - gtk.Action.__init__(self, name=name, label=label, tooltip=tooltip, + GObject.GObject.__init__(self, name=name, label=label, tooltip=tooltip, stock_id=stock_id) _ActionBase.__init__(self, label, keypresses) -class ToggleAction(gtk.ToggleAction, _ActionBase): +class ToggleAction(Gtk.ToggleAction, _ActionBase): """ - A custom Action class based on gtk.ToggleAction. + A custom Action class based on Gtk.ToggleAction. Pass additional arguments such as keypresses. """ @@ -149,11 +151,11 @@ class ToggleAction(gtk.ToggleAction, _ActionBase): Args: key_presses: a tuple of (keyval1, mod_mask1, keyval2, mod_mask2, ...) - the: regular gtk.Action parameters (defaults to None) + the: regular Gtk.Action parameters (defaults to None) """ if name is None: name = label - gtk.ToggleAction.__init__(self, name=name, label=label, + GObject.GObject.__init__(self, name=name, label=label, tooltip=tooltip, stock_id=stock_id) _ActionBase.__init__(self, label, keypresses) self.preference_name = preference_name @@ -177,84 +179,84 @@ VARIABLE_EDITOR_UPDATE = Action() FLOW_GRAPH_NEW = Action( label='_New', tooltip='Create a new flow graph', - stock_id=gtk.STOCK_NEW, - keypresses=(gtk.keysyms.n, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_NEW, + keypresses=(Gdk.KEY_n, Gdk.ModifierType.CONTROL_MASK), ) FLOW_GRAPH_OPEN = Action( label='_Open', tooltip='Open an existing flow graph', - stock_id=gtk.STOCK_OPEN, - keypresses=(gtk.keysyms.o, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_OPEN, + keypresses=(Gdk.KEY_o, Gdk.ModifierType.CONTROL_MASK), ) FLOW_GRAPH_OPEN_RECENT = Action( label='Open _Recent', tooltip='Open a recently used flow graph', - stock_id=gtk.STOCK_OPEN, + stock_id=Gtk.STOCK_OPEN, ) FLOW_GRAPH_SAVE = Action( label='_Save', tooltip='Save the current flow graph', - stock_id=gtk.STOCK_SAVE, - keypresses=(gtk.keysyms.s, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_SAVE, + keypresses=(Gdk.KEY_s, Gdk.ModifierType.CONTROL_MASK), ) FLOW_GRAPH_SAVE_AS = Action( label='Save _As', tooltip='Save the current flow graph as...', - stock_id=gtk.STOCK_SAVE_AS, - keypresses=(gtk.keysyms.s, gtk.gdk.CONTROL_MASK | gtk.gdk.SHIFT_MASK), + stock_id=Gtk.STOCK_SAVE_AS, + keypresses=(Gdk.KEY_s, Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK), ) FLOW_GRAPH_CLOSE = Action( label='_Close', tooltip='Close the current flow graph', - stock_id=gtk.STOCK_CLOSE, - keypresses=(gtk.keysyms.w, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_CLOSE, + keypresses=(Gdk.KEY_w, Gdk.ModifierType.CONTROL_MASK), ) APPLICATION_INITIALIZE = Action() APPLICATION_QUIT = Action( label='_Quit', tooltip='Quit program', - stock_id=gtk.STOCK_QUIT, - keypresses=(gtk.keysyms.q, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_QUIT, + keypresses=(Gdk.KEY_q, Gdk.ModifierType.CONTROL_MASK), ) FLOW_GRAPH_UNDO = Action( label='_Undo', tooltip='Undo a change to the flow graph', - stock_id=gtk.STOCK_UNDO, - keypresses=(gtk.keysyms.z, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_UNDO, + keypresses=(Gdk.KEY_z, Gdk.ModifierType.CONTROL_MASK), ) FLOW_GRAPH_REDO = Action( label='_Redo', tooltip='Redo a change to the flow graph', - stock_id=gtk.STOCK_REDO, - keypresses=(gtk.keysyms.y, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_REDO, + keypresses=(Gdk.KEY_y, Gdk.ModifierType.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), + stock_id=Gtk.STOCK_SELECT_ALL, + keypresses=(Gdk.KEY_a, Gdk.ModifierType.CONTROL_MASK), ) ELEMENT_SELECT = Action() ELEMENT_CREATE = Action() ELEMENT_DELETE = Action( label='_Delete', tooltip='Delete the selected blocks', - stock_id=gtk.STOCK_DELETE, - keypresses=(gtk.keysyms.Delete, NO_MODS_MASK), + stock_id=Gtk.STOCK_DELETE, + keypresses=(Gdk.KEY_Delete, NO_MODS_MASK), ) BLOCK_MOVE = Action() BLOCK_ROTATE_CCW = Action( label='Rotate Counterclockwise', tooltip='Rotate the selected blocks 90 degrees to the left', - stock_id=gtk.STOCK_GO_BACK, - keypresses=(gtk.keysyms.Left, NO_MODS_MASK), + stock_id=Gtk.STOCK_GO_BACK, + keypresses=(Gdk.KEY_Left, NO_MODS_MASK), ) BLOCK_ROTATE_CW = Action( label='Rotate Clockwise', tooltip='Rotate the selected blocks 90 degrees to the right', - stock_id=gtk.STOCK_GO_FORWARD, - keypresses=(gtk.keysyms.Right, NO_MODS_MASK), + stock_id=Gtk.STOCK_GO_FORWARD, + keypresses=(Gdk.KEY_Right, NO_MODS_MASK), ) BLOCK_VALIGN_TOP = Action( label='Vertical Align Top', @@ -298,26 +300,26 @@ BLOCK_ALIGNMENTS = [ BLOCK_PARAM_MODIFY = Action( label='_Properties', tooltip='Modify params for the selected block', - stock_id=gtk.STOCK_PROPERTIES, - keypresses=(gtk.keysyms.Return, NO_MODS_MASK), + stock_id=Gtk.STOCK_PROPERTIES, + keypresses=(Gdk.KEY_Return, NO_MODS_MASK), ) BLOCK_ENABLE = Action( label='E_nable', tooltip='Enable the selected blocks', - stock_id=gtk.STOCK_CONNECT, - keypresses=(gtk.keysyms.e, NO_MODS_MASK), + stock_id=Gtk.STOCK_CONNECT, + keypresses=(Gdk.KEY_e, NO_MODS_MASK), ) BLOCK_DISABLE = Action( label='D_isable', tooltip='Disable the selected blocks', - stock_id=gtk.STOCK_DISCONNECT, - keypresses=(gtk.keysyms.d, NO_MODS_MASK), + stock_id=Gtk.STOCK_DISCONNECT, + keypresses=(Gdk.KEY_d, NO_MODS_MASK), ) BLOCK_BYPASS = Action( label='_Bypass', tooltip='Bypass the selected block', - stock_id=gtk.STOCK_MEDIA_FORWARD, - keypresses=(gtk.keysyms.b, NO_MODS_MASK), + stock_id=Gtk.STOCK_MEDIA_FORWARD, + keypresses=(Gdk.KEY_b, NO_MODS_MASK), ) TOGGLE_SNAP_TO_GRID = ToggleAction( label='_Snap to grid', @@ -327,8 +329,8 @@ TOGGLE_SNAP_TO_GRID = ToggleAction( TOGGLE_HIDE_DISABLED_BLOCKS = ToggleAction( label='Hide _Disabled Blocks', tooltip='Toggle visibility of disabled blocks and connections', - stock_id=gtk.STOCK_MISSING_IMAGE, - keypresses=(gtk.keysyms.d, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_MISSING_IMAGE, + keypresses=(Gdk.KEY_d, Gdk.ModifierType.CONTROL_MASK), ) TOGGLE_HIDE_VARIABLES = ToggleAction( label='Hide Variables', @@ -376,42 +378,42 @@ TOGGLE_SHOW_FLOWGRAPH_COMPLEXITY = ToggleAction( BLOCK_CREATE_HIER = Action( label='C_reate Hier', tooltip='Create hier block from selected blocks', - stock_id=gtk.STOCK_CONNECT, -# keypresses=(gtk.keysyms.c, NO_MODS_MASK), + stock_id=Gtk.STOCK_CONNECT, +# keypresses=(Gdk.KEY_c, NO_MODS_MASK), ) BLOCK_CUT = Action( label='Cu_t', tooltip='Cut', - stock_id=gtk.STOCK_CUT, - keypresses=(gtk.keysyms.x, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_CUT, + keypresses=(Gdk.KEY_x, Gdk.ModifierType.CONTROL_MASK), ) BLOCK_COPY = Action( label='_Copy', tooltip='Copy', - stock_id=gtk.STOCK_COPY, - keypresses=(gtk.keysyms.c, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_COPY, + keypresses=(Gdk.KEY_c, Gdk.ModifierType.CONTROL_MASK), ) BLOCK_PASTE = Action( label='_Paste', tooltip='Paste', - stock_id=gtk.STOCK_PASTE, - keypresses=(gtk.keysyms.v, gtk.gdk.CONTROL_MASK), + stock_id=Gtk.STOCK_PASTE, + keypresses=(Gdk.KEY_v, Gdk.ModifierType.CONTROL_MASK), ) ERRORS_WINDOW_DISPLAY = Action( label='Flowgraph _Errors', tooltip='View flow graph errors', - stock_id=gtk.STOCK_DIALOG_ERROR, + stock_id=Gtk.STOCK_DIALOG_ERROR, ) TOGGLE_CONSOLE_WINDOW = ToggleAction( label='Show _Console Panel', tooltip='Toggle visibility of the console', - keypresses=(gtk.keysyms.r, gtk.gdk.CONTROL_MASK), + keypresses=(Gdk.KEY_c, Gdk.ModifierType.CONTROL_MASK), preference_name='console_window_visible' ) TOGGLE_BLOCKS_WINDOW = ToggleAction( label='Show _Block Tree Panel', tooltip='Toggle visibility of the block tree widget', - keypresses=(gtk.keysyms.b, gtk.gdk.CONTROL_MASK), + keypresses=(Gdk.KEY_b, Gdk.ModifierType.CONTROL_MASK), preference_name='blocks_window_visible' ) TOGGLE_SCROLL_LOCK = ToggleAction( @@ -422,106 +424,106 @@ TOGGLE_SCROLL_LOCK = ToggleAction( ABOUT_WINDOW_DISPLAY = Action( label='_About', tooltip='About this program', - stock_id=gtk.STOCK_ABOUT, + stock_id=Gtk.STOCK_ABOUT, ) HELP_WINDOW_DISPLAY = Action( label='_Help', tooltip='Usage tips', - stock_id=gtk.STOCK_HELP, - keypresses=(gtk.keysyms.F1, NO_MODS_MASK), + stock_id=Gtk.STOCK_HELP, + keypresses=(Gdk.KEY_F1, NO_MODS_MASK), ) TYPES_WINDOW_DISPLAY = Action( label='_Types', tooltip='Types color mapping', - stock_id=gtk.STOCK_DIALOG_INFO, + stock_id=Gtk.STOCK_DIALOG_INFO, ) FLOW_GRAPH_GEN = Action( label='_Generate', tooltip='Generate the flow graph', - stock_id=gtk.STOCK_CONVERT, - keypresses=(gtk.keysyms.F5, NO_MODS_MASK), + stock_id=Gtk.STOCK_CONVERT, + keypresses=(Gdk.KEY_F5, NO_MODS_MASK), ) FLOW_GRAPH_EXEC = Action( label='_Execute', tooltip='Execute the flow graph', - stock_id=gtk.STOCK_MEDIA_PLAY, - keypresses=(gtk.keysyms.F6, NO_MODS_MASK), + stock_id=Gtk.STOCK_MEDIA_PLAY, + keypresses=(Gdk.KEY_F6, NO_MODS_MASK), ) FLOW_GRAPH_KILL = Action( label='_Kill', tooltip='Kill the flow graph', - stock_id=gtk.STOCK_STOP, - keypresses=(gtk.keysyms.F7, NO_MODS_MASK), + stock_id=Gtk.STOCK_STOP, + keypresses=(Gdk.KEY_F7, NO_MODS_MASK), ) FLOW_GRAPH_SCREEN_CAPTURE = Action( label='Screen Ca_pture', tooltip='Create a screen capture of the flow graph', - stock_id=gtk.STOCK_PRINT, - keypresses=(gtk.keysyms.Print, NO_MODS_MASK), + stock_id=Gtk.STOCK_PRINT, + keypresses=(Gdk.KEY_Print, NO_MODS_MASK), ) PORT_CONTROLLER_DEC = Action( - keypresses=(gtk.keysyms.minus, NO_MODS_MASK, gtk.keysyms.KP_Subtract, NO_MODS_MASK), + keypresses=(Gdk.KEY_minus, NO_MODS_MASK, Gdk.KEY_KP_Subtract, NO_MODS_MASK), ) PORT_CONTROLLER_INC = Action( - keypresses=(gtk.keysyms.plus, NO_MODS_MASK, gtk.keysyms.KP_Add, NO_MODS_MASK), + keypresses=(Gdk.KEY_plus, NO_MODS_MASK, Gdk.KEY_KP_Add, NO_MODS_MASK), ) BLOCK_INC_TYPE = Action( - keypresses=(gtk.keysyms.Down, NO_MODS_MASK), + keypresses=(Gdk.KEY_Down, NO_MODS_MASK), ) BLOCK_DEC_TYPE = Action( - keypresses=(gtk.keysyms.Up, NO_MODS_MASK), + keypresses=(Gdk.KEY_Up, NO_MODS_MASK), ) RELOAD_BLOCKS = Action( label='Reload _Blocks', tooltip='Reload Blocks', - stock_id=gtk.STOCK_REFRESH + stock_id=Gtk.STOCK_REFRESH ) FIND_BLOCKS = Action( label='_Find Blocks', tooltip='Search for a block by name (and key)', - stock_id=gtk.STOCK_FIND, - keypresses=(gtk.keysyms.f, gtk.gdk.CONTROL_MASK, - gtk.keysyms.slash, NO_MODS_MASK), + stock_id=Gtk.STOCK_FIND, + keypresses=(Gdk.KEY_f, Gdk.ModifierType.CONTROL_MASK, + Gdk.KEY_slash, NO_MODS_MASK), ) CLEAR_CONSOLE = Action( label='_Clear Console', tooltip='Clear Console', - stock_id=gtk.STOCK_CLEAR, + stock_id=Gtk.STOCK_CLEAR, ) SAVE_CONSOLE = Action( label='_Save Console', tooltip='Save Console', - stock_id=gtk.STOCK_SAVE, + stock_id=Gtk.STOCK_SAVE, ) OPEN_HIER = Action( label='Open H_ier', tooltip='Open the source of the selected hierarchical block', - stock_id=gtk.STOCK_JUMP_TO, + stock_id=Gtk.STOCK_JUMP_TO, ) BUSSIFY_SOURCES = Action( label='Toggle So_urce Bus', tooltip='Gang source ports into a single bus port', - stock_id=gtk.STOCK_JUMP_TO, + stock_id=Gtk.STOCK_JUMP_TO, ) BUSSIFY_SINKS = Action( label='Toggle S_ink Bus', tooltip='Gang sink ports into a single bus port', - stock_id=gtk.STOCK_JUMP_TO, + stock_id=Gtk.STOCK_JUMP_TO, ) XML_PARSER_ERRORS_DISPLAY = Action( label='_Parser Errors', tooltip='View errors that occurred while parsing XML files', - stock_id=gtk.STOCK_DIALOG_ERROR, + stock_id=Gtk.STOCK_DIALOG_ERROR, ) FLOW_GRAPH_OPEN_QSS_THEME = Action( label='Set Default QT GUI _Theme', tooltip='Set a default QT Style Sheet file to use for QT GUI', - stock_id=gtk.STOCK_OPEN, + stock_id=Gtk.STOCK_OPEN, ) TOOLS_RUN_FDESIGN = Action( label='Filter Design Tool', tooltip='Execute gr_filter_design', - stock_id=gtk.STOCK_EXECUTE, + stock_id=Gtk.STOCK_EXECUTE, ) TOOLS_MORE_TO_COME = Action( label='More to come', |