Add option to kill hung VMs

This commit is contained in:
Cacodemon345
2025-07-11 23:30:14 +06:00
parent b4ace8482a
commit b11c5af060

View File

@@ -48,7 +48,7 @@ VMManagerMain::VMManagerMain(QWidget *parent) :
// Set up the context menu for the list view
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->listView, &QListView::customContextMenuRequested, [this](const QPoint &pos) {
connect(ui->listView, &QListView::customContextMenuRequested, [this, parent](const QPoint &pos) {
const auto indexAt = ui->listView->indexAt(pos);
if (indexAt.isValid()) {
QMenu contextMenu(tr("Context Menu"), ui->listView);
@@ -85,6 +85,17 @@ VMManagerMain::VMManagerMain(QWidget *parent) :
});
setSystemIcon.setEnabled(!selected_sysconfig->window_obscured);
QAction killIcon(tr("&Kill"));
contextMenu.addAction(&killIcon);
connect(&killIcon, &QAction::triggered, [this, parent] {
QMessageBox msgbox(QMessageBox::Warning, tr("Warning"), tr("Killing a virtual machine can cause data loss. Only do this if 86Box.exe process gets stuck.\n\nDo you really wish to kill the virtual machine \"%1\"?").arg(selected_sysconfig->displayName), QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No, parent);
msgbox.exec();
if (msgbox.result() == QMessageBox::Yes) {
selected_sysconfig->process->kill();
}
});
killIcon.setEnabled(selected_sysconfig->process->state() == QProcess::Running);
contextMenu.addSeparator();
QAction showRawConfigFile(tr("Show config file"));