src/gui/itemviews/qlistview.cpp
changeset 7 f7bc934e204c
parent 3 41300fa6a67c
child 30 5dc02b23752f
equal deleted inserted replaced
3:41300fa6a67c 7:f7bc934e204c
     1 /****************************************************************************
     1 /****************************************************************************
     2 **
     2 **
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
     4 ** All rights reserved.
     4 ** All rights reserved.
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
     6 **
     6 **
     7 ** This file is part of the QtGui module of the Qt Toolkit.
     7 ** This file is part of the QtGui module of the Qt Toolkit.
     8 **
     8 **
  2158             dy = previousCoordinate - currentCoordinate;
  2158             dy = previousCoordinate - currentCoordinate;
  2159         }
  2159         }
  2160     } else {
  2160     } else {
  2161         if (flowPositions.isEmpty())
  2161         if (flowPositions.isEmpty())
  2162             return;
  2162             return;
  2163         const int max = flowPositions.count() - 1;
  2163         const int max = scrollValueMap.count() - 1;
  2164         if (vertical && flow() == QListView::TopToBottom && dy != 0) {
  2164         if (vertical && flow() == QListView::TopToBottom && dy != 0) {
  2165             int currentValue = qBound(0, verticalValue, max);
  2165             int currentValue = qBound(0, verticalValue, max);
  2166             int previousValue = qBound(0, currentValue + dy, max);
  2166             int previousValue = qBound(0, currentValue + dy, max);
  2167             int currentCoordinate = flowPositions.at(scrollValueMap.at(currentValue));
  2167             int currentCoordinate = flowPositions.at(scrollValueMap.at(currentValue));
  2168             int previousCoordinate = flowPositions.at(scrollValueMap.at(previousValue));
  2168             int previousCoordinate = flowPositions.at(scrollValueMap.at(previousValue));
  2619         return false;
  2619         return false;
  2620 
  2620 
  2621     const QSize contents = contentsSize;
  2621     const QSize contents = contentsSize;
  2622     QPoint offset(horizontalOffset(), verticalOffset());
  2622     QPoint offset(horizontalOffset(), verticalOffset());
  2623     QPoint end = e->pos() + offset;
  2623     QPoint end = e->pos() + offset;
       
  2624     if (qq->acceptDrops()) {
       
  2625         const Qt::ItemFlags dropableFlags = Qt::ItemIsDropEnabled|Qt::ItemIsEnabled;
       
  2626         const QVector<QModelIndex> &dropIndices = intersectingSet(QRect(end, QSize(1, 1)));
       
  2627         foreach (const QModelIndex &index, dropIndices)
       
  2628             if ((index.flags() & dropableFlags) == dropableFlags)
       
  2629                 return false;
       
  2630     }
  2624     QPoint start = dd->pressedPosition;
  2631     QPoint start = dd->pressedPosition;
  2625     QPoint delta = (dd->movement == QListView::Snap ? snapToGrid(end) - snapToGrid(start) : end - start);
  2632     QPoint delta = (dd->movement == QListView::Snap ? snapToGrid(end) - snapToGrid(start) : end - start);
  2626     QList<QModelIndex> indexes = dd->selectionModel->selectedIndexes();
  2633     QList<QModelIndex> indexes = dd->selectionModel->selectedIndexes();
  2627     for (int i = 0; i < indexes.count(); ++i) {
  2634     for (int i = 0; i < indexes.count(); ++i) {
  2628         QModelIndex index = indexes.at(i);
  2635         QModelIndex index = indexes.at(i);