| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | """ToolBit selector dialog.""" |
| |
|
| | from PySide import QtWidgets |
| | import FreeCAD |
| | from ...camassets import cam_assets |
| | from ...toolbit import ToolBit |
| | from .browser import ToolBitBrowserWidget |
| |
|
| |
|
| | class ToolBitSelector(QtWidgets.QDialog): |
| | """ |
| | A dialog for selecting ToolBits using the ToolBitBrowserWidget. |
| | """ |
| |
|
| | def __init__( |
| | self, parent=None, compact=False, button_label=FreeCAD.Qt.translate("CAM", "Add Tool") |
| | ): |
| | super().__init__(parent) |
| |
|
| | self.setMinimumSize(600, 400) |
| |
|
| | self.setWindowTitle(FreeCAD.Qt.translate("CAM", "Select Toolbit")) |
| |
|
| | self._browser_widget = ToolBitBrowserWidget(cam_assets, compact=compact) |
| |
|
| | |
| | self._ok_button = QtWidgets.QPushButton(button_label) |
| | self._cancel_button = QtWidgets.QPushButton("Cancel") |
| |
|
| | |
| | self._ok_button.clicked.connect(self.accept) |
| | self._cancel_button.clicked.connect(self.reject) |
| |
|
| | |
| | layout = QtWidgets.QVBoxLayout(self) |
| | layout.addWidget(self._browser_widget) |
| |
|
| | button_layout = QtWidgets.QHBoxLayout() |
| | button_layout.addStretch() |
| | button_layout.addWidget(self._cancel_button) |
| | button_layout.addWidget(self._ok_button) |
| |
|
| | layout.addLayout(button_layout) |
| |
|
| | |
| | self._ok_button.setEnabled(False) |
| | self._browser_widget.toolSelected.connect(self._on_tool_selected) |
| | self._browser_widget.itemDoubleClicked.connect(self.accept) |
| |
|
| | self._selected_tool_uri = None |
| |
|
| | def _on_tool_selected(self, uri): |
| | """Enables/disables OK button based on selection.""" |
| | self._selected_tool_uri = uri |
| | self._ok_button.setEnabled(uri is not None) |
| |
|
| | def get_selected_tool_uri(self): |
| | """Returns the URI of the selected tool bit.""" |
| | return self._selected_tool_uri |
| |
|
| | def get_selected_tool(self) -> ToolBit: |
| | """Returns the selected ToolBit object, or None if none selected.""" |
| | uri = self.get_selected_tool_uri() |
| | if uri: |
| | |
| | return cam_assets.get(uri) |
| | return None |
| |
|