ho un file .cpp che dice al suo interno come trasformare dei dati presenti in un programma.
Questo codice produce una pagina web principale e tante pagine contenti i diversi oggetti che ha in lista da esportare.
Ora io vorrei fare assegnare al programma un nome basto invece che sulla variabile "title" su quella "ID"
Questo è il codice che devo modificare
Qualcuno riesce a farmi capire cosa devo cambiarecodice:bool HTMLExporter::writeEntryFiles() { if(m_entryXSLTFile.isEmpty()) { myWarning() << "no entry XSLT file"; return false; } const int start = 60; const int stepSize = qMax(1, entries().count()/40); int j = 0; // now worry about actually exporting entry files // I can't reliable encode a string as a URI, so I'm punting, and I'll just replace everything but // a-zA-Z0-9 with an underscore. This MUST match the filename template in tellico2html.xsl // the id is used so uniqueness is guaranteed const QRegExp badChars(QLatin1String("[^-a-zA-Z0-9]")); FieldFormat::Request formatted = (options() & Export::ExportFormatted ? FieldFormat::ForceFormat : FieldFormat::AsIsFormat); KUrl outputFile = fileDir(); GUI::CursorSaver cs(Qt::WaitCursor); HTMLExporter exporter(collection()); long opt = options() | Export::ExportForce; opt &= ~ExportProgress; exporter.setOptions(opt); exporter.setXSLTFile(m_entryXSLTFile); exporter.setCollectionURL(url()); bool parseDOM = true; const QString title = QLatin1String("title"); const QString html = QLatin1String(".html"); bool multipleTitles = collection()->fieldByName(title)->hasFlag(Data::Field::AllowMultiple); Data::EntryList entries = this->entries(); // not const since the pointer has to be copied foreach(Data::EntryPtr entryIt, entries) { QString file = entryIt->formattedField(title, formatted); // but only use the first title if it has multiple if(multipleTitles) { file = file.section(QLatin1Char(';'), 0, 0); } file.replace(badChars, QLatin1String("_")); file += QLatin1Char('-') + QString::number(entryIt->id()) + html; outputFile.setFileName(file); exporter.setEntries(Data::EntryList() << entryIt); exporter.setURL(outputFile); exporter.exec(); // no longer need to parse DOM if(parseDOM) { parseDOM = false; exporter.setParseDOM(false); // this is rather stupid, but I'm too lazy to figure out the better way // since we parsed the DOM for the first entry file to grab any // images used in the template, need to resave it so the image links // get written correctly exporter.exec(); } if(j%stepSize == 0) { if(options() & ExportProgress) { ProgressManager::self()->setProgress(this, qMin(start+j/stepSize, 99)); } kapp->processEvents(); } ++j; } // the images in "pics/" are special data images, copy them always // since the entry files may refer to them, but we don't know that QStringList dataImages; dataImages << QLatin1String("checkmark.png"); for(uint i = 1; i <= 10; ++i) { dataImages << QString::fromLatin1("stars%1.png").arg(i); } KUrl dataDir; dataDir.setPath(KGlobal::dirs()->findResourceDir("appdata", QLatin1String("pics/tellico.png")) + QLatin1String("pics/")); KUrl target = fileDir(); target.addPath(QLatin1String("pics/")); KIO::NetAccess::mkdir(target, m_widget); foreach(const QString& dataImage, dataImages) { dataDir.setFileName(dataImage); target.setFileName(dataImage); KIO::NetAccess::file_copy(dataDir, target, m_widget); }
PS questo naturalmente è parte del file intero.

Rispondi quotando