Example #1
0
 def setEdit(self, vobj, mode=0):
     try:
         machine = run.getMachine(vobj.Object)
     except run.MustSaveError:
         error_message = (
             "Please save the file before opening the task panel. "
             "This must be done because the location of the working "
             "directory is set to \"Beside *.FCStd File\"."
         )
         App.Console.PrintError(error_message + "\n")
         QtGui.QMessageBox.critical(
             Gui.getMainWindow(),
             "Can't open Task Panel",
             error_message
         )
         return False
     except run.DirectoryDoesNotExistError:
         error_message = "Selected working directory doesn't exist."
         App.Console.PrintError(error_message + "\n")
         QtGui.QMessageBox.critical(
             Gui.getMainWindow(),
             "Can't open Task Panel",
             error_message
         )
         return False
     task = _TaskPanelFemSolverControl.ControlTaskPanel(machine)
     Gui.Control.showDialog(task)
     return True
Example #2
0
 def setEdit(self, vobj, mode=0):
     try:
         machine = run.getMachine(vobj.Object)
     except MustSaveError:
         error_message = (
             "Please save the file before opening the task panel. "
             "This must be done because the location of the working "
             "directory is set to \"Beside *.FCStd File\".")
         App.Console.PrintError(error_message + "\n")
         QtGui.QMessageBox.critical(Gui.getMainWindow(),
                                    "Can't open Task Panel", error_message)
         return False
     except DirectoryDoesNotExistError:
         error_message = "Selected working directory doesn't exist."
         App.Console.PrintError(error_message + "\n")
         QtGui.QMessageBox.critical(Gui.getMainWindow(),
                                    "Can't open Task Panel", error_message)
         return False
     task = _TaskPanelFemSolverControl.ControlTaskPanel(machine)
     Gui.Control.showDialog(task)
     return True
Example #3
0
def get_custom_base(solver):
    from femsolver.settings import get_custom_dir
    path = get_custom_dir()
    if not os.path.isdir(path):
        error_message = "Selected working directory doesn't exist."
        FreeCAD.Console.PrintError(error_message + "\n")
        if FreeCAD.GuiUp:
            QtGui.QMessageBox.critical(FreeCADGui.getMainWindow(),
                                       "Can't start Solver or Mesh creation.",
                                       error_message)
        raise DirectoryDoesNotExistError("Invalid path")
    return path
Example #4
0
def setStatusIcons(show=True):

    "shows or hides the BIM icons in the status bar"
    
    def toggle():   FreeCADGui.runCommand("BIM_TogglePanels")
    def addonMgr(): FreeCADGui.runCommand("Std_AddonMgr")

    mw = FreeCADGui.getMainWindow()
    if mw:
        st = mw.statusBar()
        from PySide import QtCore,QtGui
        statuswidget = st.findChild(QtGui.QToolBar,"BIMStatusWidget")
        if show:
            if statuswidget:
                statuswidget.show()
            else:
                statuswidget = QtGui.QToolBar()
                statuswidget.setObjectName("BIMStatusWidget")
                unitLabel = QtGui.QLabel()
                unitLabel.setObjectName("UnitLabel")
                unit = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Units").GetInt("UserSchema",0)
                unitLabel.setText(["Millimeters","Meters","Imperial","Inches","Centimeters","Architectural","Millimeters"][unit])
                statuswidget.addWidget(unitLabel)
                st.addPermanentWidget(statuswidget)
                togglebutton = QtGui.QPushButton()
                bwidth = togglebutton.fontMetrics().boundingRect("AAAA").width()
                togglebutton.setMaximumWidth(bwidth)
                togglebutton.setIcon(QtGui.QIcon(os.path.join(os.path.dirname(__file__),"icons","BIM_TogglePanels.svg")))
                togglebutton.setText("")
                togglebutton.setToolTip("Toggle report panels on/off")
                togglebutton.setFlat(True)
                QtCore.QObject.connect(togglebutton,QtCore.SIGNAL("pressed()"),toggle)
                statuswidget.addWidget(togglebutton)
                updatebutton = QtGui.QPushButton()
                updatebutton.setObjectName("UpdateButton")
                updatebutton.setMaximumWidth(bwidth)
                updatebutton.setIcon(QtGui.QIcon(":/icons/view-refresh.svg"))
                updatebutton.setText("")
                updatebutton.setToolTip("An update to the BIM workbench is available. Click here to open the addons manager.")
                updatebutton.setFlat(True)
                QtCore.QObject.connect(updatebutton,QtCore.SIGNAL("pressed()"),addonMgr)
                updatebutton.hide()
                statuswidget.addWidget(updatebutton)
        else:
            if statuswidget:
                statuswidget.hide()
            else:
                # when switching workbenches, the toolbar sometimes "jumps"
                # out of the status bar to any other dock area...
                statuswidget = mw.findChild(QtGui.QToolBar,"BIMStatusWidget")
                if statuswidget:
                    statuswidget.hide()
