Source code for qtpyvcp.widgets.menus.homing_menu

"""Homing Menu Provider"""

import linuxcnc
from qtpy.QtWidgets import QMenu, QAction

from qtpyvcp import actions
from qtpyvcp.plugins import getPlugin
from qtpyvcp.utilities.info import Info

INFO = Info()


[docs]class HomingMenu(QMenu): """Homing Menu Provider Args: parent (QWidget, optional) : The menus parent. Default to None. axes (list, optional) : List of axes for which to show a homing action. If not specified the axis letter list from the INI file will be used. ToDO: Add un-homing actions if the axis is already homed. """ def __init__(self, parent=None, axes=None): super(HomingMenu, self).__init__(parent) self.status = getPlugin('status') home_all = QAction(parent=self, text="Home &All") actions.bindWidget(home_all, 'machine.home.all') self.addAction(home_all) # add homing actions for each axis for aletter in axes or INFO.AXIS_LETTER_LIST: home_axis = QAction(parent=self, text="Home &{}".format(aletter.upper())) actions.bindWidget(home_axis, 'machine.home.axis:{}'.format(aletter.lower())) self.addAction(home_axis) home_axis.setVisible(True) self.setEnabled(self.status.stat.state == linuxcnc.STATE_ON) self.status.on.notify(lambda on: self.setEnabled(on))