QGraphicsSvgItem* GraphicsWorkflow::addAllSvgItems( const QString& name, const QMap<int,QString>& cmds) { QGraphicsSvgItem *myitem = NULL; if ( myitem == NULL ) { QByteArray myxml = SafetYAWL::readStringFromFile(name); QMap<QString,QPair<QPointF,QString> > ids = getXmlIds(myxml); QString curtitle = SafetYAWL::getConf()["GeneralOptions/currentflowtitle"]; // qDebug(".......curtitle: |%s|", qPrintable(curtitle)); QGraphicsTextItem* titleitem = NULL; QString includetitle = SafetYAWL::getConf()["GeneralOptions/currentflowtitle.include"]; qDebug("includetitle: %s", qPrintable(includetitle)); if ( includetitle.compare("on") == 0 ) { titleitem = NULL; addInfoGraphText(ids,curtitle,titleitem); if ( titleitem ) { _items.append(titleitem); } } QString includedate = SafetYAWL::getConf()["Graphs/infotext.include"]; if ( includedate.compare("on") == 0 ) { SYD << tr("QGraphicsTextItem* myitem = addInfoGraphDateText(ids);"); QGraphicsTextItem* myitem = addInfoGraphDateText(ids); if ( myitem) { _items.append(myitem); } } QMap<QString,QString> svgs = extractSvgElements(myxml); for(int i =0; i < svgs.keys().count(); i++) { QString key = svgs.keys().at(i); QString svg = svgs[ key]; GraphicsSvgItemLive localitem(svg); myitem = localitem.loadSvgItem(); if ( MainWindow::configurator->getWorkflow() != NULL ) { QString info = MainWindow::configurator->getWorkflow()->infoModeMap()[ids[key].second]; if (key.startsWith("node")) { myitem->setToolTip(tr("%1").arg(info)); } } myitem->setFlags(QGraphicsItem::ItemClipsToShape| QGraphicsItem::ItemIsMovable); myitem->setCacheMode(QGraphicsItem::NoCache); myitem->setZValue(0); scene()->addItem(myitem); myitem->setPos(ids[key].first); _items.append(myitem); } } else { //QSvgRenderer *renderer = new QSvgRenderer(name); } qDebug("...addAllSvgItems..........(6)..."); SafetYAWL::streamlog << SafetLog::Action << tr("Gráfico de \"Flujo de Trabajo\" generado correctamente...ok!"); doGroup(); SafetYAWL::streamlog << SafetLog::Action << tr("Agrupando Nodos...ok!"); return myitem; }
//0:exit,1:continue int CwxBinlogOp::doCommand(char* szCmd) { string strCmd; list < string > value; CwxCommon::trim(szCmd); strCmd = szCmd; CwxCommon::split(strCmd, value, ' '); list<string>::iterator iter = value.begin(); //remove the empty value while (iter != value.end()) { if ((*iter).length() == 0) { value.erase(iter); iter = value.begin(); continue; } iter++; } if (value.size() == 0) return 1; iter = value.begin(); CWX_UINT32 uiItemNum = value.size(); if (0 == strcasecmp((*iter).c_str(), "help")) { doHelp(); } else if (0 == strcasecmp((*iter).c_str(), "info")) { doInfo(); } else if (0 == strcasecmp((*iter).c_str(), "next")) { CWX_UINT32 uiNum = 1; if (1 != uiItemNum) { iter++; uiNum = strtoul((*iter).c_str(), NULL, 0); } doNext(uiNum); } else if (0 == strcasecmp((*iter).c_str(), "prev")) { CWX_UINT32 uiNum = 1; if (1 != uiItemNum) { iter++; uiNum = strtoul((*iter).c_str(), NULL, 0); } doPrev(uiNum); } else if (0 == strcasecmp((*iter).c_str(), "sid")) { if (2 != uiItemNum) { printf("Invalid sid command, using: sid value.\n"); return 1; } iter++; doSid(strtoull((*iter).c_str(), NULL, 0)); } else if (0 == strcasecmp((*iter).c_str(), "rec")) { if (2 != uiItemNum) { printf("Invalid rec command, using: rec value.\n"); return 1; } iter++; doRecord(strtoul((*iter).c_str(), NULL, 0)); } else if (0 == strcasecmp((*iter).c_str(), "group")) { if (2 != uiItemNum) { printf("Invalid group command, using: group value.\n"); return 1; } iter++; doGroup(strtoul((*iter).c_str(), NULL, 0)); } else if (0 == strcasecmp((*iter).c_str(), "key")) { if (3 != uiItemNum) { printf("Invalid key command, using: key k v.\n"); return 1; } iter++; string strKey = *iter; doKey(strKey.c_str(), (*iter).c_str()); } else if (0 == strcasecmp((*iter).c_str(), "head")) { doHead(); } else if (0 == strcasecmp((*iter).c_str(), "data")) { doData(); } else if (0 == strcasecmp((*iter).c_str(), "save")) { if (1 == uiItemNum) { printf("Invalid save command, using: save file.\n"); return 1; } iter++; doSave(*iter); } else if (0 == strcasecmp((*iter).c_str(), "exit")) { return 0; } else { printf("Invalid command %s\n", (*iter).c_str()); doHelp(); } return 1; }