52
52
while (tmpValue.length() > maxLength)
54
lines += QString("%1=%2\n").arg(name,tmpValue.left(maxLength));
54
lines += QString::fromLatin1("%1=%2\n").arg(name,tmpValue.left(maxLength));
55
55
tmpValue = tmpValue.mid(maxLength);
58
lines += QString("%1=%2\n").arg(name,tmpValue);
58
lines += QString::fromLatin1("%1=%2\n").arg(name,tmpValue);
67
67
escape( const QString &value )
70
s.replace( "\\", "\\\\" );
71
s.replace( "\n", "\\n" );
72
s.replace( "\t", "\\t" );
70
s.replace( QLatin1String( "\\" ), QLatin1String( "\\\\" ) );
71
s.replace( QLatin1String( "\n" ), QLatin1String( "\\n" ) );
72
s.replace( QLatin1String( "\t" ), QLatin1String( "\\t" ) );
85
s.replace( "\\n", "\n" );
86
s.replace( "\\t", "\t" );
87
s.replace( "\\\\", "\\" );
85
s.replace( QLatin1String( "\\n" ), QLatin1String( "\n" ) );
86
s.replace( QLatin1String( "\\t" ), QLatin1String( "\t" ) );
87
s.replace( QLatin1String( "\\\\" ), QLatin1String( "\\" ) );
120
120
set(const QString& type, const QVariant &d)
122
122
//kDebug() << "set: " << type << ", " << d.toString();
123
if(type.contains(QRegExp( "^T.*_.*$" ) )){
123
if(type.contains(QRegExp( QLatin1String( "^T.*_.*$" )) )){
124
124
kDebug(60010) << "Error: custom cdinfo::set data can not start with T and contain a _";
127
if(type.toUpper() == "DTITLE"){
127
if(type.toUpper() == QLatin1String( "DTITLE" )){
128
128
kDebug(60010) << "Error: type: DTITLE is reserved and can not be set.";
140
set(QLatin1String( "title" ), d);
143
set(QLatin1String( "comment" ), d);
146
set(QLatin1String( "artist" ), d);
149
set(QLatin1String( "genre" ), d);
152
set(QLatin1String( "year" ), d);
155
set(QLatin1String( "length" ), d);
158
set(QLatin1String( "category" ), d);
225
225
QString TrackInfo::toString() const {
228
int track = get("tracknumber").toInt(&ok);
228
int track = get(QLatin1String( "tracknumber" )).toInt(&ok);
230
230
kDebug(60010) << "Warning toString() on a track that doesn't have track number assigned.";
231
231
QMap<QString, QVariant>::const_iterator i = d->data.constBegin();
232
232
while (i != d->data.constEnd()) {
233
if(i.key() != "COMMENT" && i.key() != "TITLE" && i.key() != "ARTIST" && i.key() != "TRACKNUMBER") {
234
out += d->createLine(QString("T%1_%2").arg(i.key()).arg(track),i.value().toString());
233
if(i.key() != QLatin1String( "COMMENT" ) && i.key() != QLatin1String( "TITLE" ) && i.key() != QLatin1String( "ARTIST" ) && i.key() != QLatin1String( "TRACKNUMBER" )) {
234
out += d->createLine(QString::fromLatin1("T%1_%2").arg(i.key()).arg(track),i.value().toString());
295
295
QStringList::ConstIterator it = lineList.begin();
297
QRegExp rev("# Revision: (\\d+)");
298
QRegExp eol("[\r\n]");
297
QRegExp rev(QLatin1String( "# Revision: (\\d+)" ));
298
QRegExp eol(QLatin1String( "[\r\n]" ));
300
300
while ( it != lineList.end() )
302
302
QString line(*it);
303
line.replace(eol,"");
303
line.replace(eol,QLatin1String( "" ));
306
306
if (rev.indexIn(line) != -1)
308
set("revision", rev.cap(1).toUInt());
308
set(QLatin1String( "revision" ), rev.cap(1).toUInt());
312
QStringList tokenList = KStringHandler::perlSplit('=', line, 2);
312
QStringList tokenList = KStringHandler::perlSplit(QLatin1Char( '=' ), line, 2);
314
314
if (2 != tokenList.count())
331
331
ti.set(Title, ti.get(Title).toString().append(value));
334
else if ( "EXTD" == key )
334
else if ( QLatin1String( "EXTD" ) == key )
336
336
d->append(Comment, value);
338
else if ( "DGENRE" == key )
338
else if ( QLatin1String( "DGENRE" ) == key )
340
340
d->append(Genre, value);
342
else if ( "DYEAR" == key )
342
else if ( QLatin1String( "DYEAR" ) == key )
344
344
set(Year, value);
346
else if ( key.startsWith("EXTT") )
346
else if ( key.startsWith(QLatin1String( "EXTT" )) )
348
348
uint trackNumber = key.mid( 4 ).toUInt();
352
352
QString extt = track(trackNumber).get(Comment).toString();
353
353
track(trackNumber).set(Comment, extt+value );
355
else if ( key.startsWith("T") )
355
else if ( key.startsWith(QLatin1String( "T" )) )
357
357
// Custom Track data
358
uint trackNumber = key.mid( key.indexOf('_')+1 ).toUInt();
358
uint trackNumber = key.mid( key.indexOf(QLatin1Char( '_' ))+1 ).toUInt();
359
359
checkTrack( trackNumber );
361
QRegExp data(QString("^T.*_%1$").arg(trackNumber));
361
QRegExp data(QString::fromLatin1("^T.*_%1$").arg(trackNumber));
362
362
if ( key.contains( data ) )
364
QString k = key.mid(1, key.indexOf('_')-1);
364
QString k = key.mid(1, key.indexOf(QLatin1Char( '_' ))-1);
365
365
TrackInfo& ti = track(trackNumber);
366
366
ti.set( k, ti.get(k).toString().append(value) );
425
if (get("revision") != 0)
426
s += "# Revision: " + get("revision").toString() + '\n';
425
if (get(QLatin1String( "revision" )) != 0)
426
s += QLatin1String( "# Revision: " ) + get(QLatin1String( "revision" )).toString() + QLatin1Char( '\n' );
428
428
// If we are submiting make it a fully compliant CDDB entry
432
s += QString("# Submitted via: %1 %2\n").arg(CDDB::clientName(),
431
s += QLatin1String( "#\n" );
432
s += QString::fromLatin1("# Submitted via: %1 %2\n").arg(CDDB::clientName(),
433
433
CDDB::clientVersion());
436
s += d->createLine("DISCID", get("discid").toString() );
436
s += d->createLine(QLatin1String( "DISCID" ), get(QLatin1String( "discid" )).toString() );
437
437
QString artist = get(Artist).toString();
438
s += d->createLine("DTITLE", artist + " / " + get(Title).toString() );
438
s += d->createLine(QLatin1String( "DTITLE" ), artist + QLatin1String( " / " ) + get(Title).toString() );
439
439
int year = get(Year).toInt();
440
s += "DYEAR=" + (0 == year ? QString::null : QString::number(year)) + '\n'; //krazy:exclude=nullstrassign for old broken gcc
441
if (get(Genre) == "Unknown")
442
s += d->createLine("DGENRE", "");
440
s += QLatin1String( "DYEAR=" ) + (0 == year ? QString::null : QString::number(year)) + QLatin1Char( '\n' ); //krazy:exclude=nullstrassign for old broken gcc
441
if (get(Genre) == QLatin1String( "Unknown" ))
442
s += d->createLine(QLatin1String( "DGENRE" ), QString());
444
s += d->createLine("DGENRE",get(Genre).toString());
444
s += d->createLine(QLatin1String( "DGENRE" ),get(Genre).toString());
446
446
for (int i = 0; i < d->trackInfoList.count(); ++i){
447
447
QString trackTitle = d->trackInfoList[i].get(Title).toString();
448
448
QString trackArtist = d->trackInfoList[i].get(Artist).toString();
449
449
if(trackArtist != artist && !trackArtist.isEmpty())
450
s += d->createLine(QString("TTITLE%1").arg(i), QString("%1 / %2").arg(trackArtist).arg(trackTitle));
450
s += d->createLine(QString::fromLatin1("TTITLE%1").arg(i), QString::fromLatin1("%1 / %2").arg(trackArtist).arg(trackTitle));
452
s += d->createLine(QString("TTITLE%1").arg(i), trackTitle);
452
s += d->createLine(QString::fromLatin1("TTITLE%1").arg(i), trackTitle);
455
s += d->createLine(QString("EXTD"), get(Comment).toString());
455
s += d->createLine(QLatin1String("EXTD"), get(Comment).toString());
457
457
for (int i = 0; i < d->trackInfoList.count(); ++i)
458
s += d->createLine(QString("EXTT%1").arg(i), d->trackInfoList[i].get(Comment).toString());
458
s += d->createLine(QString::fromLatin1("EXTT%1").arg(i), d->trackInfoList[i].get(Comment).toString());
462
s += d->createLine("PLAYORDER", "");
462
s += d->createLine(QLatin1String( "PLAYORDER" ), QString());
466
s += d->createLine("PLAYORDER", get("playorder").toString() );
466
s += d->createLine(QLatin1String( "PLAYORDER" ), get(QLatin1String( "playorder" )).toString() );
468
468
// Custom track data
469
469
for (int i = 0; i < d->trackInfoList.count(); ++i)
472
472
QStringList cddbKeywords;
474
<< QLatin1String( "DISCID" )
475
<< QLatin1String( "ARTIST" )
476
<< QLatin1String( "TITLE" )
477
<< QLatin1String( "COMMENT" )
478
<< QLatin1String( "YEAR" )
479
<< QLatin1String( "GENRE" )
480
<< QLatin1String( "PLAYORDER" )
481
<< QLatin1String( "CATEGORY" )
482
<< QLatin1String( "REVISION" );
484
484
// Custom disc data
485
485
QMap<QString, QVariant>::const_iterator i = d->data.constBegin();
486
486
while (i != d->data.constEnd()){
487
if (!cddbKeywords.contains(i.key()) && i.key() != "SOURCE")
487
if (!cddbKeywords.contains(i.key()) && i.key() != QLatin1String( "SOURCE" ))
489
489
s+= d->createLine(i.key(), i.value().toString());