From 22f4f2ba2fff95e3d28ef53620cf0fc3ad7771d3 Mon Sep 17 00:00:00 2001 From: sliptonic Date: Sat, 2 May 2020 13:38:51 -0500 Subject: [PATCH] Path: remove fstrings to maintain xenial compatibility --- src/Mod/Path/PathScripts/PathToolBitEdit.py | 13 +- .../Path/PathScripts/PathToolBitLibraryGui.py | 143 +++++++++--------- 2 files changed, 73 insertions(+), 83 deletions(-) diff --git a/src/Mod/Path/PathScripts/PathToolBitEdit.py b/src/Mod/Path/PathScripts/PathToolBitEdit.py index d6928b8bf5..cd762a54eb 100644 --- a/src/Mod/Path/PathScripts/PathToolBitEdit.py +++ b/src/Mod/Path/PathScripts/PathToolBitEdit.py @@ -33,13 +33,15 @@ import re from PySide import QtCore, QtGui -#PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule()) -#PathLog.trackModule(PathLog.thisModule()) +# PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule()) +# PathLog.trackModule(PathLog.thisModule()) + # Qt translation handling def translate(context, text, disambig=None): return QtCore.QCoreApplication.translate(context, text, disambig) + class ToolBitEditor(object): '''UI and controller for editing a ToolBit. The controller embeds the UI to the parentWidget which has to have a layout attached to it. @@ -70,8 +72,6 @@ class ToolBitEditor(object): qsb = ui.createWidget('Gui::QuantitySpinBox') editor[name] = PathGui.QuantitySpinBox(qsb, tool, name) label = QtGui.QLabel(re.sub('([A-Z][a-z]+)', r' \1', re.sub('([A-Z]+)', r' \1', name))) - #if parameter.get('Desc'): - # qsb.setToolTip(parameter['Desc']) layout.addRow(label, qsb) self.bitEditor = editor img = tool.Proxy.getBitThumbnail(tool) @@ -87,9 +87,8 @@ class ToolBitEditor(object): self.model = QtGui.QStandardItemModel(len(self.props)-1, 3, self.form) self.model.setHorizontalHeaderLabels(['Set', 'Property', 'Value']) - for i, name in enumerate(self.props): - print(f"propname: {name}") + print("propname: %s " % name) prop = self.proto.getProperty(name) isset = hasattr(tool, name) @@ -135,8 +134,6 @@ class ToolBitEditor(object): c3.setEditable(False) self.model.appendRow([c1, c2, c3]) - #QtGui.QStandardItem([True, key, value])) - self.form.attrTable.setModel(self.model) self.form.attrTable.setItemDelegateForColumn(2, self.delegate) diff --git a/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py b/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py index 455183cf04..7694175f1f 100644 --- a/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py +++ b/src/Mod/Path/PathScripts/PathToolBitLibraryGui.py @@ -41,15 +41,17 @@ import traceback import uuid as UUID from functools import partial -#PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule()) -#PathLog.trackModule(PathLog.thisModule()) +# PathLog.setLevel(PathLog.Level.DEBUG, PathLog.thisModule()) +# PathLog.trackModule(PathLog.thisModule()) _UuidRole = PySide.QtCore.Qt.UserRole + 1 _PathRole = PySide.QtCore.Qt.UserRole + 2 + def translate(context, text, disambig=None): return PySide.QtCore.QCoreApplication.translate(context, text, disambig) + class _TableView(PySide.QtGui.QTableView): '''Subclass of QTableView to support rearrange and copying of ToolBits''' @@ -108,20 +110,20 @@ class _TableView(PySide.QtGui.QTableView): # pylint: disable=unused-variable row = stream.readInt32() srcRows.append(row) - col = stream.readInt32() - #PathLog.track(row, col) - cnt = stream.readInt32() - for i in range(cnt): - key = stream.readInt32() - val = stream.readQVariant() - #PathLog.track(' ', i, key, val, type(val)) + # col = stream.readInt32() + # PathLog.track(row, col) + # cnt = stream.readInt32() + # for i in range(cnt): + # key = stream.readInt32() + # val = stream.readQVariant() + # PathLog.track(' ', i, key, val, type(val)) # I have no idea what these three integers are, # or if they even are three integers, # but it seems to work out this way. - i0 = stream.readInt32() - i1 = stream.readInt32() - i2 = stream.readInt32() - #PathLog.track(' ', i0, i1, i2) + # i0 = stream.readInt32() + # i1 = stream.readInt32() + # i2 = stream.readInt32() + # PathLog.track(' ', i0, i1, i2) # get the uuids of all srcRows model = self.model() @@ -133,6 +135,7 @@ class _TableView(PySide.QtGui.QTableView): for uuid in srcUuids: model.removeRow(self._rowWithUuid(uuid)) + class ToolBitLibrary(object): '''ToolBitLibrary is the controller for displaying/selecting/creating/editing a collection of ToolBits.''' @@ -147,7 +150,7 @@ class ToolBitLibrary(object): self.LibFiles = [] if path: self.libraryLoad(path) - + self.form.addToolController.setEnabled(False) self.form.ButtonRemoveToolTable.setEnabled(False) self.form.ButtonRenameToolTable.setEnabled(False) @@ -216,9 +219,9 @@ class ToolBitLibrary(object): def toolDelete(self): PathLog.track() selectedRows = set([index.row() for index in self.toolTableView.selectedIndexes()]) - for row in sorted(list(selectedRows), key = lambda r: -r): + for row in sorted(list(selectedRows), key=lambda r: -r): self.model.removeRows(row, 1) - + def libraryDelete(self): PathLog.track() reply = QtGui.QMessageBox.question(self.form, 'Warning', "Delete " + os.path.basename(self.path) + "?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.Cancel) @@ -266,13 +269,13 @@ class ToolBitLibrary(object): else: self.form.librarySave.setEnabled(False) - def libraryOpen(self, path = None, filedialog=True): + def libraryOpen(self, path=None, filedialog=True): import glob PathLog.track() - + # Load default search path path = PathPreferences.lastPathToolLibrary() - + if filedialog or len(path) == 0: path = PySide.QtGui.QFileDialog.getExistingDirectory(self.form, 'Tool Library Path', PathPreferences.lastPathToolLibrary()) if len(path) > 0: @@ -285,24 +288,23 @@ class ToolBitLibrary(object): self.LibFiles.clear() self.form.lineLibPath.clear() self.form.lineLibPath.insert(path) - + # Find all tool tables in directory for file in glob.glob(path + '/*.fctl'): self.LibFiles.append(file) - + self.LibFiles.sort() - + # Add all tables to list for table in self.LibFiles: listWidgetItem = QtGui.QListWidgetItem() listItem = ToolTableListWidgetItem() listItem.setTableName(os.path.basename(table)) 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) - + self.path = [] self.form.ButtonRemoveToolTable.setEnabled(False) self.form.ButtonRenameToolTable.setEnabled(False) @@ -312,7 +314,7 @@ class ToolBitLibrary(object): self.model.setHorizontalHeaderLabels(self.columnNames()) self.toolTableView.resizeColumnsToContents() self.toolTableView.setUpdatesEnabled(True) - + # Search last selected table if len(self.LibFiles) > 0: for idx in range(len(self.LibFiles)): @@ -321,7 +323,7 @@ class ToolBitLibrary(object): # Not found, select first entry if idx >= len(self.LibFiles): idx = 0 - + # Load selected table self.libraryLoad(self.LibFiles[idx]) self.form.TableList.setCurrentRow(idx) @@ -339,7 +341,7 @@ class ToolBitLibrary(object): library = json.load(fp) for toolBit in library['tools']: - nr = toolBit['nr'] + nr = toolBit['nr'] bit = PathToolBit.findBit(toolBit['path']) if bit: PathLog.track(bit) @@ -359,15 +361,17 @@ class ToolBitLibrary(object): def libraryNew(self): self.libraryLoad(None) self.librarySaveAs() - + def renameLibrary(self): name = self.form.TableList.itemWidget(self.form.TableList.currentItem()).getTableName() - 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: os.rename(PathPreferences.lastPathToolLibrary() + '/' + name, PathPreferences.lastPathToolLibrary() + '/' + newName) self.libraryOpen(filedialog=False) - #def createToolBit(self): + # def createToolBit(self): # tool = PathToolBit.ToolBitFactory().Create() # #self.dialog = PySide.QtGui.QDialog(self.form) @@ -388,7 +392,7 @@ class ToolBitLibrary(object): library['version'] = 1 library['tools'] = tools for row in range(self.model.rowCount()): - toolNr = self.model.data(self.model.index(row, 0), PySide.QtCore.Qt.EditRole) + toolNr = self.model.data(self.model.index(row, 0), PySide.QtCore.Qt.EditRole) toolPath = self.model.data(self.model.index(row, 0), _PathRole) if PathPreferences.toolsStoreAbsolutePaths(): tools.append({'nr': toolNr, 'path': toolPath}) @@ -403,7 +407,7 @@ class ToolBitLibrary(object): fp.write(";\n") for row in range(self.model.rowCount()): - toolNr = self.model.data(self.model.index(row, 0), PySide.QtCore.Qt.EditRole) + toolNr = self.model.data(self.model.index(row, 0), PySide.QtCore.Qt.EditRole) toolPath = self.model.data(self.model.index(row, 0), _PathRole) bit = PathToolBit.Factory.CreateFrom(toolPath) @@ -421,41 +425,42 @@ class ToolBitLibrary(object): voffset = bit.Voffset if hasattr(bit, "Voffset") else "0" woffset = bit.Woffset if hasattr(bit, "Woffset") else "0" - diameter = bit.Diameter if hasattr(bit, "Diameter") else "0" + diameter = bit.Diameter.getUserPreferred()[0].split()[0] if hasattr(bit, "Diameter") else "0" frontangle = bit.FrontAngle if hasattr(bit, "FrontAngle") else "0" backangle = bit.BackAngle if hasattr(bit, "BackAngle") else "0" orientation = bit.Orientation if hasattr(bit, "Orientation") else "0" remark = bit.Label - fp.write(f"T{toolNr} "\ - f"P{pocket} "\ - f"X{xoffset} "\ - f"Y{yoffset} "\ - f"Z{zoffset} "\ - f"A{aoffset} "\ - f"B{boffset} "\ - f"C{coffset} "\ - f"U{uoffset} "\ - f"V{voffset} "\ - f"W{woffset} "\ - f"D{diameter} "\ - f"I{frontangle} "\ - f"J{backangle} "\ - f"Q{orientation} ;"\ - f"{remark}\n") + fp.write("T%s P%s X%s Y%s Z%s A%s B%s C%s U%s V%s W%s D%s I%s J%s Q%s ; %s\n" % + (toolNr, + pocket, + xoffset, + yoffset, + zoffset, + aoffset, + boffset, + coffset, + uoffset, + voffset, + woffset, + diameter, + frontangle, + backangle, + orientation, + remark)) FreeCAD.ActiveDocument.removeObject(bit.Name) else: - PathLog.error("Could not find tool #{}: {}".format(nr, library['tools'][nr])) + PathLog.error("Could not find tool #{} ".format(toolNr)) def librarySaveAs(self): - TooltableTypeJSON = translate("PathToolLibraryManager", "Tooltable JSON (*.fctl)") + TooltableTypeJSON = translate("PathToolLibraryManager", "Tooltable JSON (*.fctl)") TooltableTypeLinuxCNC = translate("PathToolLibraryManager", "LinuxCNC tooltable (*.tbl)") - filename = PySide.QtGui.QFileDialog.getSaveFileName(self.form, \ - translate("TooltableEditor", "Save toolbit library", None), \ - PathPreferences.lastPathToolLibrary(), "{};;{}".format(TooltableTypeJSON, \ + filename = PySide.QtGui.QFileDialog.getSaveFileName(self.form, + translate("TooltableEditor", "Save toolbit library", None), + PathPreferences.lastPathToolLibrary(), "{};;{}".format(TooltableTypeJSON, TooltableTypeLinuxCNC)) # filename = PySide.QtGui.QFileDialog.getSaveFileName(self.form, \ # 'Tool Library', PathPreferences.lastPathToolLibrary(), '*.fctl') @@ -505,7 +510,7 @@ class ToolBitLibrary(object): self.form.ButtonRemoveToolTable.clicked.connect(self.libraryDelete) self.form.ButtonRenameToolTable.clicked.connect(self.renameLibrary) - #self.form.libraryNew.clicked.connect(self.libraryNew) + # self.form.libraryNew.clicked.connect(self.libraryNew) self.form.libraryOpen.clicked.connect(partial(self.libraryOpen, filedialog=True)) self.form.librarySave.clicked.connect(self.librarySave) self.form.librarySaveAs.clicked.connect(self.librarySaveAs) @@ -522,11 +527,10 @@ class ToolBitLibrary(object): class ToolTableListWidgetItem(QtGui.QWidget): toolMoved = QtCore.Signal() - + def __init__(self): super(ToolTableListWidgetItem, self).__init__() - - #self.tlm = TLM + self.setAcceptDrops(True) self.mainLayout = QtGui.QHBoxLayout() @@ -536,31 +540,20 @@ 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(22, 22) self.iconQLabel.setPixmap(icon) - def dragEnterEvent(self, e): - #currentToolTable = self.tlm.getCurrentTableName() - thisToolTable = self.getTableName() - - #if not currentToolTable == thisToolTable: - # e.accept() - #else: - # e.ignore() + # def dragEnterEvent(self, e): + # currentToolTable = self.tlm.getCurrentTableName() + # thisToolTable = self.getTableName() def dropEvent(self, e): selectedTools = e.source().selectedIndexes() print("Drop: {}, {}".format(selectedTools, selectedTools[1].data())) - #if selectedTools: - #toolData = selectedTools[1].data() - - #if toolData: - #self.tlm.moveToTable(int(toolData), self.getTableName()) - #self.toolMoved.emit()