+void RenameDialog::renameItems()
+{
+ // Iterate through all items and rename them...
+ int index = m_spinBox->value();
+ foreach (const KFileItem& item, m_items) {
+ QString newName = indexedName(m_newName, index, QLatin1Char('#'));
+ ++index;
+
+ const KUrl oldUrl = item.url();
+ const QString extension = KMimeType::extractKnownExtension(oldUrl.prettyUrl().toLower());
+ if (!extension.isEmpty()) {
+ newName.append(QLatin1Char('.'));
+ newName.append(extension);
+ }
+
+ if (oldUrl.fileName() != newName) {
+ renameItem(item, newName);
+ }
+ }
+}
+
+QString RenameDialog::indexedName(const QString& name, int index, const QChar& indexPlaceHolder)
+{
+ QString newName = name;
+
+ QString indexString = QString::number(index);
+
+ // Insert leading zeros if necessary
+ const int minIndexLength = name.count(indexPlaceHolder);
+ while (indexString.length() < minIndexLength) {
+ indexString.prepend(QLatin1Char('0'));
+ }
+
+ // Replace the index placeholders by the indexString
+ const int placeHolderStart = newName.indexOf(indexPlaceHolder);
+ newName.replace(placeHolderStart, minIndexLength, indexString);
+
+ return newName;
+}