Merge pull request #2311 from Cacodemon345/newqt2

qt: Fix dangling pointers on Vulkan init failure
This commit is contained in:
Miran Grča
2022-04-27 00:18:28 +02:00
committed by GitHub
3 changed files with 12 additions and 4 deletions

View File

@@ -301,6 +301,7 @@ RendererStack::createRenderer(Renderer renderer)
imagebufs = {};
endblit();
QTimer::singleShot(0, this, [this]() { switchRenderer(Renderer::Software); });
current.reset(nullptr);
break;
};
rendererWindow = hw;
@@ -325,7 +326,7 @@ RendererStack::createRenderer(Renderer renderer)
}
#endif
}
if (current.get() == nullptr) return;
current->setFocusPolicy(Qt::NoFocus);
current->setFocusProxy(this);
addWidget(current.get());

View File

@@ -105,6 +105,11 @@ Settings::Settings(QWidget *parent) :
ui->setupUi(this);
ui->listView->setModel(new SettingsModel(this));
ui->listView->setFlow(QListView::TopToBottom);
ui->listView->setWrapping(false);
ui->listView->setWordWrap(true);
ui->listView->setItemAlignment(Qt::AlignmentFlag::AlignHCenter);
ui->listView->setUniformItemSizes(true);
Harddrives::busTrackClass = new SettingsBusTracking;
machine = new SettingsMachine(this);
@@ -131,8 +136,6 @@ Settings::Settings(QWidget *parent) :
ui->stackedWidget->addWidget(otherRemovable);
ui->stackedWidget->addWidget(otherPeripherals);
ui->listView->setFixedWidth(ui->listView->sizeHintForColumn(0) + 5);
connect(machine, &SettingsMachine::currentMachineChanged, display, &SettingsDisplay::onCurrentMachineChanged);
connect(machine, &SettingsMachine::currentMachineChanged, input, &SettingsInput::onCurrentMachineChanged);
connect(machine, &SettingsMachine::currentMachineChanged, sound, &SettingsSound::onCurrentMachineChanged);

View File

@@ -30,7 +30,11 @@
<widget class="QWidget" name="widget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,3">
<item>
<widget class="QListView" name="listView"/>
<widget class="QListView" name="listView">
<property name="viewMode">
<enum>QListView::IconMode</enum>
</property>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="stackedWidget">