362{
363
364
365
366 QFileInfo info = QFileInfo(location + "/" + filename);
367 if (!info.exists()) {
368 return filename;
369 }
370
372 QString filenameNoExtension = filename.left(filename.length() -
extension.length());
373
374
375 QDir dir = QDir(location);
377
379 int maxVersionUsed = -1;
380 for (int i = 0; i < similarEntries.count(); i++) {
381 QString entry = similarEntries[i];
382
383 if (!entry.endsWith(extension)) {
384 continue;
385 }
386 QString versionStr = entry.right(entry.length() - filenameNoExtension.length());
387 versionStr = versionStr.left(versionStr.length() -
extension.length());
388 if (!versionStr.startsWith("_")) {
389 continue;
390 }
391 versionStr = versionStr.right(versionStr.length() - 1);
392
393 bool ok;
394 int version = versionStr.toInt(&ok);
395 if (!ok) {
396 continue;
397 }
398 if (version > maxVersionUsed) {
399 maxVersionUsed = version;
400 }
401 }
402
403 int versionToUse = maxVersionUsed > -1 ? maxVersionUsed + 1 : 1;
404 int versionStringLength = 3;
405 QString baseNewVersion = QString::number(versionToUse);
406 while (baseNewVersion.length() < versionStringLength) {
407 baseNewVersion.prepend("0");
408 }
409
410 QString newFilename = filenameNoExtension +
"_" + QString::number(versionToUse) +
extension;
411 bool success = !QFileInfo(location + "/" + newFilename).exists();
412
413 if (!success) {
414 qCritical() << "The new filename for the bundle does exist." << newFilename;
415 }
416
417 return newFilename;
418
419}
QList< QString > QStringList