def open(filename):
    #All of the CQGui.* calls in the Python console break after opening if we don't do this
    FreeCADGui.doCommand("import FreeCADGui as CQGui")

    # Make sure that we enforce a specific version (2.7) of the Python interpreter
    ver = hex(sys.hexversion)
    interpreter = "python%s.%s" % (ver[2], ver[4])  # => 'python2.7'

    # The extra version numbers won't work on Windows
    if sys.platform.startswith('win'):
        interpreter = 'python'

    # Set up so that we can import from our embedded packages
    module_base_path = module_locator.module_path()
    libs_dir_path = os.path.join(module_base_path, 'Libs')

    # Make sure we get the right libs under the FreeCAD installation
    fc_base_path = os.path.dirname(os.path.dirname(module_base_path))
    fc_lib_path = os.path.join(fc_base_path, 'lib')

    #Getting the main window will allow us to find the children we need to work with
    mw = FreeCADGui.getMainWindow()

    # Grab just the file name from the path/file that's being executed
    docname = os.path.basename(filename)

    # Pull the font size from the FreeCAD-stored settings
    fontSize = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/cadquery-freecad-module").GetInt("fontSize")

    # Set up the code editor
    codePane = CodeEditor()
    codePane.setFont(QtGui.QFont('SansSerif', fontSize))
    codePane.setObjectName("cqCodePane_" + os.path.splitext(os.path.basename(filename))[0])

    mdi = mw.findChild(QtGui.QMdiArea)
    # add a code editor widget to the mdi area
    sub = mdi.addSubWindow(codePane)
    sub.setWindowTitle(docname)
    sub.setWindowIcon(QtGui.QIcon(':/icons/applications-python.svg'))
    sub.show()
    mw.update()

    #Pull the text of the CQ script file into our code pane
    codePane.open(filename)

    msg = QtGui.QApplication.translate(
            "cqCodeWidget",
            "Opened ",
            None)
    FreeCAD.Console.PrintMessage(msg + filename + "\r\n")

    return
    def Activated(self):

        # store changes to be committed
        self.deleteList = []

        # create the dialog
        self.dialog = FreeCADGui.PySideUic.loadUi(os.path.join(os.path.dirname(__file__),"dialogLayers.ui"))

        # set nice icons
        self.dialog.setWindowIcon(QtGui.QIcon(":/icons/Draft_VisGroup.svg"))
        self.dialog.buttonNew.setIcon(QtGui.QIcon(":/icons/document-new.svg"))
        self.dialog.buttonDelete.setIcon(QtGui.QIcon(":/icons/delete.svg"))
        self.dialog.buttonSelectAll.setIcon(QtGui.QIcon(":/icons/edit-select-all.svg"))
        self.dialog.buttonToggle.setIcon(QtGui.QIcon(":/icons/dagViewVisible.svg"))
        self.dialog.buttonIsolate.setIcon(QtGui.QIcon(":/icons/view-refresh.svg"))
        self.dialog.buttonCancel.setIcon(QtGui.QIcon(":/icons/edit_Cancel.svg"))
        self.dialog.buttonOK.setIcon(QtGui.QIcon(":/icons/edit_OK.svg"))

        # restore window geometry from stored state
        pref = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM")
        w = pref.GetInt("LayersManagerWidth",640)
        h = pref.GetInt("LayersManagerHeight",320)
        self.dialog.resize(w,h)

        # center the dialog over FreeCAD window
        mw = FreeCADGui.getMainWindow()
        self.dialog.move(mw.frameGeometry().topLeft() + mw.rect().center() - self.dialog.rect().center())

        # connect signals/slots
        self.dialog.buttonNew.clicked.connect(self.addItem)
        self.dialog.buttonDelete.clicked.connect(self.onDelete)
        self.dialog.buttonSelectAll.clicked.connect(self.dialog.tree.selectAll)
        self.dialog.buttonToggle.clicked.connect(self.onToggle)
        self.dialog.buttonCancel.clicked.connect(self.dialog.reject)
        self.dialog.buttonIsolate.clicked.connect(self.onIsolate)
        self.dialog.buttonOK.clicked.connect(self.accept)
        self.dialog.rejected.connect(self.reject)

        # set the model up
        self.model = QtGui.QStandardItemModel()
        self.dialog.tree.setModel(self.model)
        self.dialog.tree.setUniformRowHeights(True)
        self.dialog.tree.setItemDelegate(BIM_Layers_Delegate())
        self.dialog.tree.setItemsExpandable(False)
        self.dialog.tree.setRootIsDecorated(False) # removes spacing in first column
        self.dialog.tree.setSelectionMode(QtGui.QTreeView.ExtendedSelection) # allow to select many

        # fill the tree view
        self.update()

        # rock 'n roll!!!
        self.dialog.exec_()
    def addonMgr():

        mw = FreeCADGui.getMainWindow()
        if mw:
            st = mw.statusBar()
            statuswidget = st.findChild(QtGui.QToolBar,
                                        "CivilToolsStatusWidget")
            if statuswidget:
                updatebutton = statuswidget.findChild(QtGui.QPushButton,
                                                      "UpdateButton")
                if updatebutton:
                    statuswidget.actions()[-1].setVisible(False)
        FreeCADGui.runCommand("Std_AddonMgr")
