qt: Fix dangling pointers on Vulkan init failure
This commit is contained in:
@@ -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());
|
||||||
|
@@ -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);
|
||||||
|
@@ -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">
|
||||||
|
Reference in New Issue
Block a user