┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemlistwidget.cpp
diff options
context:
space:
mode:
authorDavid Faure <[email protected]>2012-07-20 12:09:04 +0200
committerEmmanuel Pescosta <[email protected]>2012-08-13 22:25:49 +0200
commiteb14263c480ea37c306a9ae6a7fda64875cfe418 (patch)
tree33f99e846e49379919d1829e84c156d301cbe58f /src/kitemviews/kfileitemlistwidget.cpp
parent5fbe52c1518037ad3dbb89ba18f2a318aee114f4 (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/kfileitemlistwidget.cpp')
-rw-r--r--src/kitemviews/kfileitemlistwidget.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp
index c99da383f..3a7724134 100644
--- a/src/kitemviews/kfileitemlistwidget.cpp
+++ b/src/kitemviews/kfileitemlistwidget.cpp
@@ -19,6 +19,7 @@
#include "kfileitemlistwidget.h"
+#include <kmimetype.h>
#include <KDebug>
#include <KGlobal>
#include <KLocale>
@@ -101,4 +102,34 @@ QFont KFileItemListWidget::customizedFont(const QFont& baseFont) const
return font;
}
+int KFileItemListWidget::selectionLength(const QString& text) const
+{
+ // Select the text without MIME-type extension
+ int selectionLength = text.length();
+
+ // If item is a directory, use the whole text length for
+ // selection (ignore all points)
+ if(data().value("isDir").toBool()) {
+ return selectionLength;
+ }
+
+ 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('.'));
+
+ // If no point could be found, use whole text length for selection.
+ if (selectionLength < 1) {
+ selectionLength = text.length();
+ }
+
+ } else {
+ selectionLength -= extension.length() + 1;
+ }
+
+ return selectionLength;
+}
+
#include "kfileitemlistwidget.moc"