Example #8
0
def getDocNode():
    doc = FreeCADGui.ActiveDocument.Document.Name
    tws = FreeCADGui.getMainWindow().findChildren(QtGui.QTreeWidget)

    for tw in tws:
        if tw.topLevelItemCount() != 1 or tw.topLevelItem(0).text(0) != "Application":
            continue
        toptree = tw.topLevelItem(0)
        for i in range(0, toptree.childCount()):
            docitem = toptree.child(i)
            if docitem.text(0) == doc:
                return docitem
    return None
Example #9
0
def _getBesideBase(solver):
    fcstdPath = solver.Document.FileName
    if fcstdPath == "":
        error_message = (
            "Please save the file before executing the solver. "
            "This must be done because the location of the working "
            "directory is set to \"Beside *.FCStd File\".")
        App.Console.PrintError(error_message + "\n")
        if App.GuiUp:
            QtGui.QMessageBox.critical(FreeCADGui.getMainWindow(),
                                       "Can't start Solver", error_message)
        raise MustSaveError()
    return os.path.splitext(fcstdPath)[0]
Example #10
0
 def __init__(self, name):
     """
     Constructor
     """
     disable = 0
     if name != "NoneWorkbench":
         # Disable connection after activation
         mw = FreeCADGui.getMainWindow()
         mw.workbenchActivated.disconnect(run)
         if disable: return
         mw.addDockWidget(QtCore.Qt.TopDockWidgetArea, MenuDock())
         CollapsDock = p.GetString("CollapsibleDock", "On")
         if CollapsDock == "On": ModernDock.run()
Example #11
0
def start_browser():
    global __browser_instance__
    if not __browser_instance__:
        main_window = Gui.getMainWindow().findChild(QtGui.QMdiArea)
        bi = WebView(tr('Extension Manager'), get_cache_path(),
                     request_handler, message_handler, main_window)
        bi.closed.connect(on_web_view_close)
        index = path_to_extman_url(get_resource_path('html', 'index.html'))
        bi.load(index)
        main_window.addSubWindow(bi)
        bi.show()
        __browser_instance__ = bi
    return __browser_instance__
