]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/renamedialog.cpp
[CLAZY] Fixed all level 1 and level 2 warnings with small exceptions
[dolphin.git] / src / views / renamedialog.cpp
index 5124795125b7d871b019c916c858912a67256ce6..a514ede1e7d5b1a7858dcd2b22a756802037da7a 100644 (file)
 
 #include "renamedialog.h"
 
-#include <KLineEdit>
-#include <KLocale>
+#include <KLocalizedString>
 #include <KJobWidgets>
-#include <KJobUiDelegate>
 #include <KIO/CopyJob>
 #include <KIO/FileUndoManager>
-#include <KStringHandler>
-#include <kstringhandler_deprecated.h> //TODO port to QCollator
-#include <knuminput.h>
-#include <kmimetype.h>
+#include <KJobUiDelegate>
 
 #include <QHBoxLayout>
 #include <QLabel>
 #include <QVBoxLayout>
+#include <QMimeDatabase>
+#include <QDialogButtonBox>
+#include <QPushButton>
+#include <QLineEdit>
+#include <QSpinBox>
+#include <KGuiItem>
 
 RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) :
-    KDialog(parent),
+    QDialog(parent),
     m_renameOneItem(false),
     m_newName(),
     m_lineEdit(0),
@@ -50,16 +51,24 @@ RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) :
     Q_ASSERT(itemCount >= 1);
     m_renameOneItem = (itemCount == 1);
 
-    setCaption(m_renameOneItem ?
+    setWindowTitle(m_renameOneItem ?
                i18nc("@title:window", "Rename Item") :
                i18nc("@title:window", "Rename Items"));
-    setButtons(Ok | Cancel);
-    setDefaultButton(Ok);
-
-    setButtonGuiItem(Ok, KGuiItem(i18nc("@action:button", "&Rename"), "dialog-ok-apply"));
+    QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
+    QVBoxLayout *mainLayout = new QVBoxLayout;
+    setLayout(mainLayout);
+    m_okButton = buttonBox->button(QDialogButtonBox::Ok);
+    m_okButton->setDefault(true);
+    m_okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
+    connect(buttonBox, &QDialogButtonBox::accepted, this, &RenameDialog::slotAccepted);
+    connect(buttonBox, &QDialogButtonBox::rejected, this, &RenameDialog::reject);
+    m_okButton->setDefault(true);
+
+    KGuiItem::assign(m_okButton, KGuiItem(i18nc("@action:button", "&Rename"), QStringLiteral("dialog-ok-apply")));
 
     QWidget* page = new QWidget(this);
-    setMainWidget(page);
+    mainLayout->addWidget(page);
+    mainLayout->addWidget(buttonBox);
 
     QVBoxLayout* topLayout = new QVBoxLayout(page);
 
@@ -77,13 +86,15 @@ RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) :
                                page);
     }
 
-    m_lineEdit = new KLineEdit(page);
-    connect(m_lineEdit, &KLineEdit::textChanged, this, &RenameDialog::slotTextChanged);
+    m_lineEdit = new QLineEdit(page);
+    mainLayout->addWidget(m_lineEdit);
+    connect(m_lineEdit, &QLineEdit::textChanged, this, &RenameDialog::slotTextChanged);
 
     int selectionLength = m_newName.length();
     if (m_renameOneItem) {
         const QString fileName = items.first().url().toDisplayString();
-        const QString extension = KMimeType::extractKnownExtension(fileName.toLower());
+        QMimeDatabase db;
+        const QString extension = db.suffixForFileName(fileName.toLower());
 
         // If the current item is a directory, select the whole file name.
         if ((extension.length() > 0) && !items.first().isDir()) {
@@ -97,7 +108,6 @@ RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) :
 
     m_lineEdit->setText(m_newName);
     m_lineEdit->setSelection(0, selectionLength);
-    m_lineEdit->setFocus();
 
     topLayout->addWidget(editLabel);
     topLayout->addWidget(m_lineEdit);
@@ -105,7 +115,8 @@ RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) :
     if (!m_renameOneItem) {
         QSet<QString> extensions;
         foreach (const KFileItem& item, m_items) {
-            const QString extension = KMimeType::extractKnownExtension(item.url().toDisplayString().toLower());
+            QMimeDatabase db;
+            const QString extension = db.suffixForFileName(item.url().toDisplayString().toLower());
 
             if (extensions.contains(extension)) {
                 m_allExtensionsDifferent = false;
@@ -116,7 +127,13 @@ RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) :
         }
 
         QLabel* infoLabel = new QLabel(i18nc("@info", "# will be replaced by ascending numbers starting with:"), page);
-        m_spinBox = new KIntSpinBox(0, 10000, 1, 1, page, 10);
+        mainLayout->addWidget(infoLabel);
+        m_spinBox = new QSpinBox(page);
+        m_spinBox->setMaximum(10000);
+        m_spinBox->setMinimum(0);
+        m_spinBox->setSingleStep(1);
+        m_spinBox->setValue(1);
+        m_spinBox->setDisplayIntegerBase(10);
 
         QHBoxLayout* horizontalLayout = new QHBoxLayout(page);
         horizontalLayout->setMargin(0);
@@ -144,24 +161,21 @@ void RenameDialog::renameItem(const KFileItem &item, const QString& newName)
 
     KIO::Job * job = KIO::moveAs(oldUrl, newUrl);
     KJobWidgets::setWindow(job, widget);
-    KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, QList<QUrl>() << oldUrl, newUrl, job);
+    KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, {oldUrl}, newUrl, job);
     job->ui()->setAutoErrorHandlingEnabled(true);
 }
 
-void RenameDialog::slotButtonClicked(int button)
+void RenameDialog::slotAccepted()
 {
-    if (button == KDialog::Ok) {
-        m_newName = m_lineEdit->text();
+    m_newName = m_lineEdit->text();
 
-        if (m_renameOneItem) {
-            Q_ASSERT(m_items.count() == 1);
-            renameItem(m_items.first(), m_newName);
-        } else {
-            renameItems();
-        }
+    if (m_renameOneItem) {
+        Q_ASSERT(m_items.count() == 1);
+        renameItem(m_items.first(), m_newName);
+    } else {
+        renameItems();
     }
-
-    KDialog::slotButtonClicked(button);
+    accept();
 }
 
 void RenameDialog::slotTextChanged(const QString& newName)
@@ -179,7 +193,14 @@ void RenameDialog::slotTextChanged(const QString& newName)
             enable = (last - first + 1 == count);
         }
     }
-    enableButtonOk(enable);
+    m_okButton->setEnabled(enable);
+}
+
+void RenameDialog::showEvent(QShowEvent* event)
+{
+    m_lineEdit->setFocus();
+
+    QDialog::showEvent(event);
 }
 
 void RenameDialog::renameItems()
@@ -191,7 +212,8 @@ void RenameDialog::renameItems()
         ++index;
 
         const QUrl oldUrl = item.url();
-        const QString extension = KMimeType::extractKnownExtension(oldUrl.path().toLower());
+        QMimeDatabase db;
+        const QString extension = db.suffixForFileName(oldUrl.path().toLower());
         if (!extension.isEmpty()) {
             newName.append(QLatin1Char('.'));
             newName.append(extension);