struct customTrack *chromGraphParser(char *genomeDb, struct customPp *cpp, char *formatType, char *markerType, char *columnLabels, char *name, char *description, struct hash *settings, boolean report) /* Parse out a chromGraph file (not including any track lines) */ { char *minVal = hashFindVal(settings, "minVal"); char *maxVal = hashFindVal(settings, "maxVal"); /* Get first lines of track. If track empty then * might as well return NULL here. */ struct slName *preview = getPreview(cpp, 10); if (preview == NULL) return NULL; /* Figure out format type - scanning preview if it isn't well defined. */ struct sqlConnection *conn = hAllocConn(genomeDb); int colCount; if (sameString(formatType, cgfFormatGuess)) { if (!figureOutFormat(preview, &formatType, &colCount)) errAbort("Can't figure out format for chromGraph track %s", emptyForNull(name)); } hashMayRemove(settings, "formatType"); /* Now that we know format can count columns and determine how to * chop up lines. */ colCount = countColumns(preview, formatType); Chopper chopper = getChopper(formatType); /* Figure out marker type - scanning marker column of preview if it isn't * well defined. */ if (sameString(markerType, cgfMarkerGuess)) { markerType = guessMarkerType(preview, chopper, conn, colCount); if (markerType == NULL) errAbort("Can't figure out marker column type for chromGraph track %s", emptyForNull(name)); } hashMayRemove(settings, "markerType"); /* Figure out if columns are labeled in file, using preview if needed. */ if (sameString(columnLabels, cgfColLabelGuess)) { if (firstRowConsistentWithData(preview->name, chopper, colCount)) columnLabels = cgfColLabelNumbered; else columnLabels = cgfColLabelFirstRow; } hashMayRemove(settings, "columnLabels"); returnPreview(cpp, &preview); boolean labelsInData = sameString(columnLabels, cgfColLabelFirstRow); /* Load data into list of labeled temp files. */ struct labeledFile *fileEl, *fileList; fileList = parseToLabeledFiles(cpp, colCount, formatType, markerType, labelsInData, conn, report); saveLabeledFileList(fileList); /* Create a customTrack for each element in file list. */ struct customTrack *outputTracks = NULL; for (fileEl = fileList; fileEl != NULL; fileEl = fileEl->next) { struct customTrack *track; AllocVar(track); struct trackDb *tdb = customTrackTdbDefault(); track->tdb = tdb; /* Figure out short and long names and type*/ char shortLabel[128]; char longLabel[512]; if (name == NULL) name = track->tdb->shortLabel; if (description == NULL) description = track->tdb->longLabel; if (colCount > 1 || labelsInData) { safef(shortLabel, sizeof(shortLabel), "%s %s", name, fileEl->label); safef(longLabel, sizeof(longLabel), "%s %s", description, fileEl->label); } else { safef(shortLabel, sizeof(shortLabel), "%s", name); safef(longLabel, sizeof(longLabel), "%s", description); } tdb->shortLabel = cloneString(shortLabel); tdb->longLabel = cloneString(longLabel); tdb->type = "chromGraph"; tdb->track = customTrackTableFromLabel(tdb->shortLabel); tdb->table = cloneString(tdb->track); track->dbTableName = NULL; /* Create settings */ struct dyString *dy = dyStringNew(0); dyStringAppend(dy, hashToRaString(settings)); dyStringPrintf(dy, "binaryFile %s\n", fileEl->fileName); dyStringPrintf(dy, "type %s\n", tdb->type); dyStringPrintf(dy, "tdbType %s\n", tdb->type); /* Needed if outside factory */ if (minVal == NULL) dyStringPrintf(dy, "minVal %g\n", fileEl->minVal); if (maxVal == NULL) dyStringPrintf(dy, "maxVal %g\n", fileEl->maxVal); tdb->settings = dyStringCannibalize(&dy); /* Add to list. */ slAddHead(&outputTracks, track); } hFreeConn(&conn); slReverse(&outputTracks); return outputTracks; }
if(cp->player() <= team->getTanks().size()) cp->setTank(team->getTanks().at(cp->player()-1)); connect(cp, &CircleOfPower::notifyDesactive, this, &FormGame::circleOfPowerDesactive); } object->initObject(); } _tank = _tanks.at(index_of_this_player); foreach (ITank* tank, _tanks) { tank->setPrincipalReference(_tank); tank->initTank(); } _ui->_l_preview_tank->setPixmap(_tank->getPreview()); _preview_skill_1 = _tank->getSkill(1)->getPreview(); _preview_skill_2 = _tank->getSkill(2)->getPreview(); _preview_skill_3 = _tank->getSkill(3)->getPreview(); _no_active_skill_1 = getNoActiveSkill(_preview_skill_1); _no_active_skill_2 = getNoActiveSkill(_preview_skill_2); _no_active_skill_3 = getNoActiveSkill(_preview_skill_3); _skill_locked = QPixmap(":/icons/skill_locked.png"); _ui->_l_tank_name->setText(_tank->getName()); _ui->_l_preview_skill_1->setPixmap(QPixmap()); _ui->_l_preview_skill_2->setPixmap(QPixmap());