X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/846b21edf57e7aeb83e84ee68e9f61c5981fbacd..356c81cbf872febaf0cccb7438ccecaec0788f77:/src/renamedialog.cpp diff --git a/src/renamedialog.cpp b/src/renamedialog.cpp index fa5bf60e0..39e61c464 100644 --- a/src/renamedialog.cpp +++ b/src/renamedialog.cpp @@ -43,13 +43,12 @@ RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) : setButtons(Ok | Cancel); setDefaultButton(Ok); - setButtonGuiItem(Ok, KGuiItem(i18nc("@action:button", "Rename"), "dialog-ok-apply")); + setButtonGuiItem(Ok, KGuiItem(i18nc("@action:button", "&Rename"), "dialog-ok-apply")); QWidget* page = new QWidget(this); setMainWidget(page); QVBoxLayout* topLayout = new QVBoxLayout(page); - topLayout->setMargin(KDialog::marginHint()); QLabel* editLabel = 0; if (m_renameOneItem) { @@ -65,13 +64,17 @@ RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) : } m_lineEdit = new KLineEdit(page); - QString extension = extensionString(items[0].url().prettyUrl()); - if (extension.length() > 0) { + + QString fileName = items[0].url().prettyUrl(); + QString extension = KMimeType::extractKnownExtension(fileName.toLower()); + if (!extension.isEmpty()) { + extension.insert(0, '.'); // The first item seems to have a extension (e. g. '.jpg' or '.txt'). Now // check whether all other URLs have the same extension. If this is the // case, add this extension to the name suggestion. for (int i = 1; i < itemCount; ++i) { - if (!items[i].url().prettyUrl().contains(extension)) { + fileName = items[i].url().prettyUrl().toLower(); + if (!fileName.endsWith(extension)) { // at least one item does not have the same extension extension.truncate(0); break; @@ -107,7 +110,8 @@ RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) : } RenameDialog::~RenameDialog() -{} +{ +} void RenameDialog::slotButtonClicked(int button) { @@ -125,30 +129,4 @@ void RenameDialog::slotButtonClicked(int button) KDialog::slotButtonClicked(button); } -QString RenameDialog::extensionString(const QString& name) -{ - QString extension; - bool foundExtension = false; // true if at least one valid file extension - // like "gif", "txt", ... has been found - - QStringList strings = name.split('.'); - const int size = strings.size(); - for (int i = 1; i < size; ++i) { - const QString& str = strings.at(i); - if (!foundExtension) { - // Sub strings like "9", "12", "99", ... which contain only - // numbers don't count as extension. Usually they are version - // numbers like in "cmake-2.4.5". - bool ok = false; - str.toInt(&ok); - foundExtension = !ok; - } - if (foundExtension) { - extension += '.' + str; - } - } - - return extension; -} - #include "renamedialog.moc"