Download src/Mod/Part/AttachmentEditor/Commands.py from AbdulElahGwaith/FreeCAD: direct link, hf CLI and curl.
- Browser
- Download file 4.82 kB
-
https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/src/Mod/Part/AttachmentEditor/Commands.py
- Command line
-
hf download hf://AbdulElahGwaith/FreeCAD/src/Mod/Part/AttachmentEditor/Commands.py
-
curl -L -o Commands.py https://huggingface.co/AbdulElahGwaith/FreeCAD/resolve/main/src/Mod/Part/AttachmentEditor/Commands.py
4.82 kB
| # SPDX-License-Identifier: LGPL-2.1-or-later | |
| # *************************************************************************** | |
| # * Copyright (c) 2016 Victor Titov (DeepSOIC) <vv.titov@gmail.com> * | |
| # * * | |
| # * This file is part of the FreeCAD CAx development system. * | |
| # * * | |
| # * This library is free software; you can redistribute it and/or * | |
| # * modify it under the terms of the GNU Library General Public * | |
| # * License as published by the Free Software Foundation; either * | |
| # * version 2 of the License, or (at your option) any later version. * | |
| # * * | |
| # * This library is distributed in the hope that it will be useful, * | |
| # * but WITHOUT ANY WARRANTY; without even the implied warranty of * | |
| # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * | |
| # * GNU Library General Public License for more details. * | |
| # * * | |
| # * You should have received a copy of the GNU Library General Public * | |
| # * License along with this library; see the file COPYING.LIB. If not, * | |
| # * write to the Free Software Foundation, Inc., 59 Temple Place, * | |
| # * Suite 330, Boston, MA 02111-1307, USA * | |
| # * * | |
| # ***************************************************************************/ | |
| from __future__ import absolute_import | |
| import FreeCAD as App | |
| try: | |
| from PySide.QtCore import QT_TRANSLATE_NOOP | |
| except ImportError: | |
| def QT_TRANSLATE_NOOP(ctx, msg): | |
| return msg | |
| def editAttachment( | |
| feature=None, | |
| take_selection=False, | |
| create_transaction=True, | |
| callback_OK=None, | |
| callback_Cancel=None, | |
| callback_Apply=None, | |
| ): | |
| """Opens attachment editing dialog. | |
| editAttachment(feature = None, | |
| take_selection = False, | |
| create_transaction = True, | |
| callback_OK = None, | |
| callback_Cancel = None, | |
| callback_Apply = None) | |
| feature: object to attach/modify. If None is supplied, the object is taken from | |
| selection. | |
| take_selection: if True, current selection is filled into first references (but only | |
| if object to be attached doesn't have any references already) | |
| create_transaction = if False, no undo transaction operations will be done by the | |
| dialog (consequently, canceling the dialog will not reset the feature to original | |
| state). | |
| callback_OK: function to be called upon OK. Invoked after writing values to feature, | |
| committing transaction and closing the dialog. | |
| callback_Cancel: called after closing the dialog and aborting transaction. | |
| callback_Apply: invoked after writing values to feature.""" | |
| import AttachmentEditor.TaskAttachmentEditor as TaskAttachmentEditor | |
| global taskd # exposing to outside, for ease of debugging | |
| if feature is None: | |
| feature = Gui.Selection.getSelectionEx()[0].Object | |
| try: | |
| taskd = TaskAttachmentEditor.AttachmentEditorTaskPanel( | |
| feature, | |
| take_selection=take_selection, | |
| create_transaction=create_transaction, | |
| callback_OK=callback_OK, | |
| callback_Cancel=callback_Cancel, | |
| callback_Apply=callback_Apply, | |
| ) | |
| Gui.Control.showDialog(taskd) | |
| except TaskAttachmentEditor.CancelError: | |
| pass | |
| class CommandEditAttachment: | |
| "Command to edit attachment" | |
| def GetResources(self): | |
| return { | |
| "Pixmap": "Part_Attachment", | |
| "MenuText": QT_TRANSLATE_NOOP("Part_EditAttachment", "Attachment"), | |
| "Accel": "", | |
| "ToolTip": QT_TRANSLATE_NOOP( | |
| "Part_EditAttachment", | |
| "Opens the attachment editor to change the attachment of the selected object", | |
| ), | |
| } | |
| def Activated(self): | |
| try: | |
| editAttachment() | |
| except Exception as err: | |
| from PySide import QtGui | |
| mb = QtGui.QMessageBox() | |
| mb.setIcon(mb.Icon.Warning) | |
| mb.setText(str(err)) | |
| mb.setWindowTitle("Error") | |
| mb.exec_() | |
| def IsActive(self): | |
| sel = Gui.Selection.getSelectionEx() | |
| if len(sel) == 1: | |
| if hasattr(sel[0].Object, "Placement"): | |
| return True | |
| return False | |
| if App.GuiUp: | |
| import FreeCADGui as Gui | |
| command_instance = CommandEditAttachment() | |
| Gui.addCommand("Part_EditAttachment", command_instance) | |