Example #12
0
    def slotUpdateAvailable(self,txt):

        "triggered if an update is available"
    
        mw = FreeCADGui.getMainWindow()
        if mw:
            st = mw.statusBar()
            from PySide import QtCore,QtGui
            statuswidget = st.findChild(QtGui.QToolBar,"BIMStatusWidget")
            if statuswidget:
                updatebutton = statuswidget.findChild(QtGui.QPushButton,"UpdateButton")
                if updatebutton:
                    updatebutton.show()
Example #13
0
def clearReportView(name: str = ""):
    """[Clear Report View console]

    Args:
        name ([type]): [description]
    """
    mw = Gui.getMainWindow()
    r = mw.findChild(QtGui.QTextEdit, "Report view")
    r.clear()
    import time
    now = time.ctime(int(time.time()))
    App.Console.PrintWarning("Cleared Report view " +
                             str(now) + " by " + name + "\n")
Example #14
0
def run():
    dw = QtGui.QDockWidget()
    dw.setWindowTitle("Zebra Tool")
    centralWidget = QtGui.QWidget()
    dw.setWidget(centralWidget)
    layout = QtGui.QVBoxLayout()
    centralWidget.setLayout(layout)
    dw.setMinimumSize(250, 305)
    z = zebra()
    layout.addWidget(z.zebraWidget)

    FreeCADWindow = FreeCADGui.getMainWindow()
    FreeCADWindow.addDockWidget(QtCore.Qt.LeftDockWidgetArea, dw)
Example #15
0
    def getWidget(self):
        mw = FreeCADGui.getMainWindow()
        mdiarea = mw.findChild(QtGui.QMdiArea)

        sws = mdiarea.subWindowList()
        print "windows ..."
        for w2 in sws:
            print str(w2.windowTitle())
            s = str(w2.windowTitle())
            if s == self.name + '1 : 1[*]':
                print "gefundne"
                return w2
        print self.name + '1:1[*]'
Example #16
0
def _getCustomBase(solver):
    path = settings.get_custom_dir()
    if not os.path.isdir(path):
        error_message = "Selected working directory doesn't exist."
        App.Console.PrintError(error_message + "\n")
        if App.GuiUp:
            QtGui.QMessageBox.critical(
                FreeCADGui.getMainWindow(),
                "Can't start Solver",
                error_message
            )
        raise DirectoryDoesNotExistError("Invalid path")
    return path
Example #17
0
def single_instance():
    import FreeCADGui as Gui
    from PySide2 import QtWidgets

    window = Gui.getMainWindow()
    if window:
        for i in window.findChildren(QtWidgets.QDockWidget):
            if i.objectName() == "InspectWidgets":
                i.deleteLater()
            else:
                pass
    else:
        pass
Example #18
0
 def Activated(self):
     from PySide import QtCore,QtGui
     vm = findWidget()
     bimviewsbutton = None
     mw = FreeCADGui.getMainWindow()
     st = mw.statusBar()
     statuswidget = st.findChild(QtGui.QToolBar,"BIMStatusWidget")
     if statuswidget:
         if hasattr(statuswidget,"bimviewsbutton"):
             bimviewsbutton = statuswidget.bimviewsbutton
     if vm:
         if vm.isVisible():
             vm.hide()
             if bimviewsbutton:
                 bimviewsbutton.setChecked(False)
         else:
             vm.show()
             if bimviewsbutton:
                 bimviewsbutton.setChecked(True)
             update()
     else:
         vm = QtGui.QListWidget()
         vm.setObjectName("Views Manager")
         vm.setSortingEnabled(True)
         vm.setIconSize(QtCore.QSize(16,16))
         QtCore.QObject.connect(vm, QtCore.SIGNAL("itemDoubleClicked(QListWidgetItem*)"),show)
         mw = FreeCADGui.getMainWindow()
         combo = mw.findChild(QtGui.QDockWidget,"Combo View")
         if combo:
             s = combo.findChild(QtGui.QSplitter)
             if s:
                 # discount the widget size from the first one
                 h = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM").GetInt("BimViewsSize",100)
                 sizes = s.sizes()
                 sizes[0] = sizes[0]-h
                 s.addWidget(vm)
                 s.setSizes(sizes+[h])
         update()
         from DraftGui import todo
