#include <KLocale>
#include <konq_operations.h>
#include <KStringHandler>
+#include <knuminput.h>
+#include <QHBoxLayout>
#include <QLabel>
#include <QVBoxLayout>
m_renameOneItem(false),
m_newName(),
m_lineEdit(0),
- m_items(items)
+ m_items(items),
+ m_spinBox(0)
{
const QSize minSize = minimumSize();
setMinimumSize(QSize(320, minSize.height()));
topLayout->addWidget(m_lineEdit);
if (!m_renameOneItem) {
- QLabel* infoLabel = new QLabel(i18nc("@info", "(# will be replaced by ascending numbers)"), page);
- topLayout->addWidget(infoLabel);
+ 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);
+
+ QHBoxLayout* horizontalLayout = new QHBoxLayout(page);
+ horizontalLayout->setMargin(0);
+ horizontalLayout->addWidget(infoLabel);
+ horizontalLayout->addWidget(m_spinBox);
+
+ topLayout->addLayout(horizontalLayout);
}
}
{
if (button == KDialog::Ok) {
m_newName = m_lineEdit->text();
- renameItems();
+
+ if (m_renameOneItem) {
+ Q_ASSERT(m_items.count() == 1);
+ const KUrl oldUrl = m_items.first().url();
+ KUrl newUrl = oldUrl;
+ newUrl.setFileName(KIO::encodeFileName(m_newName));
+ KonqOperations::rename(this, oldUrl, newUrl);
+ } else {
+ renameItems();
+ }
}
KDialog::slotButtonClicked(button);
void RenameDialog::slotTextChanged(const QString& newName)
{
- bool enable = !newName.isEmpty();
+ bool enable = !newName.isEmpty() && (newName != QLatin1String("..")) && (newName != QLatin1String("."));
if (enable) {
if (m_renameOneItem) {
enable = enable && (newName != m_newName);
qSort(m_items.begin(), m_items.end(), lessThan);
// Iterate through all items and rename them...
- int index = 1;
+ int index = m_spinBox->value();
foreach (const KFileItem& item, m_items) {
const QString newName = indexedName(m_newName, index, QLatin1Char('#'));
++index;
const KUrl oldUrl = item.url();
if (oldUrl.fileName() != newName) {
KUrl newUrl = oldUrl;
- newUrl.setFileName(newName);
+ newUrl.setFileName(KIO::encodeFileName(newName));
KonqOperations::rename(this, oldUrl, newUrl);
}
}