]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/renamedialog.h
Merge branch 'Applications/19.08'
[dolphin.git] / src / views / renamedialog.h
index 5015b51bd2bae8d82434ca2e53f83d9a8b162433..08571cd9d2ce57732dbbed626c7b952cacb521ad 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2006 by Peter Penz (peter.penz@gmx.at)                  *
+ *   Copyright (C) 2006-2010 by Peter Penz (peter.penz@gmx.at)             *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
  *   Free Software Foundation, Inc.,                                       *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
  ***************************************************************************/
+
 #ifndef RENAMEDIALOG_H
 #define RENAMEDIALOG_H
 
-#include "libdolphin_export.h"
-
-#include <kdialog.h>
-#include <kurl.h>
+#include "dolphin_export.h"
 
-class KFileItem;
-class KFileItemList;
-class KLineEdit;
+#include <KFileItem>
 
+#include <QDialog>
 #include <QString>
 
+class QLineEdit;
+class QSpinBox;
+class QPushButton;
+class KJob;
 /**
  * @brief Dialog for renaming a variable number of files.
  *
- * The renaming is not done by the dialog, the invoker
- * must do this itself:
- * \code
- * RenameDialog dialog(...);
- * if (dialog.exec() == QDialog::Accepted) {
- *     const QString& newName = dialog.newName();
- *     if (newName.isEmpty()) {
- *         // an invalid name has been chosen, use
- *         // dialog.errorString() to tell the user about this
- *     }
- *     else {
- *         // rename items corresponding to the new name
- *     }
- * }
- * \endcode
+ * The dialog deletes itself when accepted or rejected.
  */
-class LIBDOLPHINPRIVATE_EXPORT RenameDialog : public KDialog
+class DOLPHIN_EXPORT RenameDialog : public QDialog
 {
     Q_OBJECT
 
 public:
-    explicit RenameDialog(QWidget *parent, const KFileItemList& items);
-    virtual ~RenameDialog();
-
-    /**
-     * Returns the new name of the items. If more than one
-     * item should be renamed, then it is assured that the # character
-     * is part of the returned string. If the returned string is empty,
-     * then RenameDialog::errorString() should be used to show the reason
-     * of having an empty string (e. g. if the # character has
-     * been deleted by the user, although more than one item should be
-     * renamed).
-     */
-    QString newName() const;
+    explicit RenameDialog(QWidget* parent, const KFileItemList& items);
+    ~RenameDialog() override;
 
-    /**
-     * Returns the error string, if Dialog::newName() returned an empty string.
-     */
-    QString errorString() const;
-
-protected slots:
-    virtual void slotButtonClicked(int button);
+signals:
+    void renamingFinished(const QList<QUrl>& urls);
 
 private slots:
-    void slotTextChanged(const QString &newName);
+    void slotAccepted();
+    void slotTextChanged(const QString& newName);
+    void slotFileRenamed(const QUrl& oldUrl, const QUrl& newUrl);
+    void slotResult(KJob* job);
+
+protected:
+    void showEvent(QShowEvent* event) override;
 
 private:
     bool m_renameOneItem;
-    KLineEdit* m_lineEdit;
+    QList<QUrl> m_renamedItems;
     QString m_newName;
-    QString m_errorString;
-
-    friend class RenameDialogTest; // allow access for unit testing
+    QLineEdit* m_lineEdit;
+    KFileItemList m_items;
+    bool m_allExtensionsDifferent;
+    QSpinBox* m_spinBox;
+    QPushButton* m_okButton;
 };
 
-inline QString RenameDialog::newName() const
-{
-    return m_newName;
-}
-
-inline QString RenameDialog::errorString() const
-{
-    return m_errorString;
-}
-
 #endif