]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/renamedialog.cpp
cleanup of unused forward declarations
[dolphin.git] / src / renamedialog.cpp
index 02238e5e749f30ae82dc08d9643237b319612015..4055b32a6091528fdcf5c9b246514d8c8feed466 100644 (file)
@@ -1,6 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2006 by Peter Penz                                      *
- *   peter.penz@gmx.at                                                     *
+ *   Copyright (C) 2006 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  *
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
  ***************************************************************************/
 
 #include "renamedialog.h"
-#include <klocale.h>
-#include <qlabel.h>
-#include <qlayout.h>
-#include <q3vbox.h>
-//Added by qt3to4:
-#include <Q3VBoxLayout>
-#include <assert.h>
+
 #include <klineedit.h>
+#include <klocale.h>
+
+#include <QLabel>
+#include <QVBoxLayout>
 
 RenameDialog::RenameDialog(const KUrl::List& items) :
-    KDialog()
+    KDialog(),
+    m_renameOneItem(false)
 {
-    setCaption(i18n("Rename Items"));
+    const QSize minSize = minimumSize();
+    setMinimumSize(QSize(320, minSize.height()));
+
+    const int itemCount = items.count();
+    Q_ASSERT(itemCount >= 1);
+    m_renameOneItem = (itemCount == 1);
+
+    setCaption(m_renameOneItem ? i18n("Rename Item") : i18n("Rename Items"));
     setButtons(Ok|Cancel);
     setDefaultButton(Ok);
 
-    setButtonGuiItem(Ok, KGuiItem(i18n("Rename"), "apply"));
+    setButtonGuiItem(Ok, KGuiItem(i18n("Rename"), "dialog-apply"));
 
-    QWidget *page = new QWidget(this);
+    QWidgetpage = new QWidget(this);
     setMainWidget(page);
 
-    Q3VBoxLayout* topLayout = new Q3VBoxLayout(page, 0, spacingHint());
+    QVBoxLayout* topLayout = new QVBoxLayout(page);
     topLayout->setMargin(KDialog::marginHint());
 
-    const int itemCount = items.count();
-    QLabel* editLabel = new QLabel(i18n("Rename the %1 selected items to:",itemCount),
-                                   page);
+    QLabel* editLabel = 0;
+    if (m_renameOneItem) {
+        const KUrl& url = items.first();
+        editLabel = new QLabel(i18n("Rename the item '%1' to:", url.fileName()),
+                               page);
+    }
+    else {
+        editLabel = new QLabel(i18n("Rename the %1 selected items to:", itemCount),
+                               page);
+    }
 
     m_lineEdit = new KLineEdit(page);
-    m_newName = i18n("New name #");
-    assert(itemCount > 1);
+    m_newName = m_renameOneItem ? i18n("New name") : i18n("New name #");
+
     QString postfix(items[0].prettyUrl().section('.',1));
     if (postfix.length() > 0) {
         // The first item seems to have a postfix (e. g. 'jpg' or 'txt'). Now
@@ -65,19 +77,25 @@ RenameDialog::RenameDialog(const KUrl::List& items) :
         }
     }
 
-    const int selectionLength = m_newName.length();
+    int selectionLength = m_newName.length();
+    if (!m_renameOneItem) {
+        --selectionLength; // don't select the # character
+    }
+
     if (postfix.length() > 0) {
         m_newName.append(postfix);
     }
     m_lineEdit->setText(m_newName);
-    m_lineEdit->setSelection(0, selectionLength - 1);
+    m_lineEdit->setSelection(0, selectionLength);
     m_lineEdit->setFocus();
 
-    QLabel* infoLabel = new QLabel(i18n("(# will be replaced by ascending numbers)"), page);
-
     topLayout->addWidget(editLabel);
     topLayout->addWidget(m_lineEdit);
-    topLayout->addWidget(infoLabel);
+
+    if (!m_renameOneItem) {
+        QLabel* infoLabel = new QLabel(i18n("(# will be replaced by ascending numbers)"), page);
+        topLayout->addWidget(infoLabel);
+    }
 }
 
 RenameDialog::~RenameDialog()
@@ -86,10 +104,14 @@ RenameDialog::~RenameDialog()
 
 void RenameDialog::slotButtonClicked(int button)
 {
-    if (button==Ok) {
+    if (button == Ok) {
         m_newName = m_lineEdit->text();
-        if (m_newName.contains('#') != 1) {
+        if (m_newName.isEmpty()) {
+            m_errorString = i18n("The new name is empty. A name with at least one character must be entered.");
+        }
+        else if (!m_renameOneItem && m_newName.contains('#') != 1) {
             m_newName.truncate(0);
+            m_errorString = i18n("The name must contain exactly one # character.");
         }
     }