Old toollibrary black
This commit is contained in:
@@ -36,13 +36,14 @@ import PathScripts.PathToolLibraryManager as ToolLibraryManager
|
||||
from PySide import QtCore, QtGui
|
||||
|
||||
PathLog.setLevel(PathLog.Level.INFO, PathLog.thisModule())
|
||||
#PathLog.trackModule(PathLog.thisModule())
|
||||
# PathLog.trackModule(PathLog.thisModule())
|
||||
|
||||
|
||||
def translate(context, text, disambig=None):
|
||||
return QtCore.QCoreApplication.translate(context, text, disambig)
|
||||
|
||||
class EditorPanel():
|
||||
|
||||
class EditorPanel:
|
||||
def __init__(self, job, cb):
|
||||
self.form = FreeCADGui.PySideUic.loadUi(":/panels/ToolLibraryEditor.ui")
|
||||
self.TLM = ToolLibraryManager.ToolLibraryManager()
|
||||
@@ -88,7 +89,7 @@ class EditorPanel():
|
||||
return toolslist[tooltype]
|
||||
|
||||
def getMaterial(self, material):
|
||||
'''gets a combobox index number for a given material or vice versa'''
|
||||
"""gets a combobox index number for a given material or vice versa"""
|
||||
matslist = Path.Tool.getToolMaterials(Path.Tool())
|
||||
if isinstance(material, str):
|
||||
if material in matslist:
|
||||
@@ -99,7 +100,7 @@ class EditorPanel():
|
||||
return matslist[material]
|
||||
|
||||
def addTool(self):
|
||||
'''adds new tool to the current tool table'''
|
||||
"""adds new tool to the current tool table"""
|
||||
tool = Path.Tool()
|
||||
editor = self.toolEditor(tool)
|
||||
|
||||
@@ -111,19 +112,19 @@ class EditorPanel():
|
||||
self.loadTable(listname)
|
||||
|
||||
def delete(self):
|
||||
'''deletes the selected tool'''
|
||||
"""deletes the selected tool"""
|
||||
listname = self.TLM.getCurrentTableName()
|
||||
model = self.form.ToolsList.model()
|
||||
for i in range(model.rowCount()):
|
||||
item = model.item(i, 0)
|
||||
if item.checkState():
|
||||
t = model.index(i, 1)
|
||||
self.TLM.delete(int(t.data()) ,listname)
|
||||
self.TLM.delete(int(t.data()), listname)
|
||||
self.loadTable(listname)
|
||||
self.toolSelectionChanged()
|
||||
|
||||
def editTool(self, currItem):
|
||||
'''load the tool edit dialog'''
|
||||
"""load the tool edit dialog"""
|
||||
if not currItem:
|
||||
currItem = self.form.ToolsList.selectedIndexes()[1]
|
||||
|
||||
@@ -141,7 +142,7 @@ class EditorPanel():
|
||||
self.loadTable(listname)
|
||||
|
||||
def moveUp(self):
|
||||
'''moves a tool to a lower number, if possible'''
|
||||
"""moves a tool to a lower number, if possible"""
|
||||
item = self.form.ToolsList.selectedIndexes()[1].data()
|
||||
if item:
|
||||
number = int(item)
|
||||
@@ -152,7 +153,7 @@ class EditorPanel():
|
||||
self.updateSelection(newNum)
|
||||
|
||||
def moveDown(self):
|
||||
'''moves a tool to a higher number, if possible'''
|
||||
"""moves a tool to a higher number, if possible"""
|
||||
item = self.form.ToolsList.selectedIndexes()[1].data()
|
||||
if item:
|
||||
number = int(item)
|
||||
@@ -163,7 +164,7 @@ class EditorPanel():
|
||||
self.updateSelection(newNum)
|
||||
|
||||
def duplicate(self):
|
||||
'''duplicated the selected tool in the current tool table'''
|
||||
"""duplicated the selected tool in the current tool table"""
|
||||
item = self.form.ToolsList.selectedIndexes()[1].data()
|
||||
if item:
|
||||
number = int(item)
|
||||
@@ -174,7 +175,7 @@ class EditorPanel():
|
||||
self.updateSelection(newNum)
|
||||
|
||||
def updateSelection(self, number):
|
||||
'''update the tool list selection to track moves'''
|
||||
"""update the tool list selection to track moves"""
|
||||
model = self.form.ToolsList.model()
|
||||
for i in range(model.rowCount()):
|
||||
if int(model.index(i, 1).data()) == number:
|
||||
@@ -182,24 +183,41 @@ class EditorPanel():
|
||||
self.form.ToolsList.model().item(i, 0).setCheckState(QtCore.Qt.Checked)
|
||||
return
|
||||
|
||||
|
||||
def importFile(self):
|
||||
'''imports a tooltable from a file'''
|
||||
filename = QtGui.QFileDialog.getOpenFileName(self.form, translate( "TooltableEditor", "Open tooltable", None), None, "{};;{};;{}".format(self.TLM.TooltableTypeJSON, self.TLM.TooltableTypeXML, self.TLM.TooltableTypeHeekscad))
|
||||
"""imports a tooltable from a file"""
|
||||
filename = QtGui.QFileDialog.getOpenFileName(
|
||||
self.form,
|
||||
translate("TooltableEditor", "Open tooltable", None),
|
||||
None,
|
||||
"{};;{};;{}".format(
|
||||
self.TLM.TooltableTypeJSON,
|
||||
self.TLM.TooltableTypeXML,
|
||||
self.TLM.TooltableTypeHeekscad,
|
||||
),
|
||||
)
|
||||
if filename[0]:
|
||||
listname = self.TLM.getNextToolTableName()
|
||||
if self.TLM.read(filename, listname):
|
||||
self.loadToolTables()
|
||||
|
||||
def exportFile(self):
|
||||
'''export a tooltable to a file'''
|
||||
filename = QtGui.QFileDialog.getSaveFileName(self.form, translate("TooltableEditor", "Save tooltable", None), None, "{};;{};;{}".format(self.TLM.TooltableTypeJSON, self.TLM.TooltableTypeXML, self.TLM.TooltableTypeLinuxCNC))
|
||||
"""export a tooltable to a file"""
|
||||
filename = QtGui.QFileDialog.getSaveFileName(
|
||||
self.form,
|
||||
translate("TooltableEditor", "Save tooltable", None),
|
||||
None,
|
||||
"{};;{};;{}".format(
|
||||
self.TLM.TooltableTypeJSON,
|
||||
self.TLM.TooltableTypeXML,
|
||||
self.TLM.TooltableTypeLinuxCNC,
|
||||
),
|
||||
)
|
||||
if filename[0]:
|
||||
listname = self.TLM.getCurrentTableName()
|
||||
self.TLM.write(filename, listname)
|
||||
|
||||
def toolSelectionChanged(self, index=None):
|
||||
''' updates the ui when tools are selected'''
|
||||
"""updates the ui when tools are selected"""
|
||||
if index:
|
||||
self.form.ToolsList.selectRow(index.row())
|
||||
|
||||
@@ -222,7 +240,7 @@ class EditorPanel():
|
||||
|
||||
# only allow moving or deleting a single tool at a time.
|
||||
if checkCount == 1:
|
||||
#make sure the row is highlighted when the check box gets ticked
|
||||
# make sure the row is highlighted when the check box gets ticked
|
||||
self.form.ToolsList.selectRow(checkList[0])
|
||||
self.form.ButtonDelete.setEnabled(True)
|
||||
self.form.ButtonUp.setEnabled(True)
|
||||
@@ -234,7 +252,7 @@ class EditorPanel():
|
||||
self.form.btnCopyTools.setEnabled(False)
|
||||
|
||||
def copyTools(self):
|
||||
''' copy selected tool '''
|
||||
"""copy selected tool"""
|
||||
tools = []
|
||||
model = self.form.ToolsList.model()
|
||||
for i in range(model.rowCount()):
|
||||
@@ -268,43 +286,54 @@ class EditorPanel():
|
||||
|
||||
for toolnum in tools:
|
||||
tool = self.TLM.getTool(currList, int(toolnum))
|
||||
PathLog.debug('tool: {}, toolnum: {}'.format(tool, toolnum))
|
||||
PathLog.debug("tool: {}, toolnum: {}".format(tool, toolnum))
|
||||
if self.job:
|
||||
label = "T{}: {}".format(toolnum, tool.Name)
|
||||
tc = PathScripts.PathToolController.Create(label, tool=tool, toolNumber=int(toolnum))
|
||||
tc = PathScripts.PathToolController.Create(
|
||||
label, tool=tool, toolNumber=int(toolnum)
|
||||
)
|
||||
self.job.Proxy.addToolController(tc)
|
||||
else:
|
||||
for job in FreeCAD.ActiveDocument.findObjects("Path::Feature"):
|
||||
if isinstance(job.Proxy, PathScripts.PathJob.ObjectJob) and job.Label == targetlist:
|
||||
if (
|
||||
isinstance(job.Proxy, PathScripts.PathJob.ObjectJob)
|
||||
and job.Label == targetlist
|
||||
):
|
||||
label = "T{}: {}".format(toolnum, tool.Name)
|
||||
tc = PathScripts.PathToolController.Create(label, tool=tool, toolNumber=int(toolnum))
|
||||
tc = PathScripts.PathToolController.Create(
|
||||
label, tool=tool, toolNumber=int(toolnum)
|
||||
)
|
||||
job.Proxy.addToolController(tc)
|
||||
if self.cb:
|
||||
self.cb()
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
def tableSelected(self, index):
|
||||
''' loads the tools for the selected tool table '''
|
||||
name = self.form.TableList.itemWidget(self.form.TableList.itemFromIndex(index)).getTableName()
|
||||
"""loads the tools for the selected tool table"""
|
||||
name = self.form.TableList.itemWidget(
|
||||
self.form.TableList.itemFromIndex(index)
|
||||
).getTableName()
|
||||
self.loadTable(name)
|
||||
|
||||
def loadTable(self, name):
|
||||
''' loads the tools for the selected tool table '''
|
||||
"""loads the tools for the selected tool table"""
|
||||
tooldata = self.TLM.getTools(name)
|
||||
if tooldata:
|
||||
self.form.ToolsList.setModel(tooldata)
|
||||
self.form.ToolsList.resizeColumnsToContents()
|
||||
self.form.ToolsList.horizontalHeader().setResizeMode(self.form.ToolsList.model().columnCount() - 1, QtGui.QHeaderView.Stretch)
|
||||
self.form.ToolsList.horizontalHeader().setResizeMode(
|
||||
self.form.ToolsList.model().columnCount() - 1, QtGui.QHeaderView.Stretch
|
||||
)
|
||||
self.setCurrentToolTableByName(name)
|
||||
|
||||
def addNewToolTable(self):
|
||||
''' adds new tool to selected tool table '''
|
||||
"""adds new tool to selected tool table"""
|
||||
name = self.TLM.addNewToolTable()
|
||||
self.loadToolTables()
|
||||
self.loadTable(name)
|
||||
|
||||
def loadToolTables(self):
|
||||
''' Load list of available tool tables '''
|
||||
"""Load list of available tool tables"""
|
||||
self.form.TableList.clear()
|
||||
model = self.form.ToolsList.model()
|
||||
if model:
|
||||
@@ -314,44 +343,54 @@ class EditorPanel():
|
||||
listWidgetItem = QtGui.QListWidgetItem()
|
||||
listItem = ToolTableListWidgetItem(self.TLM)
|
||||
listItem.setTableName(table.Name)
|
||||
listItem.setIcon(QtGui.QPixmap(':/icons/Path_ToolTable.svg'))
|
||||
listItem.setIcon(QtGui.QPixmap(":/icons/Path_ToolTable.svg"))
|
||||
listItem.toolMoved.connect(self.reloadReset)
|
||||
listWidgetItem.setSizeHint(QtCore.QSize(0,40))
|
||||
listWidgetItem.setSizeHint(QtCore.QSize(0, 40))
|
||||
self.form.TableList.addItem(listWidgetItem)
|
||||
self.form.TableList.setItemWidget(listWidgetItem, listItem)
|
||||
#Load the first tooltable
|
||||
# Load the first tooltable
|
||||
self.loadTable(self.TLM.getCurrentTableName())
|
||||
|
||||
def reloadReset(self):
|
||||
''' reloads the current tooltable'''
|
||||
"""reloads the current tooltable"""
|
||||
name = self.TLM.getCurrentTableName()
|
||||
self.loadTable(name)
|
||||
|
||||
def setCurrentToolTableByName(self, name):
|
||||
''' get the current tool table '''
|
||||
"""get the current tool table"""
|
||||
item = self.getToolTableByName(name)
|
||||
if item:
|
||||
self.form.TableList.setCurrentItem(item)
|
||||
|
||||
def getToolTableByName(self, name):
|
||||
''' returns the listWidgetItem for the selected name'''
|
||||
"""returns the listWidgetItem for the selected name"""
|
||||
for i in range(self.form.TableList.count()):
|
||||
tableName = self.form.TableList.itemWidget(self.form.TableList.item(i)).getTableName()
|
||||
tableName = self.form.TableList.itemWidget(
|
||||
self.form.TableList.item(i)
|
||||
).getTableName()
|
||||
if tableName == name:
|
||||
return self.form.TableList.item(i)
|
||||
return False
|
||||
|
||||
def removeToolTable(self):
|
||||
''' delete the selected tool table '''
|
||||
"""delete the selected tool table"""
|
||||
self.TLM.deleteToolTable()
|
||||
self.loadToolTables()
|
||||
|
||||
def renameTable(self):
|
||||
''' provides dialog for new tablename and renames the selected tool table'''
|
||||
"""provides dialog for new tablename and renames the selected tool table"""
|
||||
name = self.TLM.getCurrentTableName()
|
||||
newName, ok = QtGui.QInputDialog.getText(None, translate("TooltableEditor","Rename Tooltable"),translate("TooltableEditor","Enter Name:"),QtGui.QLineEdit.Normal,name)
|
||||
newName, ok = QtGui.QInputDialog.getText(
|
||||
None,
|
||||
translate("TooltableEditor", "Rename Tooltable"),
|
||||
translate("TooltableEditor", "Enter Name:"),
|
||||
QtGui.QLineEdit.Normal,
|
||||
name,
|
||||
)
|
||||
if ok and newName:
|
||||
index = self.form.TableList.indexFromItem(self.getToolTableByName(name)).row()
|
||||
index = self.form.TableList.indexFromItem(
|
||||
self.getToolTableByName(name)
|
||||
).row()
|
||||
reloadTables = self.TLM.renameToolTable(newName, index)
|
||||
if reloadTables:
|
||||
self.loadToolTables()
|
||||
@@ -380,14 +419,21 @@ class EditorPanel():
|
||||
self.form.TableList.itemChanged.connect(self.renameTable)
|
||||
|
||||
self.form.ButtonAddToolTable.clicked.connect(self.addNewToolTable)
|
||||
self.form.ButtonAddToolTable.setToolTip(translate("TooltableEditor","Add New Tool Table"))
|
||||
self.form.ButtonAddToolTable.setToolTip(
|
||||
translate("TooltableEditor", "Add New Tool Table")
|
||||
)
|
||||
self.form.ButtonRemoveToolTable.clicked.connect(self.removeToolTable)
|
||||
self.form.ButtonRemoveToolTable.setToolTip(translate("TooltableEditor","Delete Selected Tool Table"))
|
||||
self.form.ButtonRemoveToolTable.setToolTip(
|
||||
translate("TooltableEditor", "Delete Selected Tool Table")
|
||||
)
|
||||
self.form.ButtonRenameToolTable.clicked.connect(self.renameTable)
|
||||
self.form.ButtonRenameToolTable.setToolTip(translate("TooltableEditor","Rename Selected Tool Table"))
|
||||
self.form.ButtonRenameToolTable.setToolTip(
|
||||
translate("TooltableEditor", "Rename Selected Tool Table")
|
||||
)
|
||||
|
||||
self.setFields()
|
||||
|
||||
|
||||
class ToolTableListWidgetItem(QtGui.QWidget):
|
||||
|
||||
toolMoved = QtCore.Signal()
|
||||
@@ -405,13 +451,13 @@ class ToolTableListWidgetItem(QtGui.QWidget):
|
||||
self.mainLayout.addWidget(self.tableNameLabel, 1)
|
||||
self.setLayout(self.mainLayout)
|
||||
|
||||
def setTableName (self, text):
|
||||
def setTableName(self, text):
|
||||
self.tableNameLabel.setText(text)
|
||||
|
||||
def getTableName(self):
|
||||
return self.tableNameLabel.text()
|
||||
|
||||
def setIcon (self, icon):
|
||||
def setIcon(self, icon):
|
||||
icon = icon.scaled(24, 24)
|
||||
self.iconQLabel.setPixmap(icon)
|
||||
|
||||
@@ -434,7 +480,7 @@ class ToolTableListWidgetItem(QtGui.QWidget):
|
||||
self.toolMoved.emit()
|
||||
|
||||
|
||||
class CommandToolLibraryEdit():
|
||||
class CommandToolLibraryEdit:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@@ -449,10 +495,12 @@ class CommandToolLibraryEdit():
|
||||
cb()
|
||||
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Path_ToolTable',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Path_ToolTable","Tool Manager"),
|
||||
'Accel': "P, T",
|
||||
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Path_ToolTable","Tool Manager")}
|
||||
return {
|
||||
"Pixmap": "Path_ToolTable",
|
||||
"MenuText": QtCore.QT_TRANSLATE_NOOP("Path_ToolTable", "Tool Manager"),
|
||||
"Accel": "P, T",
|
||||
"ToolTip": QtCore.QT_TRANSLATE_NOOP("Path_ToolTable", "Tool Manager"),
|
||||
}
|
||||
|
||||
def IsActive(self):
|
||||
return not FreeCAD.ActiveDocument is None
|
||||
@@ -460,6 +508,7 @@ class CommandToolLibraryEdit():
|
||||
def Activated(self):
|
||||
self.edit()
|
||||
|
||||
|
||||
if FreeCAD.GuiUp:
|
||||
# register the FreeCAD command
|
||||
FreeCADGui.addCommand('Path_ToolLibraryEdit',CommandToolLibraryEdit())
|
||||
FreeCADGui.addCommand("Path_ToolLibraryEdit", CommandToolLibraryEdit())
|
||||
|
||||
Reference in New Issue
Block a user