46 Q_DECLARE_PUBLIC(QHeaderView)
100 void resizeSections(QHeaderView::ResizeMode globalMode,
bool useGlobalMode =
false);
103 int logicalEnd,
const QModelIndex &destinationParent,
104 int logicalDestination);
105 void sectionsMoved(
const QModelIndex &sourceParent,
int logicalStart,
106 int logicalEnd,
const QModelIndex &destinationParent,
107 int logicalDestination);
118 return (selectionModel ? selectionModel->rowIntersectsSelection(row, root) :
false);
122 return (selectionModel ? selectionModel->columnIntersectsSelection(column, root) :
false);
126 return (orientation == Qt::Horizontal ? columnIntersectsSelection(logical) : rowIntersectsSelection(logical));
130 return (selectionModel ? selectionModel->isRowSelected(row, root) :
false);
134 return (selectionModel ? selectionModel->isColumnSelected(column, root) :
false);
138 if (!selectionModel || !selectionModel->hasSelection())
139 sectionSelected.clear();
140 else if (sectionSelected.size() != sectionCount() * 2)
141 sectionSelected.fill(
false, sectionCount() * 2);
142 else sectionSelected.fill(
false);
146 return noSectionMemoryUsage() ? countInNoSectionItemsMode : sectionItems.size();
150 return orientation == Qt::Horizontal && q_func()->isRightToLeft();
154 return logicalIndices.isEmpty() ? visualIndex : logicalIndices.at(visualIndex);
158 return visualIndices.isEmpty() ? logicalIndex : visualIndices.at(logicalIndex);
164 defaultAlignment = (o == Qt::Horizontal
165 ? Qt::Alignment(Qt::AlignCenter)
166 : Qt::AlignLeft|Qt::AlignVCenter);
170 return !noSectionMemoryUsage() && sectionItems.at(visual).isHidden;
174 sectionItems[visual].isHidden = hidden;
184 cachedSizeHint = QSize();
188 if (visualIndices.size() != sectionCount()
189 || logicalIndices.size() != sectionCount()) {
190 visualIndices.resize(sectionCount());
191 logicalIndices.resize(sectionCount());
193 visualIndices[s] = s;
194 logicalIndices[s] = s;
200 firstCascadingSection = sectionItems.size();
202 cascadingSectionSize.clear();
206 if (!cascadingSectionSize.contains(visual)) {
207 cascadingSectionSize.insert(visual, size);
214 return headerSectionResizeMode(visual) == QHeaderView::Interactive;
218 return (orientation == Qt::Horizontal
219 ? model->columnCount(root)
220 : model->rowCount(root));
224 if (!delayedResize.isActive())
225 delayedResize.start(0, q_func());
229 if (delayedResize.isActive() && state == NoState) {
230 const_cast<QHeaderView*>(q_func())->resizeSections();
236 for (
const QMetaObject::Connection &connection : modelConnections)
237 QObject::disconnect(connection);
319#ifndef QT_NO_DATASTREAM
320 inline void write(QDataStream &out)
const
321 { out <<
static_cast<
int>(size); out << 1; out << (
int)resizeMode; }
322 inline void read(QDataStream &in)
323 {
int m; in >> m; size = m; in >> tmpDataStreamSectionCount; in >> m; resizeMode = m; }
329 HeaderMode
headerMode = HeaderMode::InitialNoSectionMemoryUsage;
333 return (
headerMode == HeaderMode::InitialNoSectionMemoryUsage);
351 void createSectionItems(
int start,
int end,
int sectionSize, QHeaderView::ResizeMode mode);
360 for (
const auto §ion : sectionItems)
367 QBitArray sectionHidden;
368 if (!hiddenSectionSize.isEmpty()) {
369 sectionHidden.resize(sectionItems.size());
370 for (
int u = 0; u < sectionItems.size(); ++u)
371 sectionHidden[u] = sectionItems.at(u).isHidden;
373 return sectionHidden;
378 for (
int i = 0; i < sectionHidden.size(); ++i)
379 sectionData[i].isHidden = sectionHidden.at(i);
394 void setScrollOffset(
const QScrollBar *scrollBar, QAbstractItemView::ScrollMode scrollMode);
397#ifndef QT_NO_DATASTREAM
398 void write(QDataStream &out)
const;
399 bool read(QDataStream &in);