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