diff --git a/src/Mod/Draft/DraftGui.py b/src/Mod/Draft/DraftGui.py index 1dfc605f99..a990b23334 100644 --- a/src/Mod/Draft/DraftGui.py +++ b/src/Mod/Draft/DraftGui.py @@ -2026,7 +2026,7 @@ class DraftToolBar: def selectplane(self): FreeCADGui.runCommand("Draft_SelectPlane") - def popupMenu(self,llist,ilist=None): + def popupMenu(self,llist,ilist=None,pos=None): "pops up a menu filled with the given list" self.groupmenu = QtGui.QMenu() for i,l in enumerate(llist): @@ -2034,7 +2034,8 @@ class DraftToolBar: self.groupmenu.addAction(ilist[i],l) else: self.groupmenu.addAction(l) - pos = FreeCADGui.getMainWindow().cursor().pos() + if not pos: + pos = FreeCADGui.getMainWindow().cursor().pos() self.groupmenu.popup(pos) QtCore.QObject.connect(self.groupmenu,QtCore.SIGNAL("triggered(QAction *)"),self.popupTriggered) diff --git a/src/Mod/Draft/DraftLayer.py b/src/Mod/Draft/DraftLayer.py index 268df6f591..f98908b335 100644 --- a/src/Mod/Draft/DraftLayer.py +++ b/src/Mod/Draft/DraftLayer.py @@ -346,7 +346,7 @@ class ViewProviderLayerContainer: def mergeByName(self): if hasattr(self,"Object") and hasattr(self.Object,"Group"): - layers = [o for o in self.Object.Group if (hasattr(o,"Proxy") and isinstance(otherobj.Proxy,Layer))] + layers = [o for o in self.Object.Group if (hasattr(o,"Proxy") and isinstance(o.Proxy,Layer))] todelete = [] for layer in layerss: if layer.Label[-1].isdigit() and layer.Label[-2].isdigit() and layer.Label[-3].isdigit(): diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index c1a0ad2ca6..c5c9b1eb9a 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -5314,22 +5314,28 @@ class SetAutoGroup(): gn.extend(Draft.getGroupNames()) if gn: self.groups.extend(gn) - self.labels = ["None"] + self.labels = [translate("draft","None")] self.icons = [self.ui.getIcon(":/icons/button_invalid.svg")] for g in gn: o = FreeCAD.ActiveDocument.getObject(g) if o: self.labels.append(o.Label) self.icons.append(o.ViewObject.Icon) + self.labels.append(translate("draft","Add new Layer")) + self.icons.append(self.ui.getIcon(":/icons/document-new.svg")) self.ui.sourceCmd = self - self.ui.popupMenu(self.labels,self.icons) + from PySide import QtCore + pos = self.ui.autoGroupButton.mapToGlobal(QtCore.QPoint(0,self.ui.autoGroupButton.geometry().height())) + self.ui.popupMenu(self.labels,self.icons,pos) def proceed(self,labelname): self.ui.sourceCmd = None - if labelname == "None": - self.ui.setAutoGroup(None) - else: - if labelname in self.labels: + if labelname in self.labels: + if labelname == self.labels[0]: + self.ui.setAutoGroup(None) + elif labelname == self.labels[-1]: + FreeCADGui.runCommand("Draft_Layer") + else: i = self.labels.index(labelname) self.ui.setAutoGroup(self.groups[i])