Draft: Better positioned layers button popup + new layer entry
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -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])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user