void K3b::DataMultisessionImportDialog::addMedium( const K3b::Medium& medium ) { QTreeWidgetItem* mediumItem = new QTreeWidgetItem( d->sessionView ); QFont fnt( mediumItem->font(0) ); fnt.setBold( true ); mediumItem->setText( 0, medium.shortString() ); mediumItem->setFont( 0, fnt ); mediumItem->setIcon( 0, QIcon::fromTheme("media-optical-recordable") ); const K3b::Device::Toc& toc = medium.toc(); QTreeWidgetItem* sessionItem = 0; int lastSession = 0; for ( K3b::Device::Toc::const_iterator it = toc.begin(); it != toc.end(); ++it ) { const K3b::Device::Track& track = *it; if( track.session() != lastSession ) { lastSession = track.session(); QString sessionInfo; if ( track.type() == K3b::Device::Track::TYPE_DATA ) { K3b::Iso9660 iso( medium.device(), track.firstSector().lba() ); if ( iso.open() ) { sessionInfo = iso.primaryDescriptor().volumeId; } } else { int numAudioTracks = 1; while ( it != toc.end() && ( *it ).type() == K3b::Device::Track::TYPE_AUDIO && ( *it ).session() == lastSession ) { ++it; ++numAudioTracks; } --it; sessionInfo = i18np("1 audio track", "%1 audio tracks", numAudioTracks ); } sessionItem = new QTreeWidgetItem( mediumItem, sessionItem ); sessionItem->setText( 0, i18n( "Session %1", lastSession ) + ( sessionInfo.isEmpty() ? QString() : " (" + sessionInfo + ')' ) ); if ( track.type() == K3b::Device::Track::TYPE_AUDIO ) sessionItem->setIcon( 0, QIcon::fromTheme( "audio-x-generic" ) ); else sessionItem->setIcon( 0, QIcon::fromTheme( "application-x-tar" ) ); d->sessions.insert( sessionItem, SessionInfo( lastSession, medium.device() ) ); } } if( 0 == lastSession ) { // the medium item in case we have no session info (will always use the last session) d->sessions.insert( mediumItem, SessionInfo( 0, medium.device() ) ); } else { // we have a session item, there is no need to select the medium as a whole mediumItem->setFlags( mediumItem->flags() ^ Qt::ItemIsSelectable ); } mediumItem->setExpanded( true ); }
SessionInfo LoadSession(const char *fileName) { ifstream inFile; string lineBuffer; double val = 0; SessionInfo rv = SessionInfo(); inFile.open(fileName); if (inFile.fail()){ perror(fileName); exit(1); } string variableName; string variableValue; string line; bool foundEq = false; while(getline(inFile,line)) { //while the file isn't all read if (line[0] == '#' || line[0] == '[') continue; //ignore comments and sections for now for(int i=0; i < line.size(); i++) { if(line[i] != '=' && foundEq == false) { //get the equal sign continue; } else if(line[i] == '=') { //set everything before to varibale name variableName = line.substr(0,i); foundEq = true; } else { //set everything after to variable value variableValue = line.substr(i); break; } } if (variableName == "randomSeed") { //new neuron layer rv.randomSeed = atof(variableValue.c_str()); } else if (variableName == "epoch"){ rv.epoch = atoi(variableValue.c_str()); } else if (variableName == "maxNetworks"){ rv.maxNetworks = atoi(variableValue.c_str()); } else if (variableName == "isPermute"){ rv.isPermute = atoi(variableValue.c_str()); } else if (variableName == "minLayers"){ rv.minLayers = atoi(variableValue.c_str()); } else if (variableName == "maxLayers"){ rv.maxLayers = atoi(variableValue.c_str()); } else if (variableName == "minNeurons"){ rv.minNeurons = atoi(variableValue.c_str()); } else if (variableName == "maxNeurons"){ rv.maxNeurons = atoi(variableValue.c_str()); } else if (variableName == "numInputs"){ rv.numInputs = atoi(variableValue.c_str()); } foundEq=false; } inFile.close(); return rv = SessionInfo(); }