Example #19
0
def restore_Main_Tools():

    #Getting the main window will allow us to start setting things up the way we want
    mw = FreeCADGui.getMainWindow()

    #Adjust the docks as usual
    dockWidgets = mw.findChildren(QtGui.QDockWidget)
    for widget in dockWidgets:
        if (widget.objectName() == "Report view") or (widget.objectName() == "Python console") or (widget.objectName() == "Combo View"):
            widget.setVisible(True)
        if (widget.objectName()=="cqCodeView"):
            widget.setVisible(False)

    return 0
Example #20
0
 def showUpdateButton(avail):
     if avail:
         mw = FreeCADGui.getMainWindow()
         if mw:
             st = mw.statusBar()
             statuswidget = st.findChild(QtGui.QToolBar, "BIMStatusWidget")
             if statuswidget:
                 updatebutton = statuswidget.findChild(
                     QtGui.QPushButton, "UpdateButton")
                 if updatebutton:
                     #updatebutton.show() # doesn't work for some reason
                     statuswidget.actions()[-1].setVisible(True)
     if hasattr(FreeCAD, "bim_update_checker"):
         del FreeCAD.bim_update_checker
Example #21
0
    def Activated(self):

        import FreeCADGui
        from PySide import QtCore, QtGui
        # build objects list
        self.objectslist = {}
        for obj in FreeCAD.ActiveDocument.Objects:
            if hasattr(obj, "IfcType"):
                self.objectslist[obj.Name] = obj.IfcType
            elif hasattr(obj, "IfcRole"):
                self.objectslist[obj.Name] = obj.IfcRole
        try:
            import ArchIFC
            self.ifcroles = ArchIFC.IfcTypes
        except (ImportError, AttributeError):
            import ArchComponent
            self.ifcroles = ArchComponent.IfcRoles

        # load the form and set the tree model up
        self.form = FreeCADGui.PySideUic.loadUi(
            os.path.join(os.path.dirname(__file__), "dialogIfcQuantities.ui"))
        self.form.setWindowIcon(
            QtGui.QIcon(
                os.path.join(os.path.dirname(__file__), "icons",
                             "BIM_IfcQuantities.svg")))

        # quantities tab
        self.qmodel = QtGui.QStandardItemModel()
        self.form.quantities.setModel(self.qmodel)
        self.form.quantities.setUniformRowHeights(True)
        self.form.quantities.setItemDelegate(QtGui.QStyledItemDelegate())
        self.quantitiesDrawn = False
        QtCore.QObject.connect(
            self.qmodel, QtCore.SIGNAL("dataChanged(QModelIndex,QModelIndex)"),
            self.setChecked)
        QtCore.QObject.connect(self.form.buttonBox,
                               QtCore.SIGNAL("accepted()"), self.accept)
        QtCore.QObject.connect(self.form.quantities,
                               QtCore.SIGNAL("clicked(QModelIndex)"),
                               self.onClickTree)
        QtCore.QObject.connect(self.form.onlyVisible,
                               QtCore.SIGNAL("stateChanged(int)"), self.update)

        # center the dialog over FreeCAD window
        mw = FreeCADGui.getMainWindow()
        self.form.move(mw.frameGeometry().topLeft() + mw.rect().center() -
                       self.form.rect().center())

        self.update()
        self.form.show()
Example #22
0
def toggle_Tree():
    mw1 = FreeCADGui.getMainWindow()
    treesSel = mw1.findChildren(QtGui.QTreeWidget)

    for tree in treesSel:
        items = tree.selectedItems()
        for item in items:
            if item.isExpanded() == True:
                collapse = True
                print("collapsing")
            else:
                print("expanding")
                collapse = False
            toggleAllSel(tree, item, collapse)
Example #23
0
    def toggleContextMenu(point):

        FreeCADGui.BimToggleMenu = QtGui.QMenu()
        for t in [
                "Report view", "Python console", "Selection view", "Combo View"
        ]:
            a = QtGui.QAction(t)
            #a.setCheckable(True)
            #a.setChecked(FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/BIM").GetBool("toggle"+t.replace(" ",""),True))
            FreeCADGui.BimToggleMenu.addAction(a)
        pos = FreeCADGui.getMainWindow().cursor().pos()
        FreeCADGui.BimToggleMenu.triggered.connect(toggleSaveSettings)
        #QtCore.QObject.connect(FreeCADGui.BimToggleMenu,QtCore.SIGNAL("triggered(QAction *)"),toggleSaveSettings)
        FreeCADGui.BimToggleMenu.popup(pos)
 def set_unit(action):
     utext = action.text().replace("&", "")
     # unit = [0,4,1,3,7,5][unitsList.index(utext)]
     action.parent().parent().parent().setText(utext)
     etabs = etabs_obj.EtabsModel(backup=False)
     if etabs.success:
         mw = FreeCADGui.getMainWindow()
         statuswidget = mw.findChild(QtGui.QToolBar,
                                     "CivilToolsStatusWidget")
         force = statuswidget.force_label.text()
         length = statuswidget.length_label.text()
         print(force, length)
         print('changed')
         etabs.set_current_unit(force, length)
Example #25
0
    def __init__(self, obj):
        self.obj = obj
        self.main_win = FreeCADGui.getMainWindow()
        self.widget = QtGui.QDockWidget()
        self.widget.ui = myWidget_Ui(obj)
        self.widget.ui.setupUi(self.widget)

        self.widget.ui.pushButton_7.clicked.connect(self.accept)

        self.main_win.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.widget)
        self.widget.setFloating(True)

        self.initial_visibility = self.obj.ViewObject.Visibility
        self.obj.ViewObject.Visibility = False
Example #26
0
    def Activated(self):

        # load dialog
        self.form = Gui.PySideUic.loadUi(
            os.path.join(os.path.dirname(__file__),
                         "ui/preferences-punch_visual.ui"))

        # center the dialog over FreeCAD window
        mw = Gui.getMainWindow()
        self.form.move(mw.frameGeometry().topLeft() + mw.rect().center() -
                       self.form.rect().center())

        # show dialog and run setup dialog afterwards if OK was pressed
        self.form.show()
Example #27
0
def display_image(img_path):
    """Display an image in FreeCAD Gui, using MDI (slot).

    This slot is intended to be connected to renderer executor worker's
    'result_ready' signal.
    It creates a MDI subwindow in FreeCAD Gui and embeds an ImageViewer into
    it.
    """
    if not img_path:
        return

    # Create widget and subwindow
    viewer = ImageViewer(Gui.getMainWindow())
    mdiarea = Gui.getMainWindow().centralWidget()
    subw = mdiarea.addSubWindow(viewer)
    subw.setWindowTitle("Rendering result")
    subw.setVisible(True)

    # Set subwindow background to opaque
    bkg = Gui.getMainWindow().palette().color(QPalette.Background)
    style = (
        "QMdiSubWindow {"
        f"background-color:rgb({bkg.red()},{bkg.green()},{bkg.blue()});"
        "border-style:none;"
        "margin:0px;"
        "}"
    )
    subw.setStyleSheet(style)

    # Create context menu
    menu = subw.systemMenu()
    menu.addSeparator()
    subw.widget().add_actions_to_menu(menu)

    # Load image and show window
    subw.widget().load_image(img_path)
    subw.showMaximized()
