qt: Fix dangling pointers on Vulkan init failure

This commit is contained in:
Cacodemon345
2022-04-27 00:21:18 +06:00
parent 5eb0e93f57
commit 51b7e388a8
3 changed files with 12 additions and 4 deletions

View File

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

View File

@@ -105,6 +105,11 @@ Settings::Settings(QWidget *parent) :
ui->setupUi(this); ui->setupUi(this);
ui->listView->setModel(new SettingsModel(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; Harddrives::busTrackClass = new SettingsBusTracking;
machine = new SettingsMachine(this); machine = new SettingsMachine(this);
@@ -131,8 +136,6 @@ Settings::Settings(QWidget *parent) :
ui->stackedWidget->addWidget(otherRemovable); ui->stackedWidget->addWidget(otherRemovable);
ui->stackedWidget->addWidget(otherPeripherals); ui->stackedWidget->addWidget(otherPeripherals);
ui->listView->setFixedWidth(ui->listView->sizeHintForColumn(0) + 5);
connect(machine, &SettingsMachine::currentMachineChanged, display, &SettingsDisplay::onCurrentMachineChanged); connect(machine, &SettingsMachine::currentMachineChanged, display, &SettingsDisplay::onCurrentMachineChanged);
connect(machine, &SettingsMachine::currentMachineChanged, input, &SettingsInput::onCurrentMachineChanged); connect(machine, &SettingsMachine::currentMachineChanged, input, &SettingsInput::onCurrentMachineChanged);
connect(machine, &SettingsMachine::currentMachineChanged, sound, &SettingsSound::onCurrentMachineChanged); connect(machine, &SettingsMachine::currentMachineChanged, sound, &SettingsSound::onCurrentMachineChanged);

View File

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