Manager: Streamline details label caching code to address an incorrect assumption

This commit is contained in:
RichardG867
2025-12-24 01:20:30 -03:00
parent 9366ddd60d
commit 9bc36f74e8

View File

@@ -179,9 +179,10 @@ VMManagerDetailSection::setSections()
continue;
}
auto item = frameGridLayout->itemAtPosition(row, 1);
auto label = item ? ((QLabel *) item->widget()) : nullptr;
if (label) {
auto item = frameGridLayout->itemAtPosition(row, 1);
QLabel *label;
if (item) {
label = (QLabel *) item->widget();
label->setVisible(true);
} else {
label = new QLabel();
@@ -193,25 +194,21 @@ VMManagerDetailSection::setSections()
item = frameGridLayout->itemAtPosition(row, 0);
if (!labelKey) {
if (item)
if (item) {
labelKey = (QLabel *) item->widget();
if (labelKey) {
labelKey->setVisible(true);
} else {
labelKey = new QLabel();
labelKey->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
labelKey->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
labelKey->setText(QCoreApplication::translate("", QString(section.name + ":").toUtf8().data()));
frameGridLayout->addWidget(labelKey, row, 0, Qt::AlignLeft);
}
labelKey->setText(QCoreApplication::translate("", QString(section.name + ":").toUtf8().data()));
} else if (item) {
label = (QLabel *) item->widget();
if (label)
label->setVisible(false);
item->widget()->setVisible(false);
}
item = frameGridLayout->itemAtPosition(row, 2);
if (!item || !item->widget()) {
if (!frameGridLayout->itemAtPosition(row, 2)) {
const auto hSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
frameGridLayout->addItem(hSpacer, row, 2);
}
@@ -224,13 +221,10 @@ VMManagerDetailSection::setSections()
int prevUsedRows = usedRows;
usedRows = row;
for (; row < prevUsedRows; row++) {
for (int i = 0; i <= 2; i++) {
for (int i = 0; i <= 1; i++) {
auto item = frameGridLayout->itemAtPosition(row, i);
if (item) {
auto widget = item->widget();
if (widget)
widget->setVisible(false);
}
if (item)
item->widget()->setVisible(false);
}
}