[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/designer/src Instance.py MenuBar.py
From: |
Jason Cater |
Subject: |
gnue/designer/src Instance.py MenuBar.py |
Date: |
Wed, 11 Jul 2001 11:41:34 -0700 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 01/07/11 11:41:34
Modified files:
designer/src : Instance.py MenuBar.py
Log message:
Got 'Reorder by Location' working. If you select a block, it reorders
all elements in that block. If you reorder a page, it reorders all elements
including any blocks. It places items in this order: All hidden fields, All
Boxes, All other elements other than blocks, all blocks; it reorders according
to y, then x values. This has only been partially tested on a few forms...
save a copy before using.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/designer/src/Instance.py.diff?cvsroot=OldCVS&tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/designer/src/MenuBar.py.diff?cvsroot=OldCVS&tr1=1.8&tr2=1.9&r1=text&r2=text
Patches:
Index: gnue/designer/src/Instance.py
diff -u gnue/designer/src/Instance.py:1.16 gnue/designer/src/Instance.py:1.17
--- gnue/designer/src/Instance.py:1.16 Tue Jul 3 18:43:11 2001
+++ gnue/designer/src/Instance.py Wed Jul 11 11:41:34 2001
@@ -218,8 +218,19 @@
self.makeDirty()
def onDeleteObject (self, object, handler):
+
+ # Notify all listeners
for listener in self.objectListeners:
listener.onDeleteObject(object, handler)
+
+ # Delete the actual object from its parent
+ i = 0
+ while i < len(object._parent._children) and \
+ object._parent._children[i] != object:
+ i = i + 1
+ if object._parent._children[i] == object:
+ object._parent._children.pop(i)
+
self.makeDirty()
Index: gnue/designer/src/MenuBar.py
diff -u gnue/designer/src/MenuBar.py:1.8 gnue/designer/src/MenuBar.py:1.9
--- gnue/designer/src/MenuBar.py:1.8 Wed Jun 27 18:57:16 2001
+++ gnue/designer/src/MenuBar.py Wed Jul 11 11:41:34 2001
@@ -191,8 +191,77 @@
Incubator.deleteObject(self.instance, self.instance._form, self.object)
def OnReorderLayout(self, event):
- pass
+ unqId = 0
+ hiddenObjects = []
+ boxObjects = {}
+ navObjects = {}
+ blockObjects = {}
+ self.object._upperX = 99999
+ self.object._upperY = 99999
+
+ # Handle each child (note we are working from a copy
+ # because self.oject._children will be morphing
+ for object in self.object._children[:]:
+ if hasattr(object, 'hidden') and object.hidden:
+ hiddenObjects.append(object)
+ elif object.getObjectType() == 'GFBlock':
+ object._popupMenu.OnReorderLayout(event)
+ object.__savedChildren = object._children[:]
+ for o2 in object.__savedChildren:
+ self.instance.onDeleteObject(o2, __name__)
+
+ oid = "%5d.%5d.%5d" % (object._upperY, object._upperX, unqId)
+ unqId = unqId + 1
+ blockObjects[oid] = object
+ else:
+ if hasattr(object,'y') and object.y < self.object._upperY:
+ self.object._upperY = object.y
+ if hasattr(object,'x') and object.x < self.object._upperX:
+ self.object._upperX = object.x
+
+ oid = "%5d.%5d.%5d" % (object.y, object.x, unqId)
+ unqId = unqId + 1
+ if object.getObjectType() == 'GFBox':
+ boxObjects[oid] = object
+ else:
+ navObjects[oid] = object
+
+ # Notify everyone that this object was deleted
+ self.instance.onDeleteObject(object, __name__)
+
+ self.object._children = []
+ # First, add back hidden objects all
+ for object in hiddenObjects:
+# self.object._children.append(object)
+ self.instance.onCreateObject(object, __name__)
+
+ # Now, add hidden objects
+ boxes = boxObjects.keys()
+ boxes.sort()
+ for box in boxes:
+ self.object._children.append(boxObjects[box])
+ self.instance.onCreateObject(boxObjects[box], __name__)
+
+ # The rest of the objects (other than blocks) go here
+ nav = navObjects.keys()
+ nav.sort()
+ for n in nav:
+ self.object._children.append(navObjects[n])
+ self.instance.onCreateObject(navObjects[n], __name__)
+
+ # And, finally, any child blocks
+ blocks = blockObjects.keys()
+ blocks.sort()
+ for block in blocks:
+ children = blockObjects[block].__savedChildren[:]
+ self.object._children.append(blockObjects[block])
+ self.instance.onCreateObject(blockObjects[block], __name__)
+ for child in children:
+ blockObjects[block]._children.append(child)
+ self.instance.onCreateObject(child,__name__)
+
+
def OnCreateObject(self, event):
GDebug.printMesg(3, "Creating Object")
tag = self._newMap[event.GetId()]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/designer/src Instance.py MenuBar.py,
Jason Cater <=