From d4f59e173ae561e8d9a6c39f68f0d5ea83da1ef8 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Fri, 11 Aug 2017 21:33:33 -0300 Subject: [PATCH] Arch: Fixed load error in console mode --- src/Mod/Arch/ArchMaterial.py | 78 ++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/Mod/Arch/ArchMaterial.py b/src/Mod/Arch/ArchMaterial.py index 55300e0880..aaea087c0f 100644 --- a/src/Mod/Arch/ArchMaterial.py +++ b/src/Mod/Arch/ArchMaterial.py @@ -498,46 +498,46 @@ class _ViewProviderArchMultiMaterial: def isShow(self): return True - -class MultiMaterialDelegate(QtGui.QStyledItemDelegate): - def __init__(self, parent=None, *args): - self.mats = [] - for obj in FreeCAD.ActiveDocument.Objects: - if obj.isDerivedFrom("App::MaterialObject"): - self.mats.append(obj) - QtGui.QStyledItemDelegate.__init__(self, parent, *args) - - def createEditor(self,parent,option,index): - if index.column() == 1: - editor = QtGui.QComboBox(parent) - elif index.column() == 2: - ui = FreeCADGui.UiLoader() - editor = ui.createWidget("Gui::InputField") - editor.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Minimum) - editor.setParent(parent) - else: - editor = QtGui.QLineEdit(parent) - return editor - - def setEditorData(self, editor, index): - if index.column() == 1: - idx = -1 - for i,m in enumerate(self.mats): - editor.addItem(m.Label) - if m.Label == index.data(): - idx = i - editor.setCurrentIndex(idx) - else: - QtGui.QStyledItemDelegate.setEditorData(self, editor, index) - - def setModelData(self, editor, model, index): - if index.column() == 1: - if editor.currentIndex() == -1: - model.setData(index, "") +if FreeCAD.GuiUp: + class MultiMaterialDelegate(QtGui.QStyledItemDelegate): + def __init__(self, parent=None, *args): + self.mats = [] + for obj in FreeCAD.ActiveDocument.Objects: + if obj.isDerivedFrom("App::MaterialObject"): + self.mats.append(obj) + QtGui.QStyledItemDelegate.__init__(self, parent, *args) + + def createEditor(self,parent,option,index): + if index.column() == 1: + editor = QtGui.QComboBox(parent) + elif index.column() == 2: + ui = FreeCADGui.UiLoader() + editor = ui.createWidget("Gui::InputField") + editor.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Minimum) + editor.setParent(parent) else: - model.setData(index, self.mats[editor.currentIndex()].Label) - else: - QtGui.QStyledItemDelegate.setModelData(self, editor, model, index) + editor = QtGui.QLineEdit(parent) + return editor + + def setEditorData(self, editor, index): + if index.column() == 1: + idx = -1 + for i,m in enumerate(self.mats): + editor.addItem(m.Label) + if m.Label == index.data(): + idx = i + editor.setCurrentIndex(idx) + else: + QtGui.QStyledItemDelegate.setEditorData(self, editor, index) + + def setModelData(self, editor, model, index): + if index.column() == 1: + if editor.currentIndex() == -1: + model.setData(index, "") + else: + model.setData(index, self.mats[editor.currentIndex()].Label) + else: + QtGui.QStyledItemDelegate.setModelData(self, editor, model, index) class _ArchMultiMaterialTaskPanel: