┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2008-06-29 21:40:07 +0000
committerPeter Penz <[email protected]>2008-06-29 21:40:07 +0000
commit4cf8450bc4df6bbd8a307a087de54f3986ee4a33 (patch)
tree243190432e544fa748ef2d35dc67da5921c22ac6 /src
parent1f3607bdc1f9c4c39049079a973d5027187512c2 (diff)
The check whether there is a cut-selection when receiving a preview consumes 12 % (!) of the runtime in addToPreviewQueue(). The check is now done only once before starting the preview generation and when the clipboard data has been changed.
svn path=/trunk/KDE/kdebase/apps/; revision=826126
Diffstat (limited to 'src')
-rw-r--r--src/iconmanager.cpp11
-rw-r--r--src/iconmanager.h5
2 files changed, 12 insertions, 4 deletions
diff --git a/src/iconmanager.cpp b/src/iconmanager.cpp
index 69250d6d7..cde3ab59e 100644
--- a/src/iconmanager.cpp
+++ b/src/iconmanager.cpp
@@ -85,6 +85,7 @@ IconManager::IconManager(QAbstractItemView* parent, DolphinSortFilterProxyModel*
QObject(parent),
m_showPreview(false),
m_clearItemQueues(true),
+ m_hasCutSelection(false),
m_pendingVisiblePreviews(0),
m_view(parent),
m_previewTimer(0),
@@ -138,7 +139,6 @@ IconManager::~IconManager()
}
}
-
void IconManager::setShowPreview(bool show)
{
if (m_showPreview != show) {
@@ -242,8 +242,7 @@ void IconManager::addToPreviewQueue(const KFileItem& item, const QPixmap& pixmap
limitToSize(icon, m_view->iconSize());
}
- const QMimeData* mimeData = QApplication::clipboard()->mimeData();
- if (KonqMimeData::decodeIsCutSelection(mimeData) && isCutItem(item)) {
+ if (m_hasCutSelection && isCutItem(item)) {
// Remember the current icon in the cache for cut items before
// the disabled effect is applied. This makes it possible restoring
// the uncut version again when cutting other items.
@@ -394,7 +393,8 @@ bool IconManager::isCutItem(const KFileItem& item) const
void IconManager::applyCutItemEffect()
{
const QMimeData* mimeData = QApplication::clipboard()->mimeData();
- if (!KonqMimeData::decodeIsCutSelection(mimeData)) {
+ m_hasCutSelection = KonqMimeData::decodeIsCutSelection(mimeData);
+ if (!m_hasCutSelection) {
return;
}
@@ -499,6 +499,9 @@ void IconManager::startPreviewJob(const KFileItemList& items)
return;
}
+ const QMimeData* mimeData = QApplication::clipboard()->mimeData();
+ m_hasCutSelection = KonqMimeData::decodeIsCutSelection(mimeData);
+
const QSize size = m_view->iconSize();
KIO::PreviewJob* job = KIO::filePreview(items, 128, 128);
connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)),
diff --git a/src/iconmanager.h b/src/iconmanager.h
index 06d7df85a..aee7672aa 100644
--- a/src/iconmanager.h
+++ b/src/iconmanager.h
@@ -170,6 +170,11 @@ private:
*/
bool m_clearItemQueues;
+ /**
+ * True if a selection has been done which should cut items.
+ */
+ bool m_hasCutSelection;
+
int m_pendingVisiblePreviews;
QAbstractItemView* m_view;