Example #28
0
    def __init__(self, PathObj, parent=FreeCADGui.getMainWindow()):
        self.PathObj = PathObj
        QtGui.QDialog.__init__(self, parent)
        layout = QtGui.QVBoxLayout(self)

        p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
        c = p.GetUnsigned("DefaultHighlightPathColor", 4286382335)
        Q = QtGui.QColor(int((c >> 24) & 0xFF), int((c >> 16) & 0xFF), int((c >> 8) & 0xFF))
        highlightcolor = (Q.red() / 255., Q.green() / 255., Q.blue() / 255., Q.alpha() / 255.)

        self.selectionobj = FreeCAD.ActiveDocument.addObject("Path::Feature", "selection")
        self.selectionobj.ViewObject.LineWidth = 4
        self.selectionobj.ViewObject.NormalColor = highlightcolor

        # nice text editor widget for editing the gcode
        self.editor = QtGui.QTextEdit()
        font = QtGui.QFont()
        p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Editor")
        font.setFamily(p.GetString("Font", "Courier"))
        font.setFixedPitch(True)
        font.setPointSize(p.GetInt("FontSize", 10))
        self.editor.setFont(font)
        self.editor.setText("G01 X55 Y4.5 F300.0")
        self.highlighter = GCodeHighlighter(self.editor.document())
        layout.addWidget(self.editor)

        # Note
        lab = QtGui.QLabel()
        lab.setText(translate("Path_Inspect", "<b>Note</b>: Pressing OK will commit any change you make above to the object, but if the object is parametric, these changes will be overridden on recompute."))
        lab.setWordWrap(True)
        layout.addWidget(lab)

        # OK and Cancel buttons
        self.buttons = QtGui.QDialogButtonBox(
            QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel,
            QtCore.Qt.Horizontal, self)
        layout.addWidget(self.buttons)
        self.buttons.accepted.connect(self.accept)
        self.buttons.rejected.connect(self.reject)
        self.editor.selectionChanged.connect(self.highlightpath)
        self.finished.connect(self.cleanup)

        prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Path")
        Xpos = int(prefs.GetString('inspecteditorX', "0"))
        Ypos = int(prefs.GetString('inspecteditorY', "0"))
        height = int(prefs.GetString('inspecteditorH', "500"))
        width = int(prefs.GetString('inspecteditorW', "600"))
        self.move(Xpos, Ypos)
        self.resize(width, height)
Example #29
0
    def Activated(self):
        FreeCAD.Console.PrintMessage(self.exFile + "\r\n")

        # So we can open the "Open File" dialog
        mw = FreeCADGui.getMainWindow()

        # Start off defaulting to the Examples directory
        module_base_path = module_locator.module_path()
        exs_dir_path = os.path.join(module_base_path, 'Libs/cadquery/examples/FreeCAD')

        # Append this script's directory to sys.path
        sys.path.append(os.path.dirname(exs_dir_path))

        # We've created a library that FreeCAD can use as well to open CQ files
        ImportCQ.open(os.path.join(exs_dir_path, self.exFile))
Example #30
0
 def toggleToolbars(mcs):
     hgrp = mcs.getToolbarParams()
     show = False
     for toolbar in mcs._HiddenToolbars:
         if not hgrp.GetBool(toolbar, True):
             show = True
             break
     mw = FreeCADGui.getMainWindow()
     for toolbar in mcs._HiddenToolbars:
         if show != hgrp.GetBool(toolbar, True):
             hgrp.SetBool(toolbar, show)
             tb = mw.findChild(QtGui.QToolBar, toolbar)
             if not tb:
                 logger.error('cannot find toolbar "{}"', toolbar)
             tb.setVisible(show)
Example #31
0
 def IsActive(self):
     if self.waitingOnCutGui == True:
         if CutGui.getStatus() == 'hidden': self.processCutGUIResult()
     mw = FreeCADGui.getMainWindow()
     tree = mw.findChildren(QtGui.QTreeWidget)[0]
     if len(tree.selectedItems()) != 1:
         self.selectedObject = None
     else:
         item = tree.selectedItems()[0]
         obj = FreeCAD.ActiveDocument.getObjectsByLabel(item.text(0))[0]
         if obj.ObjectType == "GCodeJob":
             self.selectedObject = obj
         else:
             self.selectedObject = None
     return True