Changeset View
Changeset View
Standalone View
Standalone View
lib/thumbnailview/thumbnailview.cpp
Show All 30 Lines | |||||
31 | #include <QQueue> | 31 | #include <QQueue> | ||
32 | #include <QScrollBar> | 32 | #include <QScrollBar> | ||
33 | #include <QTimeLine> | 33 | #include <QTimeLine> | ||
34 | #include <QTimer> | 34 | #include <QTimer> | ||
35 | #include <QDrag> | 35 | #include <QDrag> | ||
36 | #include <QMimeData> | 36 | #include <QMimeData> | ||
37 | #include <QDebug> | 37 | #include <QDebug> | ||
38 | #include <QDateTime> | 38 | #include <QDateTime> | ||
39 | #include <QScroller> | ||||
39 | 40 | | |||
ngraham: Unnecessary whitespace change | |||||
40 | // KDE | 41 | // KDE | ||
41 | #include <KDirModel> | 42 | #include <KDirModel> | ||
42 | #include <KIconLoader> | 43 | #include <KIconLoader> | ||
43 | #include <KPixmapSequence> | 44 | #include <KPixmapSequence> | ||
44 | #include <KUrlMimeData> | 45 | #include <KUrlMimeData> | ||
45 | 46 | | |||
46 | // Local | 47 | // Local | ||
47 | #include "abstractdocumentinfoprovider.h" | 48 | #include "abstractdocumentinfoprovider.h" | ||
▲ Show 20 Lines • Show All 256 Lines • ▼ Show 20 Line(s) | 286 | { | |||
304 | setUniformItemSizes(true); | 305 | setUniformItemSizes(true); | ||
305 | setEditTriggers(QAbstractItemView::EditKeyPressed); | 306 | setEditTriggers(QAbstractItemView::EditKeyPressed); | ||
306 | 307 | | |||
307 | d->setupBusyAnimation(); | 308 | d->setupBusyAnimation(); | ||
308 | 309 | | |||
309 | setVerticalScrollMode(ScrollPerPixel); | 310 | setVerticalScrollMode(ScrollPerPixel); | ||
310 | setHorizontalScrollMode(ScrollPerPixel); | 311 | setHorizontalScrollMode(ScrollPerPixel); | ||
311 | 312 | | |||
313 | QScroller::grabGesture(this->viewport(), QScroller::TouchGesture); | ||||
314 | | ||||
312 | d->mScheduledThumbnailGenerationTimer.setSingleShot(true); | 315 | d->mScheduledThumbnailGenerationTimer.setSingleShot(true); | ||
313 | d->mScheduledThumbnailGenerationTimer.setInterval(500); | 316 | d->mScheduledThumbnailGenerationTimer.setInterval(500); | ||
314 | connect(&d->mScheduledThumbnailGenerationTimer, &QTimer::timeout, this, &ThumbnailView::generateThumbnailsForItems); | 317 | connect(&d->mScheduledThumbnailGenerationTimer, &QTimer::timeout, this, &ThumbnailView::generateThumbnailsForItems); | ||
315 | 318 | | |||
316 | d->mSmoothThumbnailTimer.setSingleShot(true); | 319 | d->mSmoothThumbnailTimer.setSingleShot(true); | ||
317 | connect(&d->mSmoothThumbnailTimer, &QTimer::timeout, this, &ThumbnailView::smoothNextThumbnail); | 320 | connect(&d->mSmoothThumbnailTimer, &QTimer::timeout, this, &ThumbnailView::smoothNextThumbnail); | ||
318 | 321 | | |||
319 | setContextMenuPolicy(Qt::CustomContextMenu); | 322 | setContextMenuPolicy(Qt::CustomContextMenu); | ||
▲ Show 20 Lines • Show All 371 Lines • ▼ Show 20 Line(s) | 685 | { | |||
691 | } | 694 | } | ||
692 | 695 | | |||
693 | QDrag* drag = new QDrag(this); | 696 | QDrag* drag = new QDrag(this); | ||
694 | drag->setMimeData(MimeTypeUtils::selectionMimeData(selectedFiles)); | 697 | drag->setMimeData(MimeTypeUtils::selectionMimeData(selectedFiles)); | ||
695 | d->initDragPixmap(drag, indexes); | 698 | d->initDragPixmap(drag, indexes); | ||
696 | drag->exec(supportedActions, Qt::CopyAction); | 699 | drag->exec(supportedActions, Qt::CopyAction); | ||
697 | } | 700 | } | ||
698 | 701 | | |||
699 | void ThumbnailView::dragEnterEvent(QDragEnterEvent* event) | 702 | void ThumbnailView::dragEnterEvent(QDragEnterEvent* event) | ||
This also seems to duplicate code, but again, is there any mechanism in Qt for handling this instead of having to code so much manual handling of the touch events? rkflx: This also seems to duplicate code, but again, is there any mechanism in Qt for handling this… | |||||
700 | { | 703 | { | ||
701 | QAbstractItemView::dragEnterEvent(event); | 704 | QAbstractItemView::dragEnterEvent(event); | ||
702 | if (event->mimeData()->hasUrls()) { | 705 | if (event->mimeData()->hasUrls()) { | ||
703 | event->acceptProposedAction(); | 706 | event->acceptProposedAction(); | ||
704 | } | 707 | } | ||
705 | } | 708 | } | ||
706 | 709 | | |||
707 | void ThumbnailView::dragMoveEvent(QDragMoveEvent* event) | 710 | void ThumbnailView::dragMoveEvent(QDragMoveEvent* event) | ||
▲ Show 20 Lines • Show All 112 Lines • ▼ Show 20 Line(s) | 812 | for (int row = 0; row < model()->rowCount(); ++row) { | |||
820 | MimeTypeUtils::Kind kind = MimeTypeUtils::fileItemKind(item); | 823 | MimeTypeUtils::Kind kind = MimeTypeUtils::fileItemKind(item); | ||
821 | if (kind == MimeTypeUtils::KIND_ARCHIVE) { | 824 | if (kind == MimeTypeUtils::KIND_ARCHIVE) { | ||
822 | continue; | 825 | continue; | ||
823 | } | 826 | } | ||
824 | 827 | | |||
825 | // Immediately update modified items | 828 | // Immediately update modified items | ||
826 | if (d->mDocumentInfoProvider && d->mDocumentInfoProvider->isModified(url)) { | 829 | if (d->mDocumentInfoProvider && d->mDocumentInfoProvider->isModified(url)) { | ||
827 | d->updateThumbnailForModifiedDocument(index); | 830 | d->updateThumbnailForModifiedDocument(index); | ||
828 | continue; | 831 | continue; | ||
rkflx: So essentially this is a `bool`? Also, what is it needed for? | |||||
I know it is a little bit crude, the aim was, to lower the sensitivity of the zoom. I wanted to use only every second gesture event to zoom the size of the thumbnail. Because the thumbnail size is an integer, I cannot modify the size in 0.5 steps. steffenh: I know it is a little bit crude, the aim was, to lower the sensitivity of the zoom. I wanted to… | |||||
829 | } | 832 | } | ||
830 | 833 | | |||
rkflx: Use `qBound`. | |||||
831 | // Filter out items which already have a thumbnail | 834 | // Filter out items which already have a thumbnail | ||
832 | ThumbnailForUrl::ConstIterator it = d->mThumbnailForUrl.constFind(url); | 835 | ThumbnailForUrl::ConstIterator it = d->mThumbnailForUrl.constFind(url); | ||
833 | if (it != d->mThumbnailForUrl.constEnd() && it.value().isGroupPixAdaptedForSize(d->mThumbnailSize.height())) { | 836 | if (it != d->mThumbnailForUrl.constEnd() && it.value().isGroupPixAdaptedForSize(d->mThumbnailSize.height())) { | ||
834 | continue; | 837 | continue; | ||
835 | } | 838 | } | ||
836 | 839 | | |||
837 | // Compute distance | 840 | // Compute distance | ||
838 | int distance; | 841 | int distance; | ||
▲ Show 20 Lines • Show All 138 Lines • Show Last 20 Lines |
Unnecessary whitespace change