┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2013-05-02 19:23:19 +0200
committerFrank Reininghaus <[email protected]>2013-05-02 19:23:38 +0200
commita70fd061243d4e321b207bc6a3139e2c89825494 (patch)
tree6b23c67db7f6bd4f787b200ba938d43f1dc9b1a5 /src/views
parent8f4d13dab8165e4c60c320d4b867e8476bdb041b (diff)
Rename multiple files: Determine correctly if the name pattern is valid
The "Rename" button in the dialog should be enabled if and only if the "new name" pattern is valid. This is the case if the pattern contains exactly one sequence of '#', which will be replaced by digits. This patch fixes the problem that (a) A pattern that contains a single '#' is not considered valid, and (b) A pattern without any '#' at all is not recognized as invalid. BUG: 318942 FIXED-IN: 4.10.3 REVIEW: 110223
Diffstat (limited to 'src/views')
-rw-r--r--src/views/renamedialog.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/views/renamedialog.cpp b/src/views/renamedialog.cpp
index 07add113a..a16bb953c 100644
--- a/src/views/renamedialog.cpp
+++ b/src/views/renamedialog.cpp
@@ -147,16 +147,10 @@ void RenameDialog::slotTextChanged(const QString& newName)
bool enable = !newName.isEmpty() && (newName != QLatin1String("..")) && (newName != QLatin1String("."));
if (enable && !m_renameOneItem) {
// Assure that the new name contains exactly one # (or a connected sequence of #'s)
- const int minSplitCount = 1;
- int maxSplitCount = 2;
- if (newName.startsWith(QLatin1Char('#'))) {
- --maxSplitCount;
- }
- if (newName.endsWith(QLatin1Char('#'))) {
- --maxSplitCount;
- }
- const int splitCount = newName.split(QLatin1Char('#'), QString::SkipEmptyParts).count();
- enable = enable && (splitCount >= minSplitCount) && (splitCount <= maxSplitCount);
+ const int count = newName.count(QLatin1Char('#'));
+ const int first = newName.indexOf(QLatin1Char('#'));
+ const int last = newName.lastIndexOf(QLatin1Char('#'));
+ enable = (last - first + 1 == count);
}
enableButtonOk(enable);
}