src/gui/itemviews/qtableview.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 22 79de32ba3296
equal deleted inserted replaced
18:2f34d5167611 19:fcece45ef507
  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());