1906 for (int r = range.top(); r <= range.bottom(); ++r) |
1906 for (int r = range.top(); r <= range.bottom(); ++r) |
1907 selectionRegion += QRegion(QRect(left, rowViewportPosition(r), |
1907 selectionRegion += QRegion(QRect(left, rowViewportPosition(r), |
1908 width, rowHeight(r))); |
1908 width, rowHeight(r))); |
1909 } |
1909 } |
1910 } else { // nothing moved |
1910 } else { // nothing moved |
|
1911 const int gridAdjust = showGrid() ? 1 : 0; |
1911 for (int i = 0; i < selection.count(); ++i) { |
1912 for (int i = 0; i < selection.count(); ++i) { |
1912 QItemSelectionRange range = selection.at(i); |
1913 QItemSelectionRange range = selection.at(i); |
1913 if (range.parent() != d->root || !range.isValid()) |
1914 if (range.parent() != d->root || !range.isValid()) |
1914 continue; |
1915 continue; |
1915 d->trimHiddenSelections(&range); |
1916 d->trimHiddenSelections(&range); |
1916 |
1917 |
1917 const int rtop = rowViewportPosition(range.top()); |
1918 const int rtop = rowViewportPosition(range.top()); |
1918 const int rbottom = rowViewportPosition(range.bottom()) + rowHeight(range.bottom()); |
1919 const int rbottom = rowViewportPosition(range.bottom()) + rowHeight(range.bottom()); |
1919 const int rleft = columnViewportPosition(range.left()); |
1920 int rleft; |
1920 const int rright = columnViewportPosition(range.right()) + columnWidth(range.right()); |
1921 int rright; |
1921 selectionRegion += QRect(QPoint(rleft, rtop), QPoint(rright, rbottom)); |
1922 if (isLeftToRight()) { |
|
1923 rleft = columnViewportPosition(range.left()); |
|
1924 rright = columnViewportPosition(range.right()) + columnWidth(range.right()); |
|
1925 } else { |
|
1926 rleft = columnViewportPosition(range.right()); |
|
1927 rright = columnViewportPosition(range.left()) + columnWidth(range.left()); |
|
1928 } |
|
1929 selectionRegion += QRect(QPoint(rleft, rtop), QPoint(rright - 1 - gridAdjust, rbottom - 1 - gridAdjust)); |
1922 if (d->hasSpans()) { |
1930 if (d->hasSpans()) { |
1923 foreach (QSpanCollection::Span *s, |
1931 foreach (QSpanCollection::Span *s, |
1924 d->spans.spansInRect(range.left(), range.top(), range.width(), range.height())) { |
1932 d->spans.spansInRect(range.left(), range.top(), range.width(), range.height())) { |
1925 if (range.contains(s->top(), s->left(), range.parent())) |
1933 if (range.contains(s->top(), s->left(), range.parent())) |
1926 selectionRegion += d->visualSpanRect(*s); |
1934 selectionRegion += d->visualSpanRect(*s); |
2544 Q_D(QTableView); |
2552 Q_D(QTableView); |
2545 |
2553 |
2546 // check if we really need to do anything |
2554 // check if we really need to do anything |
2547 if (!d->isIndexValid(index) |
2555 if (!d->isIndexValid(index) |
2548 || (d->model->parent(index) != d->root) |
2556 || (d->model->parent(index) != d->root) |
2549 || isIndexHidden(index)) |
2557 || isRowHidden(index.row()) || isColumnHidden(index.column())) |
2550 return; |
2558 return; |
2551 |
2559 |
2552 QSpanCollection::Span span; |
2560 QSpanCollection::Span span; |
2553 if (d->hasSpans()) |
2561 if (d->hasSpans()) |
2554 span = d->span(index.row(), index.column()); |
2562 span = d->span(index.row(), index.column()); |