m_band.show = true;
// Incremental update data will not be useful - start from scratch.
m_band.ignoreOldInfo = true;
- const QPoint pos = contentsPos();
const QPoint scrollPos(horizontalScrollBar()->value(), verticalScrollBar()->value());
- m_band.origin = event->pos() + pos + scrollPos;
+ m_band.origin = event->pos() + scrollPos;
m_band.destination = m_band.origin;
m_band.originalSelection = selectionModel()->selection();
}
return isAboveEmptySpace ? QModelIndex() : index;
}
-void DolphinDetailsView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command)
+void DolphinDetailsView::setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags command)
{
// We must override setSelection() as Qt calls it internally and when this happens
// we must ensure that the default indexAt() is used.
void DolphinDetailsView::setSortIndicatorSection(DolphinView::Sorting sorting)
{
- QHeaderView* headerView = header();
- headerView->setSortIndicator(sorting, headerView->sortIndicatorOrder());
+ header()->setSortIndicator(sorting, header()->sortIndicatorOrder());
}
void DolphinDetailsView::setSortIndicatorOrder(Qt::SortOrder sortOrder)
{
- QHeaderView* headerView = header();
- headerView->setSortIndicator(headerView->sortIndicatorSection(), sortOrder);
+ header()->setSortIndicator(header()->sortIndicatorSection(), sortOrder);
}
void DolphinDetailsView::synchronizeSortingState(int column)
if (m_band.destination.x() < 0) {
m_band.destination.setX(0);
}
-
dirtyRegion = dirtyRegion.united(elasticBandRect());
setDirtyRegion(dirtyRegion);
}
QRect DolphinDetailsView::elasticBandRect() const
{
- const QPoint pos(contentsPos());
const QPoint scrollPos(horizontalScrollBar()->value(), verticalScrollBar()->value());
- const QPoint topLeft = m_band.origin - pos - scrollPos;
- const QPoint bottomRight = m_band.destination - pos - scrollPos;
+ const QPoint topLeft = m_band.origin - scrollPos;
+ const QPoint bottomRight = m_band.destination - scrollPos;
return QRect(topLeft, bottomRight).normalized();
}
Q_UNUSED(newSize);
// If the user changes the size of the headers, the autoresize feature should be
// turned off. As there is no dedicated interface to find out whether the header
- // section has been resized by the user or by a resize event, the following approach is used:
- if ((QApplication::mouseButtons() & Qt::LeftButton) && isVisible()) {
+ // section has been resized by the user or by a resize event, another approach is used.
+ // Attention: Take care when changing the if-condition to verify that there is no
+ // regression in combination with bug 178630 (see fix in comment #8).
+ if ((QApplication::mouseButtons() & Qt::LeftButton) && header()->underMouse()) {
disableAutoResizing();
}
}
doItemsLayout();
}
-QPoint DolphinDetailsView::contentsPos() const
-{
- // implementation note: the horizonal position is ignored currently, as no
- // horizontal scrolling is done anyway during a selection
- const QScrollBar* scrollbar = verticalScrollBar();
- Q_ASSERT(scrollbar != 0);
-
- const int maxHeight = maximumViewportSize().height();
- const int height = scrollbar->maximum() - scrollbar->minimum() + 1;
- const int visibleHeight = model()->rowCount() + 1 - height;
- if (visibleHeight <= 0) {
- return QPoint(0, 0);
- }
-
- const int y = scrollbar->sliderPosition() * maxHeight / visibleHeight;
- return QPoint(0, y);
-}
-
KFileItemDelegate::Information DolphinDetailsView::infoForColumn(int columnIndex) const
{
KFileItemDelegate::Information info = KFileItemDelegate::NoInformation;