diff options
| author | David Faure <[email protected]> | 2012-07-20 12:09:04 +0200 |
|---|---|---|
| committer | David Faure <[email protected]> | 2012-07-20 12:09:04 +0200 |
| commit | 149975a0044f0a964c44b98e3228f4aeb6588d00 (patch) | |
| tree | 7a192910d95ae42cd06fd12446ccea6c3dd483e2 /src/kitemviews/kstandarditemlistwidget.cpp | |
| parent | 4a0454ff88a0900706826e7ed61aef405c73ba90 (diff) | |
Fix bug 303375 - Dots in directory names treated as file extension.
Patch by Emmanuel Pescosta <[email protected]>
BUG: 303375
REVIEW: 105575
FIXED-IN: 4.9.0
Diffstat (limited to 'src/kitemviews/kstandarditemlistwidget.cpp')
| -rw-r--r-- | src/kitemviews/kstandarditemlistwidget.cpp | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index e584c0678..9cdb60e24 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -576,6 +576,11 @@ void KStandardItemListWidget::siblingsInformationChanged(const QBitArray& curren m_dirtyLayout = true; } +int KStandardItemListWidget::selectionLength(const QString& text) const +{ + return text.length(); +} + void KStandardItemListWidget::editedRoleChanged(const QByteArray& current, const QByteArray& previous) { Q_UNUSED(previous); @@ -605,25 +610,12 @@ void KStandardItemListWidget::editedRoleChanged(const QByteArray& current, const QTextOption textOption = textInfo->staticText.textOption(); m_roleEditor->document()->setDefaultTextOption(textOption); - // Select the text without MIME-type extension - // TODO: This is file-item-specific and should be moved - // into KFileItemListWidget. - int selectionLength = text.length(); - - const QString extension = KMimeType::extractKnownExtension(text); - if (extension.isEmpty()) { - // For an unknown extension just exclude the extension after - // the last point. This does not work for multiple extensions like - // *.tar.gz but usually this is anyhow a known extension. - selectionLength = text.lastIndexOf(QLatin1Char('.')); - } else { - selectionLength -= extension.length() + 1; - } + const int textSelectionLength = selectionLength(text); - if (selectionLength > 0) { + if (textSelectionLength > 0) { QTextCursor cursor = m_roleEditor->textCursor(); cursor.movePosition(QTextCursor::StartOfBlock); - cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, selectionLength); + cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, textSelectionLength); m_roleEditor->setTextCursor(cursor); } |
