LabelCanvas * LabelCanvas::read(char *& st, UmlCanvas * canvas, char * k) { if (strcmp(k, "label")) return 0; QString s = read_string(st); bool bold = FALSE; bool italic = FALSE; bool underlined = FALSE; for (;;) { k = read_keyword(st); if (!strcmp(k, "bold")) bold = TRUE; else if (!strcmp(k, "italic")) italic = TRUE; else if (!strcmp(k, "underlined")) underlined = TRUE; else break; } int x = (int) read_double(st); LabelCanvas * result = new LabelCanvas(s, canvas, x, (int) read_double(st), bold, italic, underlined); if (!strcmp(k, "xyz")) result->setZValue(read_double(st)); else if (!strcmp(k, "xy")) // old version ;//result->setZValue(OLD_LABEL_Z); else wrong_keyword(k, "xyz"); return result; }