[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

two small changes



This one eliminates one of three startup warnings (this one is caused by 
unref'ing a NULL font; I'm not sure if it's correct to fix it here, 
maybe the font shouldn't be non-NULL in the first place).

Index: ER/attribute.c
===================================================================
RCS file: /cvs/gnome/dia/objects/ER/attribute.c,v
retrieving revision 1.32
diff -u -r1.32 attribute.c
--- ER/attribute.c      24 Apr 2003 19:22:23 -0000      1.32
+++ ER/attribute.c      17 Jul 2003 20:05:14 -0000
@@ -544,7 +544,8 @@
   if (attr != NULL)
     attribute->multivalue = data_boolean(attribute_first_data(attr));
 
-  dia_font_unref(attribute->font);
+  if (attribute->font)
+    dia_font_unref(attribute->font);
   attribute->font = NULL;
   attr = object_find_attribute (obj_node, "font");
   if (attr != NULL)
===================================================================

This one fixes 3 existing and adds 2 new connection points in Component 
object in UML. May I safely add connections to existing objects without 
breaking compatibility ? (I've tried to load some old diagram with one 
component, doesn't crash).

Index: objects/UML/component.c
===================================================================
RCS file: /cvs/gnome/dia/objects/UML/component.c,v
retrieving revision 1.28
diff -u -r1.28 component.c
--- objects/UML/component.c    13 Jul 2003 21:11:23 -0000    1.28
+++ objects/UML/component.c    17 Jul 2003 20:36:52 -0000
@@ -40,7 +40,7 @@
 struct _Component {
   Element element;
 
-  ConnectionPoint connections[8];
+  ConnectionPoint connections[10];
 
   char *stereotype;
   Text *text;
@@ -184,7 +184,7 @@
   assert(handle!=NULL);
   assert(to!=NULL);
 
-  assert(handle->id < 8);
+  assert(handle->id < 10);
 }
 
 static void
@@ -267,6 +267,7 @@
   Element *elem = &cmp->element;
   Object *obj = &elem->object;
   Point p;
+  real cw2, ch;
 
   cmp->stereotype = remove_stereotype_from_string(cmp->stereotype);
   if (!cmp->st_stereotype) {
@@ -300,22 +301,29 @@
               2*COMPONENT_MARGIN_X + COMPONENT_CWIDTH);
   }
 
+  cw2 = COMPONENT_CWIDTH/2;
+  ch = COMPONENT_CHEIGHT;
   /* Update connections: */
-  cmp->connections[0].pos = elem->corner;
-  cmp->connections[1].pos.x = elem->corner.x + elem->width / 2.0;
+  cmp->connections[0].pos.x = elem->corner.x + cw2;
+  cmp->connections[0].pos.y = elem->corner.y;
+  cmp->connections[1].pos.x = elem->corner.x + cw2 + (elem->width - 
cw2) / 2;
   cmp->connections[1].pos.y = elem->corner.y;
   cmp->connections[2].pos.x = elem->corner.x + elem->width;
   cmp->connections[2].pos.y = elem->corner.y;
-  cmp->connections[3].pos.x = elem->corner.x;
+  cmp->connections[3].pos.x = elem->corner.x + cw2;
   cmp->connections[3].pos.y = elem->corner.y + elem->height / 2.0;
   cmp->connections[4].pos.x = elem->corner.x + elem->width;
   cmp->connections[4].pos.y = elem->corner.y + elem->height / 2.0;
-  cmp->connections[5].pos.x = elem->corner.x;
+  cmp->connections[5].pos.x = elem->corner.x + cw2;
   cmp->connections[5].pos.y = elem->corner.y + elem->height;
-  cmp->connections[6].pos.x = elem->corner.x + elem->width / 2.0;
+  cmp->connections[6].pos.x = elem->corner.x + cw2 + (elem->width - cw2)/2;
   cmp->connections[6].pos.y = elem->corner.y + elem->height;
   cmp->connections[7].pos.x = elem->corner.x + elem->width;
   cmp->connections[7].pos.y = elem->corner.y + elem->height;
+  cmp->connections[8].pos.x = elem->corner.x;
+  cmp->connections[8].pos.y = elem->corner.y + elem->height / 2.0 - ch;
+  cmp->connections[9].pos.x = elem->corner.x;
+  cmp->connections[9].pos.y = elem->corner.y + elem->height / 2.0 + ch;
  
   cmp->connections[0].directions = DIR_NORTH|DIR_WEST;
   cmp->connections[1].directions = DIR_NORTH;
@@ -325,6 +333,8 @@
   cmp->connections[5].directions = DIR_SOUTH|DIR_WEST;
   cmp->connections[6].directions = DIR_SOUTH;
   cmp->connections[7].directions = DIR_SOUTH|DIR_EAST;
+  cmp->connections[8].directions = DIR_WEST;
+  cmp->connections[9].directions = DIR_WEST;
===================================================================

Krzysztof





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] Mail converted by Mofo Magic and the Flying D

 
All trademarks and copyrights are the property of their respective owners.

Other Directory Sites: SeekWonder | Directory Owners Forum

GuideSMACK