MCPcopy Create free account
hub / github.com/KDAB/GammaRay / restoreHeaderState

Method restoreHeaderState

ui/uistatemanager.cpp:466–537  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

464}
465
466void UIStateManager::restoreHeaderState(QHeaderView *header)
467{
468 const QHeaderViewList headers = header ? (QHeaderViewList() << header) : this->headers();
469 for (QHeaderView *header : headers) {
470 if (header->orientation() == Qt::Vertical || !checkWidget(header) || header->count() == 0)
471 continue;
472
473 const QByteArray state = m_stateSettings->value(widgetStateKey(header)).toByteArray();
474
475 if (state.isEmpty()) {
476 const UISizeVector defaultSizes = this->defaultSizes(header);
477 QAbstractItemView *view = headerView(header);
478
479 if (!defaultSizes.isEmpty()) {
480 Q_ASSERT(defaultSizes.size() == header->count());
481
482 QList<int> sizes;
483 sizes.reserve(defaultSizes.size());
484
485 int i = 0;
486 for (auto it = defaultSizes.constBegin(), end = defaultSizes.constEnd(); it != end;
487 ++it) {
488 int size = 0;
489
490 switch ((*it).typeId()) {
491 case QMetaType::Int: // Pixels
492 size = (*it).toInt();
493 break;
494
495 case QMetaType::QString: // Percent
496 size = percentToInt((*it).toString());
497 if (size == -1) {
498 } else if (header->orientation() == Qt::Horizontal) {
499 size = view->width() * size / 100;
500 } else {
501 size = view->height() * size / 100;
502 }
503 break;
504
505 default:
506 Q_ASSERT(false);
507 }
508
509 switch (header->sectionResizeMode(i)) {
510 case QHeaderView::Interactive:
511 case QHeaderView::Fixed:
512 header->resizeSection(i, size == -1 ? header->sectionSizeHint(i) : size);
513 break;
514
515 default:
516 break;
517 }
518
519 i++;
520 }
521 }
522 } else {
523 if (!m_resizing) {

Callers

nothing calls this directly

Calls 13

headersMethod · 0.95
defaultSizesMethod · 0.95
headerViewFunction · 0.85
reserveMethod · 0.80
countMethod · 0.45
valueMethod · 0.45
isEmptyMethod · 0.45
sizeMethod · 0.45
constBeginMethod · 0.45
constEndMethod · 0.45
restoreStateMethod · 0.45
setPropertyMethod · 0.45

Tested by

no test coverage detected